Index: YC1121SAEVBV1.0_boot_otp.dat
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/YC1121SAEVBV1.0_boot_otp.dat	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/YC1121SAEVBV1.0_boot_otp.dat	(working copy)
@@ -0,0 +1,62 @@
+0b
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+aa
+55
+12
+00
+c2
+84
+00
+02
+20
+20
+23
+5a
+c1
+7f
+80
+00
+20
+20
+23
+5a
+cb
+53
+aa
+55
+03
+00
+27
+44
+01
+03
+02
+aa
+55
+06
+00
+21
+44
+07
+0f
+08
+0e
+0a
+0b
+55
+aa
+aa
+55
+1e
+03
+31
+70
Index: a.bat
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/a.bat	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/a.bat	(working copy)
@@ -0,0 +1,8 @@
+e ku
+e pu
+e 8043 00
+e pu
+e hu output/ramcode.rom 0
+e pu
+e su output/sched.rom
+e cu
\ No newline at end of file
Index: debug.bat
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/debug.bat	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/debug.bat	(working copy)
@@ -0,0 +1,2 @@
+e 8043 00
+e uu 0x6340
\ No newline at end of file
Index: do.bat
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/do.bat	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/do.bat	(working copy)
@@ -0,0 +1,102 @@
+@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
+@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
+@rem 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
+
+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
+
+geneep -n 
+::geneep -n -k key.dat 
+
+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 "shutter_dy" (
+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: eotp.bat
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/eotp.bat	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/eotp.bat	(working copy)
@@ -0,0 +1,8 @@
+call do.bat eep
+set baud=a0
+e pu
+e 8043 00
+e otr 0 40
+e otp output/otp.dat
+e otr 0 40
+e ku
\ No newline at end of file
Index: ep.bat
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/ep.bat	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/ep.bat	(working copy)
@@ -0,0 +1,10 @@
+call do.bat eep
+e pu
+e pu
+e 8043 00
+e er 0 10
+e ew 0 0000
+e er 0 10
+e ep
+e ku
+e au
Index: format/app.format
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/app.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/app_adpcm.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/app_car.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/app_dongle.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/app_kb.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/app_kb.format	(working copy)
@@ -0,0 +1,359 @@
+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
+
+
+)
+(
+0x00 DONGLE_KB_BIND_EEPROM_OFFECT
+)
+(
+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
+	 // 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
+)
+
+
Index: format/app_module.format
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/app_module.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/app_mouse.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/app_mouse.format	(working copy)
@@ -0,0 +1,827 @@
+
+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
+//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
+
+//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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/app_remote_car.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/app_shutter.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/app_shutter.format	(working copy)
@@ -0,0 +1,215 @@
+
+
+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
+
+)
+
+
+
+
+(
+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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/app_shutter_dy.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/app_shutter_dy.format	(working copy)
@@ -0,0 +1,311 @@
+
+
+xmemalloc shutter(
+
+////////////////////////////////////
+//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
+
+8 mem_shutter_discovery_time_conf
+8 mem_shutter_reconn_or_discovery_blink_time_conf
+8 mem_ble_shutter_dy_interval_min_ios
+
+10 mem_fouse_up_press
+2 mem_fouse_up_long_press
+2 mem_fouse_up_long_release
+10 mem_fouse_down_press
+2 mem_fouse_down_long_press
+2 mem_fouse_down_long_release
+1 mem_shutter_key_evt_timer_count
+4 mem_shutter_key_evt_btclk
+1 mem_shutter_dy_fouse_time
+1 mem_shutter_fouse_select
+1 mem_shutter_dy_fouse_count
+9 mem_shutter_mode_step_android
+9 mem_shutter_mode_step_ios
+1 mem_shutter_like_key_press_time
+1 mem_shutter_photo_click_count
+0 mem_shutter_end
+
+//adc
+//adc struct
+0 mem_shutter_vdd_calculate_set
+2 mem_shutter_vdd_full_vol
+2 mem_shutter_vdd_empty_vol
+2 mem_shutter_vdd_low_vol
+2 mem_shutter_vdd_now_vol
+
+1 mem_shutter_start_adc_flag
+1 mem_shutter_adc_read_timer
+1 mem_shutter_enable_low_voltage_flag
+1 mem_shutter_adc_last_low_voltage_flag
+
+1 mem_shutter_battery_level_percentage
+1 mem_shutter_adc_read_time_init
+0 mem_shutter_dy_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_FUN_KEY_NUM
+7  SHUTTER_FUN1_KEY_NUM
+8  SHUTTER_FUN2_KEY_NUM
+9  SHUTTER_FUN3_KEY_NUM
+)
+
+(
+//0xaa ANDROID_INITIAL_MOVE_X //170
+//0x78 ANDROID_INITIAL_MOVE_Y //120
+//0x69 IPHONE_INITIAL_MOVE_X
+//0x38 IPHONE_INITIAL_MOVE_Y
+0X2a ANDROID_EVERY_MOVE_SIZE
+0x05 IPHONE_EVERY_MOVE_SIZE
+0x72 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
+9 SHUTTER_NINE_KEY
+10 SHUTTER_TEN_KEY
+)
+
+(
+1 FOUSEUP
+2 FOUSEDOWN
+)
Index: format/ble_protocol_stack/le.format
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/ble_protocol_stack/le.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/ble_protocol_stack/le_advertising.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/ble_protocol_stack/le_l2cap_att.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/ble_protocol_stack/le_l2cap_att.format	(working copy)
@@ -0,0 +1,204 @@
+
+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
+)
+
+
+(
+23 ATT_DEFAULT_MTU 
+)
+
+
+
Index: format/ble_protocol_stack/le_l2cap_att_wechat.format
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/ble_protocol_stack/le_l2cap_att_wechat.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/ble_protocol_stack/le_l2cap_signalling.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/ble_protocol_stack/le_l2cap_smp.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/ble_protocol_stack/le_ll.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/bt.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/bt.format	(working copy)
@@ -0,0 +1,660 @@
+
+	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
+5 mem_rf_init_data
+endif
+
+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_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
+34 mark_otp_write
+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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/command.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/debug.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/g24_protocol_stack/24g.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/g24_protocol_stack/24g_pair.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/g24_protocol_stack/24g_receiver.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/g24_protocol_stack/24g_reconn.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/g24_protocol_stack/24g_rssi.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/g24_protocol_stack/24g_transmitter.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/g24_protocol_stack/24g_txpower_ctrl.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/hci.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/l2cap.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/memblocks.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/mesh_protocol_stack/mesh_access_layer.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/mesh_protocol_stack/mesh_ali_vendor_message.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/mesh_protocol_stack/mesh_bearer_layer.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/mesh_protocol_stack/mesh_ble_core_advertising.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/mesh_protocol_stack/mesh_chip_peripherals.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/mesh_protocol_stack/mesh_control_ble_advertising.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/mesh_protocol_stack/mesh_encrypt_function.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/mesh_protocol_stack/mesh_fast_pairing.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/mesh_protocol_stack/mesh_health_message.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/mesh_protocol_stack/mesh_init.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/mesh_protocol_stack/mesh_lower_transport_layer.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/mesh_protocol_stack/mesh_model_layer.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/mesh_protocol_stack/mesh_more_element_check.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/mesh_protocol_stack/mesh_network_layer.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/mesh_protocol_stack/mesh_proxy_layer.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/mesh_protocol_stack/mesh_sha.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/mesh_protocol_stack/mesh_upper_transport_layer.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/patch.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/regs.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/security.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/simple_pairing.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/ui.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/usb.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/format/utility.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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: output/auth.rom
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/output/auth.rom	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/output/bt_format.meta	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/output/bt_format.meta	(working copy)
@@ -0,0 +1,9519 @@
+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
+0x414e mem_adc_reference3v_ft_data
+0x414e mem_adc_reference3v_gpio1v_ft_data
+0x4150 mem_adc_reference3v_gpio2v_ft_data
+0x4152 mem_adc_reference3v_vdcdc3p6v_ft_data
+0x4154 mem_adc_reference3v_vdcdc4p6v_ft_data
+0x4156 mem_adc_reference3v_inter1v_ft_data
+0x4158 mem_adc_reference3v_inter1v_now_data
+0x415a mem_adc_reference_mode
+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
+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_1s_timer
+0x489f mem_shutter_timer_625us
+0x48a1 mem_rf_init_data_new
+0x48ac mem_key_value_xmem
+0x48ae mem_shutter_le_hid_map
+0x49d0 mem_shutter_le_map_len_android
+0x49d2 mem_shutter_le_map_len_ios
+0x49d4 mem_dy_le_search_service_uuid
+0x49e4 mem_iphone_flag
+0x49e5 mem_send_data_delay
+0x49e6 mem_key_send_clk
+0x49ea mem_shutter_key_state0
+0x49f4 mem_shutter_key_state1
+0x49fe mem_shutter_key_state2
+0x4a08 mem_shutter_key_state3
+0x4a12 mem_shutter_key_state4
+0x4a1c mem_shutter_key_state5
+0x4a26 mem_shutter_key_state6
+0x4a30 mem_key0_release_new
+0x4a3f mem_key1_release_new
+0x4a4e mem_key2_release_new
+0x4a5d mem_key3_release_new
+0x4a6c mem_key4_release_new
+0x4a7b mem_key5_release_new
+0x4a8a mem_key6_release_new
+0x4a99 mem_key0_long_press
+0x4a9c mem_key1_long_press
+0x4a9f mem_key2_long_press
+0x4aa2 mem_key3_long_press
+0x4aa5 mem_key4_long_press
+0x4aa8 mem_key5_long_press
+0x4aab mem_key6_long_press
+0x4aae mem_key0_long_release
+0x4ab1 mem_key1_long_release
+0x4ab4 mem_key2_long_release
+0x4ab7 mem_key3_long_release
+0x4aba mem_key4_long_release
+0x4abd mem_key5_long_release
+0x4ac0 mem_key6_long_release
+0x4ac3 mem_combine_key0
+0x4ac5 mem_combine_key1
+0x4ac7 mem_combine_key2
+0x4ac9 mem_combine_key3
+0x4acb mem_combine_key4
+0x4acd mem_combine_key5
+0x4acf mem_combine_key_state0
+0x4ad1 mem_combine_key0_press
+0x4adb mem_combine_key1_press
+0x4ae5 mem_combine_key2_press
+0x4aef mem_combine_key3_press
+0x4af9 mem_combine_key4_press
+0x4b03 mem_combine_key5_press
+0x4b0d mem_combine_key_release
+0x4b17 mem_shutter_move_data
+0x4b1b mem_key0_press_i
+0x4b25 mem_key1_press_i
+0x4b2f mem_key2_press_i
+0x4b39 mem_key3_press_i
+0x4b43 mem_key4_press_i
+0x4b4d mem_key5_press_i
+0x4b57 mem_key0_release_new_i
+0x4b66 mem_key1_release_new_i
+0x4b75 mem_key2_release_new_i
+0x4b84 mem_key3_release_new_i
+0x4b93 mem_key4_release_new_i
+0x4ba2 mem_key5_release_new_i
+0x4bb1 mem_key6_release_new_i
+0x4bc0 mem_key0_long_press_i
+0x4bc3 mem_key1_long_press_i
+0x4bc6 mem_key2_long_press_i
+0x4bc9 mem_key3_long_press_i
+0x4bcc mem_key4_long_press_i
+0x4bcf mem_key5_long_press_i
+0x4bd2 mem_key6_long_press_i
+0x4bd5 mem_key0_long_release_i
+0x4bd8 mem_key1_long_release_i
+0x4bdb mem_key2_long_release_i
+0x4bde mem_key3_long_release_i
+0x4be1 mem_key4_long_release_i
+0x4be4 mem_key5_long_release_i
+0x4be7 mem_key6_long_release_i
+0x4bea mem_key3_release_new_t
+0x4bf4 mem_key3_release_new_i_t
+0x4bfe mem_key3_press_count
+0x4bff mem_shutter_like_timeout
+0x4c00 mem_shutter_key_pressed
+0x4c01 mem_shutter_combine_key_release
+0x4c02 mem_shutter_mousekey_value_list
+0x4eaa mem_shutter_back_count
+0x4eab mem_shutter_le_conned
+0x4eac mem_move_config
+0x4eac mem_shutter_iphone_beyond_x_count
+0x4ead mem_shutter_iphone_beyond_y_count
+0x4eae mem_shutter_move_data_x
+0x4eb0 mem_shutter_move_data_y
+0x4eb2 mem_last_shutter_le_iphone_flag
+0x4eb3 mem_move_config_end
+0x4eb3 mem_shutter_back_count_cache
+0x4eb4 mem_shutter_iphone_beyond_x_cache
+0x4eb5 mem_shutter_iphone_beyond_y_cache
+0x4eb6 mem_shutter_iphone_move_mid
+0x4ec0 mem_shutter_long_key_released_flag
+0x4ec1 mem_shutter_move_mid_timer
+0x4ec2 mem_shutter_pairing_success
+0x4ec3 mem_combine_key_release_value
+0x4ec5 mem_last_press_key_value
+0x4ec6 mem_shutter_first_move
+0x4ec7 mem_move_mode_set
+0x4ec8 mem_move_mode_key_index
+0x4ec9 mem_move_mode_trigger_enable
+0x4eca mem_shutter_android_move_mid
+0x4ecf mem_shutter_iphone_up_mid
+0x4ed9 mem_shutter_iphone_like_mid
+0x4ee3 mem_shutter_key_num_conf
+0x4ee4 mem_shutter_dy_key_conf
+0x4eeb mem_le_dy_adv_data
+0x4ef6 mem_le_dy_scan_data
+0x4f02 mem_ble_shutter_dy_interval_min_new
+0x4f0a mem_shutter_ble_discovery_time_conf
+0x4f12 mem_queue_dy_each_size
+0x4f14 mem_dy_key0_press
+0x4f1e mem_dy_key1_press
+0x4f28 mem_dy_key2_press
+0x4f32 mem_dy_key3_press
+0x4f3c mem_dy_key4_press
+0x4f46 mem_dy_key5_press
+0x4f50 mem_dy_key6_press
+0x4f5a mem_shutter_led_on_light_dark_led_conf
+0x4f61 mem_shutter_led_off_light_dark_led_conf
+0x4f68 mem_shutter_reconn_blink_on_time_conf
+0x4f6c mem_shutter_discovery_blink_on_time_conf
+0x4f70 mem_shutter_efuse_start_offset
+0x4f72 mem_shutter_efuse_end_offset
+0x4f74 mem_initial_move_conf
+0x4f74 mem_android_initial_move_x
+0x4f76 mem_android_initial_move_y
+0x4f78 mem_iphone_initial_move_x
+0x4f7a mem_iphone_initial_move_y
+0x4f7c mem_otp_move_config
+0x4f7c mem_otp_shutter_move_data_x
+0x4f7e mem_otp_shutter_move_data_y
+0x4f80 mem_otp_last_shutter_le_iphone_flag
+0x4f81 mem_otp_move_config_end
+0x4f81 mem_otp_write_offset_addr
+0x4f83 mem_otp_read_offset_addr
+0x4f85 mem_otp_read_ios_android_addr
+0x4f87 mem_shutter_le_pairing_handle
+0x4f89 mem_shutter_temp_count
+0x4f8b mem_shutter_first_read_flag
+0x4f8c mem_shutter_valid_data_flag
+0x4f8d mem_shutter_volume_timer
+0x4f8e mem_shutter_link_timer
+0x4f8f mem_shutter_link_data
+0x4f97 mem_shutter_link_data_i
+0x4f9f mem_shutter_link_loop_flag
+0x4fa0 mem_shutter_discovery_time_conf
+0x4fa8 mem_shutter_reconn_or_discovery_blink_time_conf
+0x4fb0 mem_ble_shutter_dy_interval_min_ios
+0x4fb8 mem_fouse_up_press
+0x4fc2 mem_fouse_up_long_press
+0x4fc4 mem_fouse_up_long_release
+0x4fc6 mem_fouse_down_press
+0x4fd0 mem_fouse_down_long_press
+0x4fd2 mem_fouse_down_long_release
+0x4fd4 mem_shutter_key_evt_timer_count
+0x4fd5 mem_shutter_key_evt_btclk
+0x4fd9 mem_shutter_dy_fouse_time
+0x4fda mem_shutter_fouse_select
+0x4fdb mem_shutter_dy_fouse_count
+0x4fdc mem_shutter_mode_step_android
+0x4fe5 mem_shutter_mode_step_ios
+0x4fee mem_shutter_like_key_press_time
+0x4fef mem_shutter_photo_click_count
+0x4ff0 mem_shutter_end
+0x4ff0 mem_shutter_vdd_calculate_set
+0x4ff0 mem_shutter_vdd_full_vol
+0x4ff2 mem_shutter_vdd_empty_vol
+0x4ff4 mem_shutter_vdd_low_vol
+0x4ff6 mem_shutter_vdd_now_vol
+0x4ff8 mem_shutter_start_adc_flag
+0x4ff9 mem_shutter_adc_read_timer
+0x4ffa mem_shutter_enable_low_voltage_flag
+0x4ffb mem_shutter_adc_last_low_voltage_flag
+0x4ffc mem_shutter_battery_level_percentage
+0x4ffd mem_shutter_adc_read_time_init
+0x4ffe mem_shutter_dy_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
+34 mark_otp_write
+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
+)
+
+
+(
+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
+)
+(
+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
+	 // 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
+)
+
+
+
+
+
+
+(//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
+//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
+
+//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_FUN_KEY_NUM
+7  SHUTTER_FUN1_KEY_NUM
+8  SHUTTER_FUN2_KEY_NUM
+9  SHUTTER_FUN3_KEY_NUM
+)
+
+(
+//0xaa ANDROID_INITIAL_MOVE_X //170
+//0x78 ANDROID_INITIAL_MOVE_Y //120
+//0x69 IPHONE_INITIAL_MOVE_X
+//0x38 IPHONE_INITIAL_MOVE_Y
+0X2a ANDROID_EVERY_MOVE_SIZE
+0x05 IPHONE_EVERY_MOVE_SIZE
+0x72 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
+9 SHUTTER_NINE_KEY
+10 SHUTTER_TEN_KEY
+)
+
+(
+1 FOUSEUP
+2 FOUSEDOWN
+)
+
+
+
+
+
+(
+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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/output/bt_program23.icode	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/output/bt_program23.icode	(working copy)
@@ -0,0 +1,25166 @@
+ 00000000  0x00000022 bbit1  0x00000008 , 0x00000018 
+ 00000001  0x00000023 beq  0x00000000 , 0x00000051 
+ 00000002  0x00000024 beq  0x00000002 , 0x0000011d 
+ 00000003  0x00000025 beq  0x00000011 , 0x00000126 
+ 00000004  0x00000026 beq  0x00000014 , 0x00000304 
+ 00000005  0x00000027 beq  0x00000015 , 0x000001b3 
+ 00000006  0x00000028 beq  0x00000018 , 0x000001c1 
+ 00000007  0x00000029 beq  0x00000019 , 0x00000180 
+ 00000008  0x0000002a beq  0x0000001a , 0x00000138 
+ 00000009  0x0000002b beq  0x00000025 , 0x00000326 
+ 00000010  0x0000002c beq  0x00000027 , 0x0000007c 
+ 00000011  0x0000002d beq  0x000000a3 , 0x000000c2 
+ 00000012  0x0000002e beq  0x000000a5 , 0x000000fa 
+ 00000013  0x0000002f beq  0x000000a6 , 0x00000087 
+ 00000014  0x00000030 beq  0x000000a7 , 0x00000098 
+ 00000015  0x00000031 beq  0x000000aa , 0x000000ea 
+ 00000016  0x00000032 beq  0x000000b1 , 0x000001d3 
+ 00000017  0x00000033 beq  0x000000c4 , 0x0000001f 
+ 00000018  0x00000034 beq  0x000000c5 , 0x000001c8 
+ 00000019  0x00000035 beq  0x000000da , 0x000002ed 
+ 00000020  0x00000036 beq  0x000000db , 0x00000409 
+ 00000021  0x00000037 beq  0x000000dc , 0x00000446 
+ 00000022  0x00000038 beq  0x000000dd , 0x00000427 
+ 00000023  0x00000039 branch  0x0000235a 
+ 00000024  0x0000003c beq  0x00000024 , 0x00000055 
+ 00000025  0x0000003d beq  0x00000025 , 0x000000d3 
+ 00000026  0x0000003e beq  0x00000026 , 0x000000d8 
+ 00000027  0x0000003f beq  0x00000039 , 0x00000320 
+ 00000028  0x00000040 beq  0x0000004d , 0x00000324 
+ 00000029  0x00000041 rtneq  0x000000ff 
+ 00000030  0x00000042 branch  0x0000235a 
+ 00000031  0x00000047 call  0x00006b34 
+ 00000032  0x00000048 call  0x00006b41 
+ 00000033  0x00000049 call  0x00006b3b 
+ 00000034  0x0000004b ifetcht  0x00000001 , 0x00000011 
+ 00000035  0x0000004c increase  0x00000001 , 0x00000011 
+ 00000036  0x0000004d force  0x00000000 , 0x00000007 
+ 00000037  0x0000004f set0  0x00000022 , 0x00000000 
+ 00000038  0x00000051 qisolate0  0x00000002 
+ 00000039  0x00000052 branch  0x00000049 , 0x00000001 
+ 00000040  0x00000053 fetch  0x00000001 , 0x00008046 
+ 00000041  0x00000054 set1  0x00000006 , 0x0000003f 
+ 00000042  0x00000055 set1  0x00000007 , 0x0000003f 
+ 00000043  0x00000056 store  0x00000001 , 0x00008046 
+ 00000044  0x00000057 jam  0x00000002 , 0x00008047 
+ 00000045  0x00000058 jam  0x00000082 , 0x00008047 
+ 00000046  0x00000059 set0  0x00000007 , 0x0000003f 
+ 00000047  0x0000005a store  0x00000001 , 0x00008046 
+ 00000048  0x0000005b jam  0x0000008a , 0x00008047 
+ 00000049  0x0000005c nop  0x0000000b 
+ 00000050  0x0000005d jam  0x000000ca , 0x00008047 
+ 00000051  0x0000005e nop  0x00000021 
+ 00000052  0x0000005f jam  0x0000004a , 0x00008047 
+ 00000053  0x00000060 nop  0x0000002c 
+ 00000054  0x00000061 jam  0x000000ca , 0x00008047 
+ 00000055  0x00000062 nop  0x00000016 
+ 00000056  0x00000063 jam  0x0000008a , 0x00008047 
+ 00000057  0x00000064 nop  0x00000021 
+ 00000058  0x00000065 jam  0x00000082 , 0x00008047 
+ 00000059  0x00000066 nop  0x00000001 
+ 00000060  0x00000067 jam  0x00000092 , 0x00008047 
+ 00000061  0x00000068 nop  0x0000000a 
+ 00000062  0x00000069 jam  0x000000b2 , 0x00008047 
+ 00000063  0x0000006a fetch  0x00000001 , 0x00008007 
+ 00000064  0x0000006b jam  0x00000092 , 0x00008047 
+ 00000065  0x0000006c nop  0x00000001 
+ 00000066  0x0000006d jam  0x00000082 , 0x00008047 
+ 00000067  0x0000006e nop  0x00000001 
+ 00000068  0x0000006f qisolate0  0x0000003f 
+ 00000069  0x00000070 branch  0x00000025 , 0x00000001 
+ 00000070  0x00000071 bmark1  0x00000022 , 0x00000049 
+ 00000071  0x00000072 set1  0x00000022 , 0x00000000 
+ 00000072  0x00000073 branch  0x00000026 
+ 00000073  0x00000076 fetch  0x00000002 , 0x00008044 
+ 00000074  0x00000077 increase  0x00000001 , 0x0000003f 
+ 00000075  0x00000078 store  0x00000002 , 0x00008044 
+ 00000076  0x00000079 increase  0x00000001 , 0x00000007 
+ 00000077  0x0000007a compare  0x00000008 , 0x00000007 , 0x0000000f 
+ 00000078  0x0000007b nbranch  0x00000025 , 0x00000001 
+ 00000079  0x0000007c loop  0x00000022 
+ 00000080  0x0000007d branch  0x00006b38 
+ 00000081  0x00000080 nbranch  0x00002002 , 0x0000002b 
+ 00000082  0x00000081 until  0x0000003e , 0x00000033 
+ 00000083  0x00000082 until  0x0000003e , 0x00000033 
+ 00000084  0x00000083 branch  0x00002002 
+ 00000085  0x00000087 call  0x000025c2 
+ 00000086  0x00000088 bmark0  0x0000002f , 0x0000005b 
+ 00000087  0x00000089 pulse  0x00000039 
+ 00000088  0x0000008a nop  0x0000001e 
+ 00000089  0x0000008b call  0x000025c2 
+ 00000090  0x0000008c lshift3  0x0000000b , 0x0000000b 
+ 00000091  0x0000008e disable  0x0000002d 
+ 00000092  0x0000008f enable  0x0000000d 
+ 00000093  0x00000090 enable  0x00000021 
+ 00000094  0x00000091 disable  0x00000020 
+ 00000095  0x00000092 copy  0x0000000b , 0x0000001b 
+ 00000096  0x00000093 correlate  0x0000003e , 0x00000003 
+ 00000097  0x00000094 branch  0x00000064 , 0x0000002e 
+ 00000098  0x00000095 copy  0x0000001a , 0x00000002 
+ 00000099  0x00000096 storet  0x00000006 , 0x0000000f 
+ 00000100  0x00000098 nbranch  0x000026fa , 0x00000018 
+ 00000101  0x00000099 enable  0x00000010 
+ 00000102  0x0000009a fetch  0x00000001 , 0x00004167 
+ 00000103  0x0000009b arg  0x00004e20 , 0x00000002 
+ 00000104  0x0000009c iadd  0x00000002 , 0x00000002 
+ 00000105  0x0000009d fetch  0x00000001 , 0x00004148 
+ 00000106  0x0000009e imul32  0x00000002 , 0x0000001b 
+ 00000107  0x0000009f call  0x00006877 
+ 00000108  0x000000a0 branch  0x00002677 , 0x0000002e 
+ 00000109  0x000000a1 call  0x00000072 
+ 00000110  0x000000a2 fetch  0x00000001 , 0x00000168 
+ 00000111  0x000000a3 bbit0  0x00000003 , 0x00002677 
+ 00000112  0x000000a4 call  0x00002477 , 0x0000002b 
+ 00000113  0x000000a5 branch  0x00002677 
+ 00000114  0x000000a8 fetcht  0x00000006 , 0x0000000f 
+ 00000115  0x000000a9 copy  0x0000001a , 0x0000003f 
+ 00000116  0x000000aa call  0x00007d12 
+ 00000117  0x000000ab copy  0x0000003f , 0x00000002 
+ 00000118  0x000000ad call  0x000026ff 
+ 00000119  0x000000ae copy  0x0000001a , 0x0000002b 
+ 00000120  0x000000af copy  0x00000029 , 0x0000003f 
+ 00000121  0x000000b0 iadd  0x00000002 , 0x0000003f 
+ 00000122  0x000000b2 copy  0x0000003f , 0x00000029 
+ 00000123  0x000000b3 rtn 
+ 00000124  0x000000b7 bmark0  0x00000009 , 0x00002489 
+ 00000125  0x000000b8 fetcht  0x00000004 , 0x000040ad 
+ 00000126  0x000000b9 arg  0x00000600 , 0x0000003f 
+ 00000127  0x000000ba isub  0x00000002 , 0x0000003e 
+ 00000128  0x000000bb rtn  0x00000002 
+ 00000129  0x000000bc copy  0x00000002 , 0x00000011 
+ 00000130  0x000000bd fetcht  0x00000006 , 0x0000000f 
+ 00000131  0x000000be deposit  0x0000002b 
+ 00000132  0x000000bf call  0x00007d10 
+ 00000133  0x000000c2 copy  0x00000011 , 0x00000002 
+ 00000134  0x000000c3 branch  0x0000247d 
+ 00000135  0x000000c6 copy  0x00000007 , 0x0000003f 
+ 00000136  0x000000c7 beq  0x00000001 , 0x00006777 
+ 00000137  0x000000c8 beq  0x00000005 , 0x00006765 
+ 00000138  0x000000c9 beq  0x00000000 , 0x00006761 
+ 00000139  0x000000ca beq  0x00000006 , 0x00000090 
+ 00000140  0x000000cb beq  0x00000007 , 0x00000093 
+ 00000141  0x000000cc beq  0x00000008 , 0x00000096 
+ 00000142  0x000000cd beq  0x00000009 , 0x00000097 
+ 00000143  0x000000ce branch  0x000065a2 
+ 00000144  0x000000d1 jam  0x00000001 , 0x00004fd9 
+ 00000145  0x000000d2 jam  0x00000001 , 0x00004fda 
+ 00000146  0x000000d3 rtn 
+ 00000147  0x000000d5 jam  0x00000001 , 0x00004fd9 
+ 00000148  0x000000d6 jam  0x00000002 , 0x00004fda 
+ 00000149  0x000000d7 rtn 
+ 00000150  0x000000d9 rtn 
+ 00000151  0x000000dc rtn 
+ 00000152  0x000000e0 fetch  0x00000001 , 0x00004ec7 
+ 00000153  0x000000e1 beq  0x00000001 , 0x000065cf 
+ 00000154  0x000000e2 call  0x00006628 
+ 00000155  0x000000e3 call  0x0000009e 
+ 00000156  0x000000e4 rtn  0x00000028 
+ 00000157  0x000000e5 branch  0x000065cf 
+ 00000158  0x000000e8 arg  0x00000000 , 0x00000007 
+ 00000159  0x000000ea arg  0x00004ac3 , 0x00000012 
+ 00000160  0x000000eb arg  0x00000002 , 0x0000003f 
+ 00000161  0x000000ec imul32  0x00000007 , 0x0000003f 
+ 00000162  0x000000ed iadd  0x00000012 , 0x00000012 
+ 00000163  0x000000ee ifetch  0x00000002 , 0x00000012 
+ 00000164  0x000000f0 rtn  0x00000034 
+ 00000165  0x000000f1 fetcht  0x00000002 , 0x000006f1 
+ 00000166  0x000000f2 ixor  0x00000002 , 0x0000003e 
+ 00000167  0x000000f3 branch  0x000000aa , 0x00000005 
+ 00000168  0x000000f4 increase  0x00000001 , 0x00000007 
+ 00000169  0x000000f5 branch  0x0000009f 
+ 00000170  0x000000f8 store  0x00000002 , 0x00004acf 
+ 00000171  0x000000f9 call  0x00004323 
+ 00000172  0x000000fa arg  0x00004ad1 , 0x00000013 
+ 00000173  0x000000fb arg  0x0000000a , 0x0000003f 
+ 00000174  0x000000fc imul32  0x00000007 , 0x0000003f 
+ 00000175  0x000000fd iadd  0x00000013 , 0x00000013 
+ 00000176  0x000000fe branch  0x00006633 
+ 00000177  0x00000101 fetch  0x00000002 , 0x00004acf 
+ 00000178  0x00000102 rtn  0x00000034 
+ 00000179  0x00000103 fetcht  0x00000002 , 0x000006f1 
+ 00000180  0x00000104 sub  0x00000002 , 0x00000000 , 0x0000003e 
+ 00000181  0x00000105 branch  0x000000b7 , 0x00000005 
+ 00000182  0x00000106 branch  0x000000b6 
+ 00000183  0x00000109 jam  0x00000001 , 0x00004ec0 
+ 00000184  0x0000010a call  0x00004325 
+ 00000185  0x0000010b arg  0x00004b0d , 0x00000013 
+ 00000186  0x0000010c setarg  0x00000000 
+ 00000187  0x0000010d store  0x00000002 , 0x00004acf 
+ 00000188  0x0000010e jam  0x00000032 , 0x0000489e 
+ 00000189  0x0000010f call  0x00006633 
+ 00000190  0x00000110 fetch  0x00000001 , 0x00004523 
+ 00000191  0x00000111 mul32  0x0000003f , 0x0000000a , 0x00000039 
+ 00000192  0x00000112 arg  0x000045fd , 0x00000005 
+ 00000193  0x00000113 branch  0x00007ca1 
+ 00000194  0x00000116 fetch  0x00000001 , 0x00004f9f 
+ 00000195  0x00000117 nbranch  0x000000cc , 0x00000034 
+ 00000196  0x00000119 jam  0x00000001 , 0x00004c00 
+ 00000197  0x0000011a call  0x00004323 
+ 00000198  0x0000011b call  0x000000cf 
+ 00000199  0x0000011c call  0x00006561 
+ 00000200  0x0000011d branch  0x00006500 , 0x00000002 
+ 00000201  0x0000011e copy  0x00000007 , 0x0000003f 
+ 00000202  0x0000011f store  0x00000001 , 0x00004ec5 
+ 00000203  0x00000121 rtn 
+ 00000204  0x00000124 copy  0x00000007 , 0x0000003f 
+ 00000205  0x00000125 rtnne  0x00000001 
+ 00000206  0x00000126 branch  0x000000c4 
+ 00000207  0x00000129 arg  0x0000000a , 0x0000003f 
+ 00000208  0x0000012a imul32  0x00000007 , 0x0000003f 
+ 00000209  0x0000012b arg  0x000045fd , 0x00000013 
+ 00000210  0x0000012c branch  0x0000652f 
+ 00000211  0x0000012f call  0x0000281c 
+ 00000212  0x00000130 fetchr  0x00000011 , 0x00000001 , 0x0000004d 
+ 00000213  0x00000131 increase  0xfffffffc , 0x00000011 
+ 00000214  0x00000132 nbranch  0x000026fa , 0x00000002 
+ 00000215  0x00000133 branch  0x0000268e 
+ 00000216  0x00000136 parse  0x00000003 , 0x00000000 , 0x00000018 
+ 00000217  0x00000137 rshift32  0x0000003f , 0x0000003f 
+ 00000218  0x00000138 rshift16  0x0000003f , 0x0000003f 
+ 00000219  0x00000139 istore  0x00000003 , 0x00000005 
+ 00000220  0x0000013a enable  0x00000010 
+ 00000221  0x0000013b call  0x0000270d 
+ 00000222  0x0000013c branch  0x000026f6 , 0x00000006 
+ 00000223  0x0000013d bmark0  0x00000032 , 0x000026af 
+ 00000224  0x0000013e fetch  0x00000001 , 0x0000004d 
+ 00000225  0x0000013f branch  0x000026af , 0x00000034 
+ 00000226  0x00000140 increase  0xfffffffc , 0x0000003f 
+ 00000227  0x00000141 store  0x00000001 , 0x0000004d 
+ 00000228  0x00000142 call  0x000072cb 
+ 00000229  0x00000143 fetch  0x00000001 , 0x00008108 
+ 00000230  0x00000144 bbit0  0x00000007 , 0x000026fa 
+ 00000231  0x00000145 force  0x0000000c , 0x00000038 
+ 00000232  0x00000146 storer  0x0000002f , 0x00000004 , 0x00000154 
+ 00000233  0x00000147 branch  0x000026af 
+ 00000234  0x0000014a copy  0x00000011 , 0x00000006 
+ 00000235  0x0000014b ifetch  0x00000003 , 0x00000006 
+ 00000236  0x0000014c store  0x00000003 , 0x00004397 
+ 00000237  0x0000014d beq  0x00000007 , 0x00006704 
+ 00000238  0x0000014e beq  0x00000001 , 0x000000f0 
+ 00000239  0x0000014f branch  0x000066db 
+ 00000240  0x00000152 increase  0xfffffffe , 0x00000006 
+ 00000241  0x00000153 ifetch  0x00000001 , 0x00000006 
+ 00000242  0x00000154 beq  0x00000006 , 0x000000f4 
+ 00000243  0x00000155 rtn 
+ 00000244  0x00000158 branch  0x000000f5 
+ 00000245  0x0000015b jam  0x00000001 , 0x00004eaa 
+ 00000246  0x0000015c jam  0x00000000 , 0x000049e4 
+ 00000247  0x0000015d jam  0x00000000 , 0x00004eb2 
+ 00000248  0x0000015e jam  0x0000000a , 0x000049e5 
+ 00000249  0x0000015f rtn 
+ 00000250  0x00000162 call  0x0000654b 
+ 00000251  0x00000164 arg  0x0000000a , 0x0000003f 
+ 00000252  0x00000165 imul32  0x00000007 , 0x0000003f 
+ 00000253  0x00000166 arg  0x000045fd , 0x00000013 
+ 00000254  0x00000167 iadd  0x00000013 , 0x00000013 
+ 00000255  0x00000168 ifetcht  0x00000004 , 0x00000013 
+ 00000256  0x00000169 sub  0x00000002 , 0x00000000 , 0x0000003e 
+ 00000257  0x0000016a rtn  0x00000005 
+ 00000258  0x0000016b copy  0x00000022 , 0x0000003f 
+ 00000259  0x0000016c isub  0x00000002 , 0x00000002 
+ 00000260  0x0000016d ncall  0x00007806 , 0x00000002 
+ 00000261  0x0000016e add  0x00000013 , 0x00000009 , 0x00000006 
+ 00000262  0x0000016f ifetch  0x00000001 , 0x00000006 
+ 00000263  0x00000170 nbranch  0x00000109 , 0x00000034 
+ 00000264  0x00000171 branch  0x00006547 
+ 00000265  0x00000174 jam  0x00000001 , 0x00004ec0 
+ 00000266  0x00000175 call  0x0000656b 
+ 00000267  0x00000176 call  0x00006769 
+ 00000268  0x00000177 copy  0x00000007 , 0x0000003f 
+ 00000269  0x00000178 beq  0x00000006 , 0x00000112 
+ 00000270  0x00000179 beq  0x00000007 , 0x00000116 
+ 00000271  0x0000017a arg  0x00004aae , 0x00000013 
+ 00000272  0x0000017b arg  0x00000003 , 0x0000003f 
+ 00000273  0x0000017c branch  0x0000655a 
+ 00000274  0x0000017f call  0x0000011a 
+ 00000275  0x00000180 call  0x0000038f 
+ 00000276  0x00000181 arg  0x00004fc4 , 0x00000013 
+ 00000277  0x00000182 branch  0x00006371 
+ 00000278  0x00000185 call  0x0000011a 
+ 00000279  0x00000186 call  0x000003b2 
+ 00000280  0x00000187 arg  0x00004fd2 , 0x00000013 
+ 00000281  0x00000188 branch  0x00006371 
+ 00000282  0x0000018b jam  0x00000000 , 0x00004fd9 
+ 00000283  0x0000018c jam  0x00000000 , 0x00004fda 
+ 00000284  0x0000018d rtn 
+ 00000285  0x00000190 call  0x00007552 
+ 00000286  0x00000191 call  0x00007448 
+ 00000287  0x00000192 call  0x00002a45 
+ 00000288  0x00000193 call  0x0000202a 
+ 00000289  0x00000194 call  0x000042ad 
+ 00000290  0x00000195 call  0x00002018 
+ 00000291  0x00000196 call  0x0000310f 
+ 00000292  0x00000197 call  0x0000248c 
+ 00000293  0x00000198 branch  0x0000011d 
+ 00000294  0x0000019c jam  0x00000060 , 0x00008a0f 
+ 00000295  0x0000019d jam  0x000000aa , 0x00008a10 
+ 00000296  0x0000019e jam  0x0000007a , 0x00008a12 
+ 00000297  0x0000019f jam  0x00000000 , 0x00008a25 
+ 00000298  0x000001a0 jam  0x00000000 , 0x00008a26 
+ 00000299  0x000001a1 nop  0x0000003c 
+ 00000300  0x000001a2 jam  0x00000020 , 0x00008a20 
+ 00000301  0x000001a3 jam  0x000000f5 , 0x00008a23 
+ 00000302  0x000001a4 jam  0x00000012 , 0x00008a24 
+ 00000303  0x000001a5 jam  0x00000010 , 0x00008a24 
+ 00000304  0x000001a6 nop  0x0000003c 
+ 00000305  0x000001a7 jam  0x00000060 , 0x00008a12 
+ 00000306  0x000001a8 jam  0x000000dd , 0x00008a23 
+ 00000307  0x000001a9 rtn 
+ 00000308  0x000001ac until  0x0000003e , 0x00000033 
+ 00000309  0x000001ad jam  0x00000058 , 0x0000813c 
+ 00000310  0x000001ae until  0x0000003e , 0x00000033 
+ 00000311  0x000001af rtn 
+ 00000312  0x000001b2 jam  0x00000000 , 0x000001bb 
+ 00000313  0x000001b3 jam  0x00000000 , 0x000001bc 
+ 00000314  0x000001b4 until  0x0000003e , 0x00000033 
+ 00000315  0x000001b6 jam  0x0000000d , 0x00008946 
+ 00000316  0x000001b7 jam  0x00000010 , 0x0000896f 
+ 00000317  0x000001b9 jam  0x00000040 , 0x00008a88 
+ 00000318  0x000001ba jam  0x000000cd , 0x00008a13 
+ 00000319  0x000001bb jam  0x00000010 , 0x00008a06 
+ 00000320  0x000001bc jam  0x0000004a , 0x00008a84 
+ 00000321  0x000001bd jam  0x00000040 , 0x00008a85 
+ 00000322  0x000001be jam  0x000000fe , 0x00008a16 
+ 00000323  0x000001bf call  0x00000188 
+ 00000324  0x000001c1 fetch  0x00000001 , 0x00004436 
+ 00000325  0x000001c2 call  0x000070d7 , 0x00000034 
+ 00000326  0x000001c3 ncall  0x00000134 , 0x0000002b 
+ 00000327  0x000001c4 until  0x0000003e , 0x00000033 
+ 00000328  0x000001c5 jam  0x0000005f , 0x0000813b 
+ 00000329  0x000001c6 fetch  0x00000001 , 0x00004099 
+ 00000330  0x000001c7 beq  0x00000010 , 0x00000175 
+ 00000331  0x000001c8 fetch  0x00000001 , 0x00004438 
+ 00000332  0x000001c9 or_into  0x00000004 , 0x0000003f 
+ 00000333  0x000001ca store  0x00000001 , 0x00008a02 
+ 00000334  0x000001cb jam  0x00000001 , 0x0000890f 
+ 00000335  0x000001cc jam  0x00000024 , 0x00008a80 
+ 00000336  0x000001cd jam  0x00000062 , 0x00008a81 
+ 00000337  0x000001ce setarg  0x00e61212 
+ 00000338  0x000001cf store  0x00000003 , 0x00008a73 
+ 00000339  0x000001d1 jam  0x00000060 , 0x00008a86 
+ 00000340  0x000001d2 jam  0x0000003b , 0x00008a8b 
+ 00000341  0x000001d3 call  0x00000167 
+ 00000342  0x000001d4 jam  0x00000000 , 0x00008043 
+ 00000343  0x000001d5 jam  0x00000005 , 0x00008042 
+ 00000344  0x000001d6 setarg  0x00557474 
+ 00000345  0x000001d7 store  0x00000003 , 0x00008968 
+ 00000346  0x000001d8 jam  0x0000006e , 0x00008960 
+ 00000347  0x000001d9 call  0x000002bf 
+ 00000348  0x000001da call  0x000002ea 
+ 00000349  0x000001db call  0x00000161 
+ 00000350  0x000001dc jam  0x0000000c , 0x00004148 
+ 00000351  0x000001dd call  0x00006f4e 
+ 00000352  0x000001de branch  0x000002ec 
+ 00000353  0x000001e1 rtn  0x0000002b 
+ 00000354  0x000001e2 until  0x0000003e , 0x00000033 
+ 00000355  0x000001e3 fetch  0x00000001 , 0x0000411c 
+ 00000356  0x000001e4 store  0x00000001 , 0x0000813a 
+ 00000357  0x000001e5 until  0x0000003e , 0x00000033 
+ 00000358  0x000001e6 rtn 
+ 00000359  0x000001e9 fetch  0x00000001 , 0x00004099 
+ 00000360  0x000001ea beq  0x00000018 , 0x0000016d 
+ 00000361  0x000001eb fetch  0x00000001 , 0x00004438 
+ 00000362  0x000001ec or_into  0x00000006 , 0x0000003f 
+ 00000363  0x000001ed store  0x00000001 , 0x00008a02 
+ 00000364  0x000001ee jam  0x000000e0 , 0x00008a05 
+ 00000365  0x000001f0 jam  0x000000d8 , 0x00008a00 
+ 00000366  0x000001f1 nop  0x0000003c 
+ 00000367  0x000001f2 jam  0x000000a0 , 0x00008a01 
+ 00000368  0x000001f3 jam  0x000000df , 0x00008a00 
+ 00000369  0x000001f4 jam  0x000000fa , 0x00008a01 
+ 00000370  0x000001f5 nop  0x00000014 
+ 00000371  0x000001f6 jam  0x0000009f , 0x00008a00 
+ 00000372  0x000001f7 rtn 
+ 00000373  0x000001fa fetch  0x00000001 , 0x00004438 
+ 00000374  0x000001fb or_into  0x00000006 , 0x0000003f 
+ 00000375  0x000001fc store  0x00000001 , 0x00008a02 
+ 00000376  0x000001fd jam  0x00000000 , 0x0000890f 
+ 00000377  0x000001fe jam  0x00000023 , 0x00008a80 
+ 00000378  0x000001ff jam  0x000000b0 , 0x00008a81 
+ 00000379  0x00000200 setarg  0x00e40909 
+ 00000380  0x00000201 store  0x00000003 , 0x00008a73 
+ 00000381  0x00000202 jam  0x0000002a , 0x00008a76 
+ 00000382  0x00000203 jam  0x00000004 , 0x00008902 
+ 00000383  0x00000204 branch  0x00000153 
+ 00000384  0x00000207 fetch  0x00000001 , 0x00004141 
+ 00000385  0x00000208 beq  0x0000000a , 0x00000183 
+ 00000386  0x00000209 branch  0x0000220e 
+ 00000387  0x0000020c jam  0x00000025 , 0x00008a14 
+ 00000388  0x0000020d setarg  0x00a93f3f 
+ 00000389  0x0000020e store  0x00000003 , 0x00008a60 
+ 00000390  0x0000020f jam  0x0000001f , 0x00008a63 
+ 00000391  0x00000210 rtn 
+ 00000392  0x00000213 branch  0x000001af , 0x0000002b 
+ 00000393  0x00000214 fetch  0x00000004 , 0x0000020d 
+ 00000394  0x00000215 rtn  0x00000034 
+ 00000395  0x00000216 until  0x0000003e , 0x00000033 
+ 00000396  0x00000217 fetch  0x00000001 , 0x00008136 
+ 00000397  0x00000218 and  0x0000003f , 0x000000f0 , 0x0000003f 
+ 00000398  0x00000219 fetcht  0x00000001 , 0x0000020d 
+ 00000399  0x0000021a ior  0x00000002 , 0x0000003f 
+ 00000400  0x0000021b store  0x00000001 , 0x00008136 
+ 00000401  0x0000021c until  0x0000003e , 0x00000033 
+ 00000402  0x0000021e fetch  0x00000001 , 0x00008138 
+ 00000403  0x0000021f and  0x0000003f , 0x00000007 , 0x0000003f 
+ 00000404  0x00000220 fetcht  0x00000001 , 0x0000020e 
+ 00000405  0x00000221 lshift3  0x00000002 , 0x00000002 
+ 00000406  0x00000222 ior  0x00000002 , 0x0000003f 
+ 00000407  0x00000223 store  0x00000001 , 0x00008138 
+ 00000408  0x00000224 until  0x0000003e , 0x00000033 
+ 00000409  0x00000227 fetch  0x00000001 , 0x00008acb 
+ 00000410  0x00000228 and  0x0000003f , 0x000000f0 , 0x0000003f 
+ 00000411  0x00000229 fetcht  0x00000001 , 0x0000020f 
+ 00000412  0x0000022a storet  0x00000001 , 0x0000415b 
+ 00000413  0x0000022b ior  0x00000002 , 0x0000003f 
+ 00000414  0x0000022c store  0x00000001 , 0x00008acb 
+ 00000415  0x0000022e fetch  0x00000001 , 0x00000210 
+ 00000416  0x0000022f store  0x00000001 , 0x0000415c 
+ 00000417  0x00000230 isolate1  0x00000003 , 0x0000003f 
+ 00000418  0x00000231 fetch  0x00000001 , 0x00008a06 
+ 00000419  0x00000232 setflag  0x00000001 , 0x00000007 , 0x0000003f 
+ 00000420  0x00000233 store  0x00000001 , 0x00008a06 
+ 00000421  0x00000235 fetch  0x00000001 , 0x00000210 
+ 00000422  0x00000236 and  0x0000003f , 0x00000007 , 0x00000002 
+ 00000423  0x00000237 lshift4  0x00000002 , 0x00000002 
+ 00000424  0x00000238 lshift  0x00000002 , 0x00000002 
+ 00000425  0x00000239 storet  0x00000001 , 0x00004438 
+ 00000426  0x0000023a fetch  0x00000001 , 0x00008a02 
+ 00000427  0x0000023b and  0x0000003f , 0x0000001f , 0x0000003f 
+ 00000428  0x0000023c ior  0x00000002 , 0x0000003f 
+ 00000429  0x0000023d store  0x00000001 , 0x00008a02 
+ 00000430  0x0000023e rtn 
+ 00000431  0x00000241 fetch  0x00000002 , 0x0000415b 
+ 00000432  0x00000242 rtn  0x00000034 
+ 00000433  0x00000243 store  0x00000002 , 0x0000020f 
+ 00000434  0x00000244 branch  0x00000199 
+ 00000435  0x00000248 call  0x0000686f 
+ 00000436  0x00000249 call  0x000021ba 
+ 00000437  0x0000024a force  0x00000008 , 0x00000015 
+ 00000438  0x0000024b force  0x00000000 , 0x00000015 
+ 00000439  0x0000024d setarg  0x000aaada 
+ 00000440  0x0000024e store  0x00000003 , 0x00008a0f 
+ 00000441  0x0000024f jam  0x00000040 , 0x00008a25 
+ 00000442  0x00000250 jam  0x00000010 , 0x00008a26 
+ 00000443  0x00000251 nop  0x0000003c 
+ 00000444  0x00000252 jam  0x000000fb , 0x00008a01 
+ 00000445  0x00000253 jam  0x000000ff , 0x00008a25 
+ 00000446  0x00000254 jam  0x00000030 , 0x00008a26 
+ 00000447  0x00000255 jam  0x000000fe , 0x00008a16 
+ 00000448  0x00000256 branch  0x000021b4 
+ 00000449  0x0000025a setarg  0x000aaa7e 
+ 00000450  0x0000025b store  0x00000003 , 0x00008a0f 
+ 00000451  0x0000025c nop  0x0000003c 
+ 00000452  0x0000025d jam  0x00000000 , 0x00008a25 
+ 00000453  0x0000025e jam  0x0000000d , 0x00008a26 
+ 00000454  0x0000025f jam  0x000000f6 , 0x00008a16 
+ 00000455  0x00000260 branch  0x00002203 
+ 00000456  0x00000263 call  0x00006b3a 
+ 00000457  0x00000264 call  0x00006b75 
+ 00000458  0x00000265 branch  0x00006b38 
+ 00000459  0x00000268 fetch  0x00000001 , 0x00004ee3 
+ 00000460  0x00000269 copy  0x0000003f , 0x00000039 
+ 00000461  0x0000026a store  0x00000001 , 0x00004523 
+ 00000462  0x0000026b setarg  0x00004523 
+ 00000463  0x0000026c store  0x00000002 , 0x0000442c 
+ 00000464  0x0000026d arg  0x00004ee4 , 0x00000006 
+ 00000465  0x0000026e arg  0x00004526 , 0x00000005 
+ 00000466  0x0000026f branch  0x00007cda 
+ 00000467  0x00000272 call  0x00007396 
+ 00000468  0x00000273 rtn  0x0000002b 
+ 00000469  0x00000274 call  0x000042a3 
+ 00000470  0x00000275 call  0x000003c5 
+ 00000471  0x00000276 jam  0x00000000 , 0x00004094 
+ 00000472  0x00000277 call  0x000001cb 
+ 00000473  0x00000278 call  0x00006459 
+ 00000474  0x00000279 setarg  0x00000001 
+ 00000475  0x0000027a store  0x00000002 , 0x000044f6 
+ 00000476  0x0000027b jam  0x0000000a , 0x000040a6 
+ 00000477  0x0000027d setarg  0x0000024d 
+ 00000478  0x0000027e store  0x00000002 , 0x000043db 
+ 00000479  0x00000280 setarg  0x0000022a 
+ 00000480  0x00000281 store  0x00000002 , 0x000043dd 
+ 00000481  0x00000283 setarg  0x0000023f 
+ 00000482  0x00000284 store  0x00000002 , 0x000043df 
+ 00000483  0x00000286 setarg  0x000062d3 
+ 00000484  0x00000287 store  0x00000002 , 0x000043d3 
+ 00000485  0x00000289 setarg  0x000001f7 
+ 00000486  0x0000028a store  0x00000002 , 0x000043d5 
+ 00000487  0x0000028c setarg  0x00006329 
+ 00000488  0x0000028d store  0x00000002 , 0x000043d7 
+ 00000489  0x0000028f setarg  0x0000020c 
+ 00000490  0x00000290 store  0x00000002 , 0x000043e3 
+ 00000491  0x00000292 setarg  0x00006505 
+ 00000492  0x00000293 store  0x00000002 , 0x00004524 
+ 00000493  0x00000295 setarg  0x00006340 
+ 00000494  0x00000296 store  0x00000002 , 0x0000451f 
+ 00000495  0x00000298 setarg  0x0000639a 
+ 00000496  0x00000299 store  0x00000002 , 0x00004521 
+ 00000497  0x0000029b call  0x000062ca 
+ 00000498  0x0000029d fetch  0x00000002 , 0x00004f87 
+ 00000499  0x0000029e store  0x00000002 , 0x00004332 
+ 00000500  0x0000029f fetch  0x00000008 , 0x0000450a 
+ 00000501  0x000002a0 store  0x00000008 , 0x00004502 
+ 00000502  0x000002a4 branch  0x000062bd 
+ 00000503  0x000002b3 call  0x00006f35 
+ 00000504  0x000002b4 jam  0x000000ff , 0x000044ec 
+ 00000505  0x000002b5 call  0x000001fc 
+ 00000506  0x000002b6 call  0x0000701b 
+ 00000507  0x000002b7 branch  0x0000739a 
+ 00000508  0x000002ba fetch  0x00000001 , 0x000046ce 
+ 00000509  0x000002bb rtn  0x00000034 
+ 00000510  0x000002bc fetch  0x00000001 , 0x00004ee3 
+ 00000511  0x000002bd copy  0x0000003f , 0x00000039 
+ 00000512  0x000002be arg  0x00004526 , 0x00000011 
+ 00000513  0x000002c0 ifetch  0x00000001 , 0x00000011 
+ 00000514  0x000002c1 fetcht  0x00000001 , 0x000046cf 
+ 00000515  0x000002c2 isub  0x00000002 , 0x0000003e 
+ 00000516  0x000002c3 branch  0x00000207 , 0x00000005 
+ 00000517  0x000002c4 copy  0x0000003f , 0x00000002 
+ 00000518  0x000002c5 call  0x0000020a 
+ 00000519  0x000002c7 increase  0x00000001 , 0x00000011 
+ 00000520  0x000002c8 loop  0x00000201 
+ 00000521  0x000002c9 rtn 
+ 00000522  0x000002cc set1  0x00000007 , 0x00000002 
+ 00000523  0x000002cd branch  0x00006edd 
+ 00000524  0x000002d0 call  0x000003cd 
+ 00000525  0x000002d1 call  0x00000212 
+ 00000526  0x000002d2 call  0x0000676c 
+ 00000527  0x000002d3 call  0x0000675a 
+ 00000528  0x000002d4 call  0x00000223 
+ 00000529  0x000002d5 branch  0x000064d9 
+ 00000530  0x000002d8 arg  0x00004fee , 0x00000013 
+ 00000531  0x000002d9 arg  0x00000215 , 0x00000012 
+ 00000532  0x000002da branch  0x000042e0 
+ 00000533  0x000002dd fetch  0x00000001 , 0x00004fef 
+ 00000534  0x000002de jam  0x00000000 , 0x00004fef 
+ 00000535  0x000002df beq  0x00000001 , 0x0000021a 
+ 00000536  0x000002e0 beq  0x00000002 , 0x0000021c 
+ 00000537  0x000002e1 rtn 
+ 00000538  0x000002e4 arg  0x00004a3f , 0x00000013 
+ 00000539  0x000002e5 branch  0x00006371 
+ 00000540  0x000002e8 call  0x0000021e 
+ 00000541  0x000002e9 branch  0x00006371 
+ 00000542  0x000002ec arg  0x00004fdc , 0x00000013 
+ 00000543  0x000002ed call  0x00006730 
+ 00000544  0x000002ee rtn  0x00000034 
+ 00000545  0x000002ef arg  0x00004fe5 , 0x00000013 
+ 00000546  0x000002f0 rtn 
+ 00000547  0x000002f3 arg  0x00004518 , 0x00000013 
+ 00000548  0x000002f4 arg  0x00000226 , 0x00000012 
+ 00000549  0x000002f5 branch  0x000042e7 
+ 00000550  0x000002f7 jam  0x00000002 , 0x0000451c 
+ 00000551  0x000002f8 call  0x00004325 
+ 00000552  0x000002f9 call  0x0000634e 
+ 00000553  0x000002fa branch  0x0000639e 
+ 00000554  0x000002fd copy  0x00000013 , 0x0000003f 
+ 00000555  0x000002fe beq  0x00000040 , 0x00000236 
+ 00000556  0x000002ff beq  0x00000031 , 0x00000234 
+ 00000557  0x00000300 beq  0x00000015 , 0x00000231 
+ 00000558  0x00000301 beq  0x00000014 , 0x00000230 
+ 00000559  0x00000302 branch  0x000064e0 
+ 00000560  0x00000305 branch  0x000064f4 
+ 00000561  0x00000308 fetch  0x00000002 , 0x00004512 
+ 00000562  0x00000309 store  0x00000002 , 0x00004518 
+ 00000563  0x0000030a branch  0x000064ef 
+ 00000564  0x0000030d jam  0x00000001 , 0x00004ec2 
+ 00000565  0x0000030e rtn 
+ 00000566  0x00000311 fetch  0x00000002 , 0x0000433c 
+ 00000567  0x00000312 rtneq  0x00000000 
+ 00000568  0x00000313 fetch  0x00000008 , 0x0000450a 
+ 00000569  0x00000314 rtn  0x00000034 
+ 00000570  0x00000315 call  0x00006730 
+ 00000571  0x00000316 nbranch  0x0000024a , 0x00000034 
+ 00000572  0x00000317 fetch  0x00000008 , 0x00004f02 
+ 00000573  0x00000318 store  0x00000008 , 0x000042d3 
+ 00000574  0x00000319 branch  0x00002e93 
+ 00000575  0x0000031c fetch  0x00000002 , 0x00004398 
+ 00000576  0x0000031d beq  0x00000024 , 0x00000242 
+ 00000577  0x0000031e rtn 
+ 00000578  0x00000321 call  0x000078ad 
+ 00000579  0x00000322 jam  0x00000001 , 0x000044f1 
+ 00000580  0x00000323 call  0x00006730 
+ 00000581  0x00000324 call  0x0000432b 
+ 00000582  0x00000325 nbranch  0x0000024a , 0x00000034 
+ 00000583  0x00000326 fetch  0x00000008 , 0x00004f02 
+ 00000584  0x00000327 store  0x00000008 , 0x000042d3 
+ 00000585  0x00000328 branch  0x00002e93 
+ 00000586  0x0000032b fetch  0x00000008 , 0x00004fb0 
+ 00000587  0x0000032c store  0x00000008 , 0x000042d3 
+ 00000588  0x0000032d branch  0x00002e93 
+ 00000589  0x00000330 call  0x00000258 
+ 00000590  0x00000331 arg  0x00000009 , 0x00000007 
+ 00000591  0x00000332 call  0x00007cef 
+ 00000592  0x00000333 nrtn  0x00000034 
+ 00000593  0x00000334 setarg  0x00000020 
+ 00000594  0x00000335 arg  0x00000009 , 0x00000007 
+ 00000595  0x00000336 call  0x00007ce1 
+ 00000596  0x00000337 disable  0x00000028 
+ 00000597  0x00000338 call  0x0000701b 
+ 00000598  0x00000339 call  0x00000272 
+ 00000599  0x0000033a branch  0x0000034f 
+ 00000600  0x0000033d fetch  0x00000002 , 0x000044e9 
+ 00000601  0x0000033e bbit1  0x00000009 , 0x0000025d 
+ 00000602  0x0000033f arg  0x000045da , 0x00000005 
+ 00000603  0x00000340 arg  0x00000023 , 0x00000039 
+ 00000604  0x00000341 branch  0x00007ca1 
+ 00000605  0x00000344 call  0x00002a28 
+ 00000606  0x00000345 nrtn  0x00000034 
+ 00000607  0x00000346 call  0x000078fa 
+ 00000608  0x00000347 rtn  0x00000034 
+ 00000609  0x00000348 fetcht  0x00000004 , 0x000049e6 
+ 00000610  0x00000349 copy  0x00000022 , 0x0000003f 
+ 00000611  0x0000034a isub  0x00000002 , 0x00000002 
+ 00000612  0x0000034b rtn  0x00000005 
+ 00000613  0x0000034c nbranch  0x00000269 , 0x00000002 
+ 00000614  0x0000034d fetch  0x00000001 , 0x000049e5 
+ 00000615  0x0000034e isub  0x00000002 , 0x0000003e 
+ 00000616  0x0000034f rtn  0x00000002 
+ 00000617  0x00000351 copy  0x00000022 , 0x0000003f 
+ 00000618  0x00000352 store  0x00000004 , 0x000049e6 
+ 00000619  0x00000353 call  0x00006385 
+ 00000620  0x00000354 nrtn  0x00000028 
+ 00000621  0x00000355 pincrease  0xffffffff 
+ 00000622  0x00000356 mul32  0x0000003f , 0x0000000d , 0x0000003f 
+ 00000623  0x00000357 arg  0x00004c02 , 0x00000002 
+ 00000624  0x00000358 iadd  0x00000002 , 0x00000006 
+ 00000625  0x00000359 branch  0x000063cb 
+ 00000626  0x0000035c fetch  0x00000002 , 0x000048ac 
+ 00000627  0x0000035d store  0x00000002 , 0x0000442e 
+ 00000628  0x0000035e call  0x000065be 
+ 00000629  0x0000035f fetch  0x00000002 , 0x0000442e 
+ 00000630  0x00000360 store  0x00000002 , 0x000048ac 
+ 00000631  0x00000362 arg  0x00000000 , 0x00000007 
+ 00000632  0x00000363 fetch  0x00000001 , 0x00004523 
+ 00000633  0x00000364 copy  0x0000003f , 0x00000039 
+ 00000634  0x00000365 arg  0x000045fd , 0x00000013 
+ 00000635  0x00000367 copy  0x00000039 , 0x0000003f 
+ 00000636  0x00000368 store  0x00000002 , 0x00000678 
+ 00000637  0x00000369 copy  0x00000013 , 0x0000003f 
+ 00000638  0x0000036a store  0x00000002 , 0x0000068c 
+ 00000639  0x0000036b copy  0x00000007 , 0x0000003f 
+ 00000640  0x0000036c store  0x00000002 , 0x0000067a 
+ 00000641  0x0000036d call  0x0000028f 
+ 00000642  0x0000036f fetch  0x00000002 , 0x0000068c 
+ 00000643  0x00000370 copy  0x0000003f , 0x00000013 
+ 00000644  0x00000371 fetch  0x00000002 , 0x0000067a 
+ 00000645  0x00000372 copy  0x0000003f , 0x00000007 
+ 00000646  0x00000373 call  0x0000658b 
+ 00000647  0x00000375 fetch  0x00000002 , 0x0000067a 
+ 00000648  0x00000376 add  0x0000003f , 0x00000001 , 0x00000007 
+ 00000649  0x00000377 fetch  0x00000002 , 0x0000068c 
+ 00000650  0x00000378 add  0x0000003f , 0x0000000a , 0x00000013 
+ 00000651  0x00000379 fetch  0x00000002 , 0x00000678 
+ 00000652  0x0000037a copy  0x0000003f , 0x00000039 
+ 00000653  0x0000037b loop  0x0000027b 
+ 00000654  0x0000037c rtn 
+ 00000655  0x0000037f add  0x00000013 , 0x00000005 , 0x00000012 
+ 00000656  0x00000380 ifetch  0x00000004 , 0x00000012 
+ 00000657  0x00000381 rtn  0x00000034 
+ 00000658  0x00000382 copy  0x0000003f , 0x00000002 
+ 00000659  0x00000383 copy  0x00000022 , 0x0000003f 
+ 00000660  0x00000384 isub  0x00000002 , 0x00000002 
+ 00000661  0x00000385 ncall  0x00007806 , 0x00000002 
+ 00000662  0x00000386 setarg  0x000003e8 
+ 00000663  0x00000387 isub  0x00000002 , 0x0000003e 
+ 00000664  0x00000388 branch  0x00000299 
+ 00000665  0x0000038a add  0x00000013 , 0x00000004 , 0x00000006 
+ 00000666  0x0000038b ifetch  0x00000001 , 0x00000006 
+ 00000667  0x0000038c branch  0x0000029c 
+ 00000668  0x0000038f call  0x0000656b 
+ 00000669  0x00000391 call  0x00006561 
+ 00000670  0x00000392 branch  0x00006500 , 0x00000002 
+ 00000671  0x00000393 call  0x000002b7 
+ 00000672  0x00000394 copy  0x00000007 , 0x0000003f 
+ 00000673  0x00000395 beq  0x00000006 , 0x000002a6 
+ 00000674  0x00000396 beq  0x00000007 , 0x000002a8 
+ 00000675  0x00000397 beq  0x00000008 , 0x000002aa 
+ 00000676  0x00000398 beq  0x00000001 , 0x000002b1 
+ 00000677  0x00000399 branch  0x00006558 
+ 00000678  0x0000039c arg  0x00004fb8 , 0x00000013 
+ 00000679  0x0000039d branch  0x00006371 
+ 00000680  0x000003a0 arg  0x00004fc6 , 0x00000013 
+ 00000681  0x000003a1 branch  0x00006371 
+ 00000682  0x000003a4 call  0x000002ac 
+ 00000683  0x000003a5 branch  0x00006371 
+ 00000684  0x000003a8 arg  0x00004fdc , 0x00000013 
+ 00000685  0x000003a9 call  0x00006730 
+ 00000686  0x000003aa rtn  0x00000034 
+ 00000687  0x000003ab arg  0x00004fe5 , 0x00000013 
+ 00000688  0x000003ad rtn 
+ 00000689  0x000003b0 jam  0x00000005 , 0x00004fee 
+ 00000690  0x000003b1 fetch  0x00000001 , 0x00004fef 
+ 00000691  0x000003b2 rtneq  0x00000002 
+ 00000692  0x000003b3 increase  0x00000001 , 0x0000003f 
+ 00000693  0x000003b4 store  0x00000001 , 0x00004fef 
+ 00000694  0x000003b5 rtn 
+ 00000695  0x000003b9 arg  0x00004a30 , 0x00000013 
+ 00000696  0x000003ba jam  0x0000005a , 0x000049e5 
+ 00000697  0x000003bb call  0x00006730 
+ 00000698  0x000003bc rtn  0x00000034 
+ 00000699  0x000003bd arg  0x00004b57 , 0x00000013 
+ 00000700  0x000003be copy  0x00000007 , 0x0000003f 
+ 00000701  0x000003bf jam  0x00000014 , 0x000049e5 
+ 00000702  0x000003c0 rtn 
+ 00000703  0x000003c5 rtn  0x0000002b 
+ 00000704  0x000003c6 call  0x00002160 
+ 00000705  0x000003c7 arg  0x00000027 , 0x00000002 
+ 00000706  0x000003c8 call  0x0000216f 
+ 00000707  0x000003c9 call  0x000021a6 
+ 00000708  0x000003ca jam  0x0000007f , 0x00008a25 
+ 00000709  0x000003cb jam  0x0000001a , 0x00008a30 
+ 00000710  0x000003cc jam  0x00000078 , 0x00008a31 
+ 00000711  0x000003cd jam  0x000000b2 , 0x00008a8f 
+ 00000712  0x000003ce jam  0x00000000 , 0x00008ac2 
+ 00000713  0x000003cf jam  0x00000000 , 0x00008ac3 
+ 00000714  0x000003d0 arg  0x00000006 , 0x00000007 
+ 00000715  0x000003d1 call  0x000002dc 
+ 00000716  0x000003d2 isolate1  0x0000000d , 0x00000011 
+ 00000717  0x000003d3 call  0x0000211d 
+ 00000718  0x000003d4 isolate1  0x0000000d , 0x00000012 
+ 00000719  0x000003d5 call  0x0000211e 
+ 00000720  0x000003d6 arg  0x00000005 , 0x00000007 
+ 00000721  0x000003d8 call  0x0000211c 
+ 00000722  0x000003d9 call  0x0000211e 
+ 00000723  0x000003da call  0x000002dc 
+ 00000724  0x000003db arg  0x00008ac2 , 0x00000005 
+ 00000725  0x000003dc rshift4  0x00000011 , 0x0000003f 
+ 00000726  0x000003dd call  0x00002117 
+ 00000727  0x000003de rshift4  0x00000012 , 0x0000003f 
+ 00000728  0x000003df call  0x00002117 
+ 00000729  0x000003e0 increase  0xffffffff , 0x00000007 
+ 00000730  0x000003e1 branch  0x000002d1 , 0x00000002 
+ 00000731  0x000003e2 branch  0x0000214f 
+ 00000732  0x000003e5 nop  0x0000003c 
+ 00000733  0x000003e6 setarg  0x00000f00 
+ 00000734  0x000003e7 store  0x00000002 , 0x00008982 
+ 00000735  0x000003e8 setarg  0x00000ff0 
+ 00000736  0x000003e9 store  0x00000002 , 0x00008984 
+ 00000737  0x000003ea jam  0x00000009 , 0x00008981 
+ 00000738  0x000003eb jam  0x00000003 , 0x00008981 
+ 00000739  0x000003ec jam  0x00000006 , 0x00008980 
+ 00000740  0x000003ed nop  0x0000003c 
+ 00000741  0x000003ee arg  0x00000000 , 0x00000011 
+ 00000742  0x000003ef arg  0x00000000 , 0x00000012 
+ 00000743  0x000003f0 arg  0x00000010 , 0x00000039 
+ 00000744  0x000003f1 arg  0x00000f00 , 0x00000006 
+ 00000745  0x000003f2 branch  0x0000212d 
+ 00000746  0x000003f5 rtn  0x0000002b 
+ 00000747  0x000003f6 branch  0x00002272 
+ 00000748  0x000003f9 rtn 
+ 00000749  0x000003fc rtn  0x0000002b 
+ 00000750  0x000003fd jam  0x00000077 , 0x00008a07 
+ 00000751  0x000003fe jam  0x000000c9 , 0x00008a08 
+ 00000752  0x000003ff jam  0x00000001 , 0x00008a0b 
+ 00000753  0x00000400 fetch  0x00000001 , 0x00004409 
+ 00000754  0x00000401 store  0x00000001 , 0x000080cd 
+ 00000755  0x00000402 nop  0x00000bb8 
+ 00000756  0x00000403 call  0x000002fd 
+ 00000757  0x00000404 jam  0x000000c1 , 0x00008a08 
+ 00000758  0x00000405 fetchr  0x00000012 , 0x00000001 , 0x00004419 
+ 00000759  0x00000406 arg  0x00000008 , 0x00000039 
+ 00000760  0x00000407 call  0x00006f58 
+ 00000761  0x00000408 fetch  0x00000001 , 0x00004419 
+ 00000762  0x00000409 store  0x00000001 , 0x00004433 
+ 00000763  0x0000040a storer  0x00000012 , 0x00000001 , 0x00004419 
+ 00000764  0x0000040b rtn 
+ 00000765  0x0000040e jam  0x00000003 , 0x000080cc 
+ 00000766  0x00000410 fetch  0x00000001 , 0x00008129 
+ 00000767  0x00000411 bbit0  0x00000005 , 0x000002fe 
+ 00000768  0x00000412 fetcht  0x00000002 , 0x00008164 
+ 00000769  0x00000413 storet  0x00000002 , 0x0000440a 
+ 00000770  0x00000414 jam  0x00000000 , 0x000080cc 
+ 00000771  0x00000415 rtn 
+ 00000772  0x0000041a jam  0x00000011 , 0x00008a82 
+ 00000773  0x0000041b jam  0x00000012 , 0x00008a8d 
+ 00000774  0x0000041c jam  0x0000000a , 0x00008a8e 
+ 00000775  0x0000041d fetch  0x00000001 , 0x00004099 
+ 00000776  0x0000041e beq  0x00000010 , 0x0000031d 
+ 00000777  0x0000041f setarg  0x00005762 
+ 00000778  0x00000420 store  0x00000002 , 0x00008907 
+ 00000779  0x00000422 jam  0x00000003 , 0x00008901 
+ 00000780  0x00000423 jam  0x00000003 , 0x00008930 
+ 00000781  0x00000424 rtnmark1  0x0000002d 
+ 00000782  0x00000425 jam  0x00000001 , 0x00008901 
+ 00000783  0x00000426 jam  0x00000007 , 0x00008a82 
+ 00000784  0x00000427 jam  0x00000044 , 0x00008a8d 
+ 00000785  0x00000428 jam  0x0000000a , 0x00008a8e 
+ 00000786  0x00000429 fetch  0x00000001 , 0x00004099 
+ 00000787  0x0000042a beq  0x00000010 , 0x0000031a 
+ 00000788  0x0000042b setarg  0x00002bb1 
+ 00000789  0x0000042c store  0x00000002 , 0x00008907 
+ 00000790  0x0000042e rtnmark0  0x0000002f 
+ 00000791  0x0000042f jam  0x00000024 , 0x00008930 
+ 00000792  0x00000430 jam  0x00000005 , 0x00008901 
+ 00000793  0x00000431 rtn 
+ 00000794  0x00000434 setarg  0x00004189 
+ 00000795  0x00000435 store  0x00000002 , 0x00008907 
+ 00000796  0x00000436 branch  0x00000316 
+ 00000797  0x00000439 setarg  0x00008312 
+ 00000798  0x0000043a store  0x00000002 , 0x00008907 
+ 00000799  0x0000043b branch  0x0000030b 
+ 00000800  0x0000043e fetch  0x00000001 , 0x00004334 
+ 00000801  0x0000043f rtneq  0x00000000 
+ 00000802  0x00000440 beq  0x00000003 , 0x0000304a 
+ 00000803  0x00000441 branch  0x000028e1 
+ 00000804  0x00000444 set0  0x00000030 , 0x00000000 
+ 00000805  0x00000445 branch  0x00002af6 
+ 00000806  0x00000449 fetch  0x00000002 , 0x000043e9 
+ 00000807  0x0000044a call  0x00007d79 
+ 00000808  0x0000044c fetch  0x00000004 , 0x000040ad 
+ 00000809  0x0000044d iadd  0x00000002 , 0x0000003f 
+ 00000810  0x0000044e store  0x00000004 , 0x000040ad 
+ 00000811  0x0000044f call  0x00000337 
+ 00000812  0x00000450 fetch  0x00000001 , 0x000040cb 
+ 00000813  0x00000451 set1  0x00000004 , 0x0000003f 
+ 00000814  0x00000452 call  0x000023e1 
+ 00000815  0x00000453 ncall  0x000023cb , 0x0000002b 
+ 00000816  0x00000454 until  0x0000003e , 0x00000033 
+ 00000817  0x00000455 copy  0x00000019 , 0x0000003f 
+ 00000818  0x00000456 store  0x00000006 , 0x000040b1 
+ 00000819  0x00000458 fetch  0x00000003 , 0x000040c6 
+ 00000820  0x00000459 fetchr  0x00000011 , 0x00000001 , 0x000040c9 
+ 00000821  0x0000045a arg  0x00000003 , 0x00000039 
+ 00000822  0x0000045b branch  0x0000242e 
+ 00000823  0x0000045e storer  0x00000000 , 0x00000008 , 0x000040e7 
+ 00000824  0x0000045f arg  0x00008070 , 0x00000006 
+ 00000825  0x00000460 arg  0x000040cc , 0x00000005 
+ 00000826  0x00000461 call  0x00007c8f 
+ 00000827  0x00000462 arg  0x000080d4 , 0x00000006 
+ 00000828  0x00000463 call  0x00007c89 
+ 00000829  0x00000464 fetch  0x00000001 , 0x00008080 
+ 00000830  0x00000465 store  0x00000001 , 0x000040ef 
+ 00000831  0x00000466 copy  0x00000002 , 0x00000012 
+ 00000832  0x00000468 arg  0x0000000c , 0x00000039 
+ 00000833  0x00000469 arg  0x00000016 , 0x00000011 
+ 00000834  0x0000046a arg  0x0000814d , 0x00000013 
+ 00000835  0x0000046b until  0x0000003e , 0x00000033 
+ 00000836  0x0000046d ifetch  0x00000001 , 0x00000011 
+ 00000837  0x0000046e ifetcht  0x00000001 , 0x00000013 
+ 00000838  0x0000046f isub  0x00000002 , 0x0000003e 
+ 00000839  0x00000470 branch  0x0000034a , 0x00000005 
+ 00000840  0x00000471 istore  0x00000001 , 0x00000013 
+ 00000841  0x00000472 until  0x0000003e , 0x00000033 
+ 00000842  0x00000474 increase  0x00000001 , 0x00000011 
+ 00000843  0x00000475 increase  0x00000001 , 0x00000013 
+ 00000844  0x00000476 loop  0x00000344 
+ 00000845  0x00000477 copy  0x00000012 , 0x00000002 
+ 00000846  0x00000478 rtn 
+ 00000847  0x0000047c arg  0x00000000 , 0x00000011 
+ 00000848  0x0000047d fetcht  0x00000004 , 0x00004fd5 
+ 00000849  0x0000047e copy  0x00000022 , 0x00000012 
+ 00000850  0x0000047f copy  0x00000012 , 0x0000003f 
+ 00000851  0x00000480 isub  0x00000002 , 0x0000003e 
+ 00000852  0x00000481 ncall  0x00007806 , 0x00000002 
+ 00000853  0x00000483 copy  0x00000012 , 0x0000003f 
+ 00000854  0x00000484 increase  0x00000040 , 0x00000002 
+ 00000855  0x00000485 isub  0x00000002 , 0x0000003e 
+ 00000856  0x00000486 nbranch  0x00000361 , 0x00000002 
+ 00000857  0x00000487 increase  0x00000001 , 0x00000011 
+ 00000858  0x00000488 and  0x00000011 , 0x0000000f , 0x0000003f 
+ 00000859  0x00000489 nbranch  0x00000355 , 0x00000034 
+ 00000860  0x0000048a arg  0x00000000 , 0x00000011 
+ 00000861  0x0000048b call  0x00000366 
+ 00000862  0x0000048d copy  0x00000022 , 0x0000003f 
+ 00000863  0x0000048e store  0x00000004 , 0x00004fd5 
+ 00000864  0x0000048f rtn 
+ 00000865  0x00000491 copy  0x00000011 , 0x0000003f 
+ 00000866  0x00000492 rtn  0x00000034 
+ 00000867  0x00000493 increase  0xffffffc0 , 0x00000002 
+ 00000868  0x00000494 set0  0x0000001c , 0x00000002 
+ 00000869  0x00000495 storet  0x00000004 , 0x00004fd5 
+ 00000870  0x00000497 store  0x00000001 , 0x00004fd4 
+ 00000871  0x00000499 fetch  0x00000001 , 0x00004fd4 
+ 00000872  0x0000049a rtn  0x00000034 
+ 00000873  0x0000049b increase  0xffffffff , 0x0000003f 
+ 00000874  0x0000049c store  0x00000001 , 0x00004fd4 
+ 00000875  0x0000049d call  0x0000036d 
+ 00000876  0x0000049e branch  0x00000367 
+ 00000877  0x000004a1 arg  0x00004fd9 , 0x00000013 
+ 00000878  0x000004a2 arg  0x00000370 , 0x00000012 
+ 00000879  0x000004a3 branch  0x000042e0 
+ 00000880  0x000004a6 fetch  0x00000001 , 0x00004fda 
+ 00000881  0x000004a7 beq  0x00000001 , 0x00000374 
+ 00000882  0x000004a8 beq  0x00000002 , 0x00000397 
+ 00000883  0x000004a9 rtn 
+ 00000884  0x000004ac call  0x00006730 
+ 00000885  0x000004ad nbranch  0x00000383 , 0x00000034 
+ 00000886  0x000004ae jam  0x00000008 , 0x000049e5 
+ 00000887  0x000004af jam  0x00000001 , 0x00004fd9 
+ 00000888  0x000004b0 fetch  0x00000001 , 0x00004fdb 
+ 00000889  0x000004b1 increase  0x00000002 , 0x0000003f 
+ 00000890  0x000004b2 store  0x00000001 , 0x00004fdb 
+ 00000891  0x000004b3 sub  0x0000003f , 0x0000005a , 0x0000003e 
+ 00000892  0x000004b4 call  0x0000038f , 0x00000005 
+ 00000893  0x000004b5 arg  0x00004fc2 , 0x00000013 
+ 00000894  0x000004b6 call  0x000003ba 
+ 00000895  0x000004b7 ifetch  0x00000002 , 0x0000003f 
+ 00000896  0x000004b8 add  0x0000003f , 0x0000000a , 0x0000003f 
+ 00000897  0x000004b9 istore  0x00000002 , 0x00000011 
+ 00000898  0x000004ba branch  0x00006371 
+ 00000899  0x000004bd call  0x000003c2 
+ 00000900  0x000004be fetch  0x00000001 , 0x00004fdb 
+ 00000901  0x000004bf increase  0x00000001 , 0x0000003f 
+ 00000902  0x000004c0 store  0x00000001 , 0x00004fdb 
+ 00000903  0x000004c1 sub  0x0000003f , 0x0000005a , 0x0000003e 
+ 00000904  0x000004c2 call  0x0000038f , 0x00000005 
+ 00000905  0x000004c3 arg  0x00004fc2 , 0x00000013 
+ 00000906  0x000004c4 call  0x000003ba 
+ 00000907  0x000004c5 ifetch  0x00000002 , 0x0000003f 
+ 00000908  0x000004c6 add  0x0000003f , 0x00000012 , 0x0000003f 
+ 00000909  0x000004c7 istore  0x00000002 , 0x00000011 
+ 00000910  0x000004c8 branch  0x00006371 
+ 00000911  0x000004cb jam  0x00000000 , 0x00004fdb 
+ 00000912  0x000004cc arg  0x00004fc4 , 0x00000013 
+ 00000913  0x000004cd call  0x00006371 
+ 00000914  0x000004ce arg  0x00004fc2 , 0x00000013 
+ 00000915  0x000004cf call  0x000003ba 
+ 00000916  0x000004d0 setarg  0x00000650 
+ 00000917  0x000004d1 istore  0x00000002 , 0x00000011 
+ 00000918  0x000004d2 rtn 
+ 00000919  0x000004d5 call  0x00006730 
+ 00000920  0x000004d6 nbranch  0x000003a6 , 0x00000034 
+ 00000921  0x000004d7 jam  0x00000008 , 0x000049e5 
+ 00000922  0x000004d8 jam  0x00000001 , 0x00004fd9 
+ 00000923  0x000004d9 fetch  0x00000001 , 0x00004fdb 
+ 00000924  0x000004da increase  0x00000002 , 0x0000003f 
+ 00000925  0x000004db store  0x00000001 , 0x00004fdb 
+ 00000926  0x000004dc sub  0x0000003f , 0x0000005a , 0x0000003e 
+ 00000927  0x000004dd call  0x000003b2 , 0x00000005 
+ 00000928  0x000004de arg  0x00004fd0 , 0x00000013 
+ 00000929  0x000004df call  0x000003ba 
+ 00000930  0x000004e0 ifetch  0x00000002 , 0x0000003f 
+ 00000931  0x000004e1 increase  0xfffffff6 , 0x0000003f 
+ 00000932  0x000004e2 istore  0x00000002 , 0x00000011 
+ 00000933  0x000004e3 branch  0x00006371 
+ 00000934  0x000004e6 call  0x000003c2 
+ 00000935  0x000004e7 fetch  0x00000001 , 0x00004fdb 
+ 00000936  0x000004e8 increase  0x00000001 , 0x0000003f 
+ 00000937  0x000004e9 store  0x00000001 , 0x00004fdb 
+ 00000938  0x000004ea sub  0x0000003f , 0x0000005a , 0x0000003e 
+ 00000939  0x000004eb call  0x000003b2 , 0x00000005 
+ 00000940  0x000004ec arg  0x00004fd0 , 0x00000013 
+ 00000941  0x000004ed call  0x000003ba 
+ 00000942  0x000004ee ifetch  0x00000002 , 0x0000003f 
+ 00000943  0x000004ef increase  0xffffffee , 0x0000003f 
+ 00000944  0x000004f0 istore  0x00000002 , 0x00000011 
+ 00000945  0x000004f1 branch  0x00006371 
+ 00000946  0x000004f5 jam  0x00000000 , 0x00004fdb 
+ 00000947  0x000004f6 arg  0x00004fd2 , 0x00000013 
+ 00000948  0x000004f7 call  0x00006371 
+ 00000949  0x000004f8 arg  0x00004fd0 , 0x00000013 
+ 00000950  0x000004f9 call  0x000003ba 
+ 00000951  0x000004fa setarg  0x00000a00 
+ 00000952  0x000004fb istore  0x00000002 , 0x00000011 
+ 00000953  0x000004fc rtn 
+ 00000954  0x000004ff arg  0x00004c02 , 0x00000002 
+ 00000955  0x00000500 ifetch  0x00000001 , 0x00000013 
+ 00000956  0x00000501 increase  0xffffffff , 0x0000003f 
+ 00000957  0x00000502 mul32  0x0000003f , 0x0000000d , 0x0000003f 
+ 00000958  0x00000503 iadd  0x00000002 , 0x0000003f 
+ 00000959  0x00000504 increase  0x00000006 , 0x0000003f 
+ 00000960  0x00000505 copy  0x0000003f , 0x00000011 
+ 00000961  0x00000506 rtn 
+ 00000962  0x00000508 jam  0x00000001 , 0x000049e5 
+ 00000963  0x00000509 jam  0x00000003 , 0x00004fd9 
+ 00000964  0x0000050a rtn 
+ 00000965  0x0000050e jam  0x00000001 , 0x00004ff8 
+ 00000966  0x0000050f rtn 
+ 00000967  0x00000512 fetch  0x00000001 , 0x00004ff9 
+ 00000968  0x00000513 increase  0x00000001 , 0x0000003f 
+ 00000969  0x00000514 store  0x00000001 , 0x00004ff9 
+ 00000970  0x00000515 fetcht  0x00000001 , 0x00004ffd 
+ 00000971  0x00000516 isub  0x00000002 , 0x0000003e 
+ 00000972  0x00000517 rtn 
+ 00000973  0x0000051b fetch  0x00000001 , 0x00004ff8 
+ 00000974  0x0000051c rtn  0x00000034 
+ 00000975  0x0000051d call  0x000003c7 
+ 00000976  0x0000051f nrtn  0x00000002 
+ 00000977  0x00000520 jam  0x00000000 , 0x00004ff9 
+ 00000978  0x00000521 jam  0x00000001 , 0x00004407 
+ 00000979  0x00000522 call  0x00006ff3 
+ 00000980  0x00000523 call  0x00006feb 
+ 00000981  0x00000524 call  0x00000446 
+ 00000982  0x00000525 call  0x00000427 
+ 00000983  0x00000526 store  0x00000002 , 0x00004ff6 
+ 00000984  0x00000528 arg  0x00004ff0 , 0x00000011 
+ 00000985  0x00000529 call  0x000003df 
+ 00000986  0x0000052a fetch  0x00000001 , 0x0000440c 
+ 00000987  0x0000052b bbit1  0x00000001 , 0x000003ff 
+ 00000988  0x0000052c bbit0  0x00000000 , 0x00000403 
+ 00000989  0x0000052d jam  0x00000001 , 0x00004ffb 
+ 00000990  0x0000052e branch  0x00000401 
+ 00000991  0x00000531 ifetch  0x00000008 , 0x00000011 
+ 00000992  0x00000532 store  0x00000008 , 0x00000670 
+ 00000993  0x00000534 call  0x00006ff3 
+ 00000994  0x00000535 call  0x00006feb 
+ 00000995  0x00000536 fetch  0x00000002 , 0x00000676 
+ 00000996  0x00000537 fetcht  0x00000002 , 0x00000672 
+ 00000997  0x00000538 isub  0x00000002 , 0x0000003e 
+ 00000998  0x00000539 ncall  0x00006fef , 0x00000002 
+ 00000999  0x0000053b fetcht  0x00000002 , 0x00000674 
+ 00001000  0x0000053c isub  0x00000002 , 0x0000003e 
+ 00001001  0x0000053d ncall  0x00006fe7 , 0x00000002 
+ 00001002  0x0000053f fetch  0x00000002 , 0x00000676 
+ 00001003  0x00000540 fetcht  0x00000002 , 0x00000670 
+ 00001004  0x00000541 isub  0x00000002 , 0x0000003e 
+ 00001005  0x00000542 branch  0x000003fb , 0x00000002 
+ 00001006  0x00000543 fetcht  0x00000002 , 0x00000672 
+ 00001007  0x00000544 isub  0x00000002 , 0x0000003f 
+ 00001008  0x00000545 nbranch  0x000003fd , 0x00000002 
+ 00001009  0x00000546 branch  0x000003fd , 0x00000034 
+ 00001010  0x00000547 mul32  0x0000003f , 0x00000064 , 0x00000011 
+ 00001011  0x00000548 fetch  0x00000002 , 0x00000670 
+ 00001012  0x00000549 fetcht  0x00000002 , 0x00000672 
+ 00001013  0x0000054a isub  0x00000002 , 0x00000002 
+ 00001014  0x0000054b copy  0x00000011 , 0x0000003f 
+ 00001015  0x0000054c idiv  0x00000002 
+ 00001016  0x0000054d call  0x00007d5f 
+ 00001017  0x0000054e store  0x00000001 , 0x00004ffc 
+ 00001018  0x0000054f rtn 
+ 00001019  0x00000552 jam  0x00000064 , 0x00004ffc 
+ 00001020  0x00000553 rtn 
+ 00001021  0x00000555 jam  0x00000000 , 0x00004ffc 
+ 00001022  0x00000556 rtn 
+ 00001023  0x00000559 call  0x00004325 
+ 00001024  0x0000055a branch  0x00004327 
+ 00001025  0x0000055d jam  0x00000001 , 0x00004ffa 
+ 00001026  0x0000055e rtn 
+ 00001027  0x00000561 jam  0x00000000 , 0x00004ffa 
+ 00001028  0x00000562 fetch  0x00000001 , 0x00004ffb 
+ 00001029  0x00000563 rtn  0x00000034 
+ 00001030  0x00000564 call  0x00004325 
+ 00001031  0x00000565 jam  0x00000000 , 0x00004ffb 
+ 00001032  0x00000566 rtn 
+ 00001033  0x0000056a fetch  0x00000008 , 0x000001fd 
+ 00001034  0x0000056b branch  0x00006f79 , 0x00000034 
+ 00001035  0x0000056c store  0x00000008 , 0x000043fd 
+ 00001036  0x0000056d call  0x00006b3a 
+ 00001037  0x0000056e call  0x00006aad 
+ 00001038  0x0000056f arg  0x00000fc0 , 0x0000003f 
+ 00001039  0x00000570 iadd  0x00000012 , 0x00000012 
+ 00001040  0x00000571 arg  0x0000000a , 0x00000039 
+ 00001041  0x00000572 arg  0x000001fd , 0x00000011 
+ 00001042  0x00000573 call  0x00006b74 
+ 00001043  0x00000574 call  0x00006b37 
+ 00001044  0x00000575 fetch  0x00000008 , 0x000001fd 
+ 00001045  0x00000576 rtn  0x00000034 
+ 00001046  0x00000577 store  0x00000008 , 0x0000414e 
+ 00001047  0x00000578 ifetch  0x00000002 , 0x00000006 
+ 00001048  0x00000579 istore  0x00000002 , 0x00000005 
+ 00001049  0x0000057b rtn 
+ 00001050  0x0000057e fetch  0x00000001 , 0x000080cc 
+ 00001051  0x0000057f set1  0x00000001 , 0x0000003f 
+ 00001052  0x00000580 store  0x00000001 , 0x000080cc 
+ 00001053  0x00000581 fetchr  0x00000012 , 0x00000001 , 0x00004419 
+ 00001054  0x00000582 fetch  0x00000001 , 0x00004433 
+ 00001055  0x00000583 store  0x00000001 , 0x00004419 
+ 00001056  0x00000584 arg  0x00000008 , 0x00000039 
+ 00001057  0x00000585 call  0x00006f67 
+ 00001058  0x00000586 storer  0x00000012 , 0x00000001 , 0x00004419 
+ 00001059  0x00000587 fetch  0x00000001 , 0x00008a0a 
+ 00001060  0x00000588 set0  0x00000004 , 0x0000003f 
+ 00001061  0x00000589 store  0x00000001 , 0x00008a0a 
+ 00001062  0x0000058a rtn 
+ 00001063  0x00000591 fetch  0x00000001 , 0x00004407 
+ 00001064  0x00000592 beq  0x00000001 , 0x0000042b 
+ 00001065  0x00000593 beq  0x00000002 , 0x00000432 
+ 00001066  0x00000594 rtn 
+ 00001067  0x00000597 setarg  0x000003e8 
+ 00001068  0x00000598 store  0x00000002 , 0x00004405 
+ 00001069  0x00000599 fetcht  0x00000002 , 0x00004152 
+ 00001070  0x0000059a fetch  0x00000002 , 0x00004154 
+ 00001071  0x0000059b arg  0x00000e10 , 0x00000013 
+ 00001072  0x0000059c call  0x00006fc0 
+ 00001073  0x0000059d branch  0x00000438 
+ 00001074  0x000005a0 setarg  0x000003e8 
+ 00001075  0x000005a1 store  0x00000002 , 0x00004405 
+ 00001076  0x000005a2 fetcht  0x00000002 , 0x0000414e 
+ 00001077  0x000005a3 fetch  0x00000002 , 0x00004150 
+ 00001078  0x000005a4 arg  0x000003e8 , 0x00000013 
+ 00001079  0x000005a5 call  0x00006fc0 
+ 00001080  0x000005a7 fetcht  0x00000002 , 0x00004156 
+ 00001081  0x000005a8 imul32  0x00000002 , 0x0000003f 
+ 00001082  0x000005a9 fetcht  0x00000002 , 0x00004158 
+ 00001083  0x000005aa idiv  0x00000002 
+ 00001084  0x000005ab branch  0x00007d5f 
+ 00001085  0x000005ae call  0x0000041a 
+ 00001086  0x000005af fetch  0x00000001 , 0x00008a09 
+ 00001087  0x000005b0 set0  0x00000007 , 0x0000003f 
+ 00001088  0x000005b1 store  0x00000001 , 0x00008a09 
+ 00001089  0x000005b2 jam  0x00000077 , 0x00008a07 
+ 00001090  0x000005b3 jam  0x000000c1 , 0x00008a08 
+ 00001091  0x000005b4 jam  0x00000061 , 0x00008a0d 
+ 00001092  0x000005b5 jam  0x00000000 , 0x00008a0b 
+ 00001093  0x000005b6 rtn 
+ 00001094  0x000005bb call  0x0000043d 
+ 00001095  0x000005bc call  0x00006f90 
+ 00001096  0x000005bd fetch  0x00000001 , 0x00004409 
+ 00001097  0x000005be store  0x00000001 , 0x000080cd 
+ 00001098  0x000005bf call  0x00006f97 
+ 00001099  0x000005c0 jam  0x00000060 , 0x00008a0d 
+ 00001100  0x000005c1 jam  0x00000000 , 0x000080cd 
+ 00001101  0x000005c5 call  0x0000043d 
+ 00001102  0x000005c6 fetch  0x00000001 , 0x00004409 
+ 00001103  0x000005c7 store  0x00000001 , 0x000080cd 
+ 00001104  0x000005c8 jam  0x00000050 , 0x00008a0b 
+ 00001105  0x000005c9 jam  0x000000c0 , 0x00008a0e 
+ 00001106  0x000005cb arg  0x0000000b , 0x00000038 
+ 00001107  0x000005cc fetchr  0x0000002f , 0x00000002 , 0x0000440a 
+ 00001108  0x000005ce jam  0x00000003 , 0x000080cc 
+ 00001109  0x000005cf call  0x0000045f 
+ 00001110  0x000005d0 fetcht  0x00000002 , 0x00008164 
+ 00001111  0x000005d1 storet  0x00000002 , 0x00004158 
+ 00001112  0x000005d2 call  0x00006f9c 
+ 00001113  0x000005d4 arg  0x0000000b , 0x00000038 
+ 00001114  0x000005d5 storer  0x0000002f , 0x00000002 , 0x0000440a 
+ 00001115  0x000005d7 jam  0x00000060 , 0x00008a0d 
+ 00001116  0x000005d8 jam  0x00000000 , 0x000080cd 
+ 00001117  0x000005d9 jam  0x00000000 , 0x000080cc 
+ 00001118  0x000005da rtn 
+ 00001119  0x000005dd fetch  0x00000001 , 0x00008129 
+ 00001120  0x000005de bbit0  0x00000005 , 0x0000045f 
+ 00001121  0x000005df rtn 
+ 00008192  0x000005ea call  0x00002385 
+ 00008193  0x000005ed bpatch  0x00000000 , 0x00004000 
+ 00008194  0x000005ee clear_stack 
+ 00008195  0x000005f0 call  0x000042a3 
+ 00008196  0x000005f1 call  0x0000223d 
+ 00008197  0x000005f2 call  0x00006cad 
+ 00008198  0x000005f3 call  0x00002363 
+ 00008199  0x000005f4 call  0x00006946 
+ 00008200  0x000005f5 bpatch  0x00000001 , 0x00004000 
+ 00008201  0x000005f6 call  0x0000776f 
+ 00008202  0x000005f7 call  0x00004295 
+ 00008203  0x000005f8 call  0x00007447 
+ 00008204  0x000005fa call  0x0000244f , 0x0000002b 
+ 00008205  0x000005fc bpatch  0x00000002 , 0x00004000 
+ 00008206  0x000005fd call  0x00007552 
+ 00008207  0x000005fe call  0x00007448 
+ 00008208  0x000005ff call  0x00002a45 
+ 00008209  0x00000600 call  0x0000202a 
+ 00008210  0x00000601 call  0x000042ad 
+ 00008211  0x00000602 call  0x00002018 
+ 00008212  0x00000603 call  0x0000310f 
+ 00008213  0x00000604 call  0x0000248c 
+ 00008214  0x00000605 call  0x00004bfb 
+ 00008215  0x00000606 branch  0x0000200d 
+ 00008216  0x00000609 call  0x0000201d 
+ 00008217  0x0000060a rtnmark0  0x00000009 
+ 00008218  0x0000060b set0  0x00000009 , 0x00000000 
+ 00008219  0x0000060c call  0x00002041 
+ 00008220  0x0000060d branch  0x000025bc 
+ 00008221  0x00000610 bpatch  0x00000003 , 0x00004000 
+ 00008222  0x00000611 call  0x00002066 
+ 00008223  0x00000612 nbranch  0x00002025 , 0x00000005 
+ 00008224  0x00000613 call  0x00002036 
+ 00008225  0x00000614 add  0x00000011 , 0x00000001 , 0x00000006 
+ 00008226  0x00000615 ifetch  0x00000001 , 0x00000006 
+ 00008227  0x00000616 bbit1  0x00000000 , 0x00002536 
+ 00008228  0x00000619 rtn 
+ 00008229  0x0000061c jam  0x00000000 , 0x00000006 
+ 00008230  0x0000061d call  0x00002047 
+ 00008231  0x0000061e copy  0x00000039 , 0x0000003e 
+ 00008232  0x0000061f rtn  0x00000005 
+ 00008233  0x00000620 branch  0x0000235a 
+ 00008234  0x00000628 fetch  0x00000001 , 0x00004114 
+ 00008235  0x00000629 rtn  0x00000034 
+ 00008236  0x0000062a beq  0x0000001b , 0x00002033 
+ 00008237  0x0000062b call  0x0000205f 
+ 00008238  0x0000062c rtn  0x00000005 
+ 00008239  0x0000062d call  0x00002062 
+ 00008240  0x0000062e rtn  0x00000005 
+ 00008241  0x00000630 jam  0x00000000 , 0x00004114 
+ 00008242  0x00000631 rtn 
+ 00008243  0x00000634 jam  0x0000001b , 0x000001bc 
+ 00008244  0x00000635 jam  0x00000000 , 0x00004114 
+ 00008245  0x00000636 rtn 
+ 00008246  0x0000063b bpatch  0x00000004 , 0x00004000 
+ 00008247  0x0000063c set1  0x00000009 , 0x00000000 
+ 00008248  0x0000063d deposit  0x00000011 
+ 00008249  0x0000063e store  0x00000002 , 0x0000000a 
+ 00008250  0x0000063f force  0x00000053 , 0x00000039 
+ 00008251  0x00000640 arg  0x00000168 , 0x00000005 
+ 00008252  0x00000641 add  0x00000011 , 0x00000001 , 0x00000006 
+ 00008253  0x00000642 ifetch  0x00000001 , 0x00000006 
+ 00008254  0x00000643 copy  0x00000011 , 0x00000006 
+ 00008255  0x00000644 bbit1  0x00000000 , 0x00007cda 
+ 00008256  0x00000645 rtn 
+ 00008257  0x00000648 bpatch  0x00000005 , 0x00004000 
+ 00008258  0x00000649 fetch  0x00000002 , 0x0000000a 
+ 00008259  0x0000064a iforce  0x00000005 
+ 00008260  0x0000064b force  0x00000053 , 0x00000039 
+ 00008261  0x0000064c arg  0x00000168 , 0x00000006 
+ 00008262  0x0000064d branch  0x00007cda 
+ 00008263  0x00000652 arg  0x00000001 , 0x00000039 
+ 00008264  0x00000653 fetcht  0x00000001 , 0x00000006 
+ 00008265  0x00000655 increase  0x00000001 , 0x00000002 
+ 00008266  0x00000656 compare  0x00000001 , 0x00000002 , 0x000000ff 
+ 00008267  0x00000657 nbranch  0x0000204d , 0x00000001 
+ 00008268  0x00000658 arg  0x00000000 , 0x00000002 
+ 00008269  0x0000065a storet  0x00000001 , 0x00000006 
+ 00008270  0x0000065b mul32  0x00000002 , 0x00000053 , 0x0000003f 
+ 00008271  0x0000065c arg  0x00004040 , 0x00000011 
+ 00008272  0x0000065d iadd  0x00000011 , 0x00000011 
+ 00008273  0x0000065e ifetch  0x00000001 , 0x00000011 
+ 00008274  0x0000065f bbit1  0x00000001 , 0x00002054 
+ 00008275  0x00000660 rtnbit1  0x00000000 
+ 00008276  0x00000662 loop  0x00002049 
+ 00008277  0x00000663 rtn 
+ 00008278  0x00000666 bpatch  0x00000006 , 0x00004000 
+ 00008279  0x00000667 arg  0x00002073 , 0x00000013 
+ 00008280  0x00000668 call  0x00002069 
+ 00008281  0x00000669 nrtn  0x00000005 
+ 00008282  0x0000066a deposit  0x00000011 
+ 00008283  0x0000066b store  0x00000002 , 0x0000000a 
+ 00008284  0x0000066c branch  0x00007db8 
+ 00008285  0x00000672 arg  0x000020ad , 0x00000013 
+ 00008286  0x00000673 branch  0x00002069 
+ 00008287  0x00000679 fetcht  0x00000001 , 0x00004115 
+ 00008288  0x0000067b arg  0x0000207b , 0x00000013 
+ 00008289  0x0000067c branch  0x00002069 
+ 00008290  0x00000680 bpatch  0x00000007 , 0x00004000 
+ 00008291  0x00000681 fetcht  0x00000006 , 0x00004116 
+ 00008292  0x00000683 arg  0x00002075 , 0x00000013 
+ 00008293  0x00000684 branch  0x00002069 
+ 00008294  0x00000687 arg  0x00002081 , 0x00000013 
+ 00008295  0x00000688 branch  0x00002069 
+ 00008296  0x0000068b arg  0x000020c7 , 0x00000013 
+ 00008297  0x0000068d bpatch  0x00000008 , 0x00004001 
+ 00008298  0x0000068e arg  0x00004040 , 0x00000011 
+ 00008299  0x0000068f arg  0x00000001 , 0x00000039 
+ 00008300  0x00000691 ifetch  0x00000001 , 0x00000011 
+ 00008301  0x00000692 copy  0x00000013 , 0x0000003d 
+ 00008302  0x00000694 bpatch  0x00000009 , 0x00004001 
+ 00008303  0x00000695 increase  0x00000053 , 0x00000011 
+ 00008304  0x00000696 loop  0x0000206c 
+ 00008305  0x00000697 force  0x00000001 , 0x0000003e 
+ 00008306  0x00000698 rtn 
+ 00008307  0x0000069b bbit1  0x00000000 , 0x0000206e 
+ 00008308  0x0000069c branch  0x00007db8 
+ 00008309  0x0000069f bbit0  0x00000000 , 0x0000206e 
+ 00008310  0x000006a1 add  0x00000011 , 0x00000010 , 0x00000006 
+ 00008311  0x000006a2 ifetch  0x00000006 , 0x00000006 
+ 00008312  0x000006a3 isub  0x00000002 , 0x0000003e 
+ 00008313  0x000006a4 rtn  0x00000005 
+ 00008314  0x000006a5 branch  0x0000206e 
+ 00008315  0x000006a8 bbit0  0x00000000 , 0x0000206e 
+ 00008316  0x000006a9 add  0x00000011 , 0x00000016 , 0x00000006 
+ 00008317  0x000006aa ifetch  0x00000001 , 0x00000006 
+ 00008318  0x000006ab isub  0x00000002 , 0x0000003e 
+ 00008319  0x000006ac rtn  0x00000005 
+ 00008320  0x000006ad branch  0x0000206e 
+ 00008321  0x000006b0 bbit0  0x00000001 , 0x0000206e 
+ 00008322  0x000006b2 call  0x000020b4 
+ 00008323  0x000006b3 call  0x0000209d 
+ 00008324  0x000006b4 isub  0x00000002 , 0x0000003f 
+ 00008325  0x000006b5 increase  0x00000001 , 0x0000003f 
+ 00008326  0x000006b6 branch  0x00002097 , 0x00000002 
+ 00008327  0x000006b7 copy  0x00000006 , 0x00000012 
+ 00008328  0x000006b8 store  0x00000009 , 0x00000678 
+ 00008329  0x000006b9 bpatch  0x0000000a , 0x00004001 
+ 00008330  0x000006ba fetch  0x00000001 , 0x0000446d 
+ 00008331  0x000006bb nbranch  0x00002090 , 0x00000034 
+ 00008332  0x000006bc fetch  0x00000009 , 0x00000678 
+ 00008333  0x000006bd copy  0x00000012 , 0x00000006 
+ 00008334  0x000006be increase  0x00000005 , 0x0000003f 
+ 00008335  0x000006bf branch  0x00002093 
+ 00008336  0x000006c2 fetch  0x00000009 , 0x00000678 
+ 00008337  0x000006c3 copy  0x00000012 , 0x00000006 
+ 00008338  0x000006c4 increase  0x00000014 , 0x0000003f 
+ 00008339  0x000006c6 nbranch  0x0000206e , 0x00000002 
+ 00008340  0x000006c8 copy  0x00000002 , 0x00000021 
+ 00008341  0x000006c9 call  0x000020c0 
+ 00008342  0x000006ca branch  0x00007db8 
+ 00008343  0x000006ce iforce  0x00000012 
+ 00008344  0x000006cf add  0x00000011 , 0x00000002 , 0x00000006 
+ 00008345  0x000006d0 ifetch  0x00000002 , 0x00000006 
+ 00008346  0x000006d1 branch  0x00002094 , 0x00000034 
+ 00008347  0x000006d2 call  0x000020c0 
+ 00008348  0x000006d3 branch  0x00002082 
+ 00008349  0x000006d6 rshift16  0x0000003f , 0x0000000b 
+ 00008350  0x000006d7 rshift8  0x0000000b , 0x0000000b 
+ 00008351  0x000006d8 branch  0x000020a7 , 0x00000005 
+ 00008352  0x000006d9 compare  0x0000000f , 0x0000000b , 0x0000000f 
+ 00008353  0x000006da nrtn  0x00000001 
+ 00008354  0x000006db rshift16  0x00000002 , 0x0000000b 
+ 00008355  0x000006dc rshift8  0x0000000b , 0x0000000b 
+ 00008356  0x000006dd nrtn  0x00000005 
+ 00008357  0x000006de set1  0x0000001c , 0x00000002 
+ 00008358  0x000006df rtn 
+ 00008359  0x000006e1 rshift16  0x00000002 , 0x0000000b 
+ 00008360  0x000006e2 rshift8  0x0000000b , 0x0000000b 
+ 00008361  0x000006e3 compare  0x0000000f , 0x0000000b , 0x0000000f 
+ 00008362  0x000006e4 nrtn  0x00000001 
+ 00008363  0x000006e5 set1  0x0000001c , 0x0000003f 
+ 00008364  0x000006e6 rtn 
+ 00008365  0x000006e9 bbit0  0x00000000 , 0x0000206e 
+ 00008366  0x000006ea branch  0x00007db8 
+ 00008367  0x000006ee bbit0  0x00000000 , 0x0000206e 
+ 00008368  0x000006ef add  0x00000011 , 0x00000001 , 0x00000006 
+ 00008369  0x000006f0 ifetch  0x00000001 , 0x00000006 
+ 00008370  0x000006f1 bbit1  0x00000000 , 0x0000206e 
+ 00008371  0x000006f2 rtn 
+ 00008372  0x000006f5 add  0x00000011 , 0x00000001 , 0x00000006 
+ 00008373  0x000006f6 ifetcht  0x00000001 , 0x00000006 
+ 00008374  0x000006f7 deposit  0x00000022 
+ 00008375  0x000006f8 isolate1  0x00000001 , 0x00000002 
+ 00008376  0x000006f9 add  0x00000011 , 0x00000004 , 0x00000006 
+ 00008377  0x000006fa ifetcht  0x00000004 , 0x00000006 
+ 00008378  0x000006fb rtn  0x00000001 
+ 00008379  0x000006fc add  0x00000011 , 0x00000008 , 0x00000006 
+ 00008380  0x000006fd ifetch  0x00000006 , 0x00000006 
+ 00008381  0x000006fe call  0x00002109 
+ 00008382  0x000006ff deposit  0x00000028 
+ 00008383  0x00000700 rtn 
+ 00008384  0x00000703 add  0x00000011 , 0x00000002 , 0x00000006 
+ 00008385  0x00000704 add  0x00000011 , 0x00000004 , 0x00000005 
+ 00008386  0x00000705 ifetch  0x00000002 , 0x00000006 
+ 00008387  0x00000706 iadd  0x00000002 , 0x0000000b 
+ 00008388  0x00000707 deposit  0x0000000b 
+ 00008389  0x00000708 istore  0x00000004 , 0x00000005 
+ 00008390  0x00000709 branch  0x00002609 
+ 00008391  0x0000070d bbit0  0x00000001 , 0x0000206e 
+ 00008392  0x0000070e call  0x000020b4 
+ 00008393  0x0000070f iadd  0x0000001b , 0x0000003f 
+ 00008394  0x00000710 iadd  0x0000001b , 0x0000003f 
+ 00008395  0x00000711 iadd  0x00000007 , 0x0000003f 
+ 00008396  0x00000712 isub  0x00000002 , 0x0000003e 
+ 00008397  0x00000713 nbranch  0x0000206e , 0x00000002 
+ 00008398  0x00000714 branch  0x00007db8 
+ 00008399  0x00000719 bpatch  0x0000000b , 0x00004001 
+ 00008400  0x0000071a disable  0x0000003a 
+ 00008401  0x0000071b disable  0x0000001d 
+ 00008402  0x0000071c disable  0x0000001c 
+ 00008403  0x0000071d disable  0x0000000d 
+ 00008404  0x0000071e disable  0x0000000c 
+ 00008405  0x0000071f disable  0x00000009 
+ 00008406  0x00000720 disable  0x0000000e 
+ 00008407  0x00000721 disable  0x00000007 
+ 00008408  0x00000722 branch  0x00002152 , 0x00000021 
+ 00008409  0x00000723 until  0x0000003e , 0x00000027 
+ 00008410  0x00000724 nop  0x00000064 
+ 00008411  0x00000725 branch  0x00002152 
+ 00008412  0x0000072b bpatch  0x0000000c , 0x00004001 
+ 00008413  0x0000072c disable  0x00000010 
+ 00008414  0x0000072d copy  0x00000002 , 0x0000001b 
+ 00008415  0x0000072e call  0x00002068 
+ 00008416  0x0000072f disable  0x00000028 
+ 00008417  0x00000730 nrtn  0x00000005 
+ 00008418  0x00000731 force  0x00000000 , 0x0000001b 
+ 00008419  0x00000732 branch  0x00007dba 
+ 00008420  0x00000736 bpatch  0x0000000d , 0x00004001 
+ 00008421  0x00000737 until  0x0000003e , 0x00000022 
+ 00008422  0x00000738 deposit  0x0000001a 
+ 00008423  0x00000739 iforce  0x00000006 
+ 00008424  0x0000073a rshift16 , 0x0000003f , 0x0000003f 
+ 00008425  0x0000073b isub  0x00000022 , 0x00000039 
+ 00008426  0x0000073c and_into  0x00000003 , 0x00000039 
+ 00008427  0x0000073d nbranch  0x000020ee , 0x00000005 
+ 00008428  0x0000073e force  0x00000000 , 0x0000003f 
+ 00008429  0x0000073f branch  0x000020f2 
+ 00008430  0x00000741 fetcht  0x00000002 , 0x00000044 
+ 00008431  0x00000742 force  0x00000000 , 0x0000003f 
+ 00008432  0x00000744 iadd  0x00000002 , 0x0000003f 
+ 00008433  0x00000745 loop  0x000020f0 
+ 00008434  0x00000747 iadd  0x00000006 , 0x0000003f 
+ 00008435  0x00000748 div  0x0000003f , 0x0000000c 
+ 00008436  0x00000749 call  0x00007d5f 
+ 00008437  0x0000074a store  0x00000002 , 0x0000002e 
+ 00008438  0x0000074b rtn 
+ 00008439  0x0000074e bpatch  0x0000000e , 0x00004001 
+ 00008440  0x0000074f deposit  0x0000001a 
+ 00008441  0x00000750 copy  0x00000019 , 0x00000002 
+ 00008442  0x00000751 isub  0x00000002 , 0x0000003e 
+ 00008443  0x00000752 nsetflag  0x00000002 , 0x0000002c , 0x0000003f 
+ 00008444  0x00000753 isub  0x00000002 , 0x00000002 
+ 00008445  0x00000754 fetch  0x00000002 , 0x00000044 
+ 00008446  0x00000755 isolate0  0x0000000f , 0x00000002 
+ 00008447  0x00000756 branch  0x00002105 , 0x00000001 
+ 00008448  0x00000757 copy  0x00000002 , 0x00000030 
+ 00008449  0x00000758 arg  0x00010000 , 0x00000002 
+ 00008450  0x00000759 fetch  0x00000002 , 0x00000044 
+ 00008451  0x0000075a isub  0x00000002 , 0x0000003f 
+ 00008452  0x0000075b iadd  0x00000030 , 0x00000002 
+ 00008453  0x0000075e storet  0x00000006 , 0x00000170 
+ 00008454  0x0000075f rtn 
+ 00008455  0x00000762 disable  0x00000030 
+ 00008456  0x00000763 fetch  0x00000006 , 0x00000170 
+ 00008457  0x00000765 iadd  0x00000019 , 0x00000030 
+ 00008458  0x00000766 increase  0x0000000a , 0x00000030 
+ 00008459  0x00000767 fetch  0x00000002 , 0x00000044 
+ 00008460  0x00000768 isub  0x00000030 , 0x0000003f 
+ 00008461  0x00000769 isolate0  0x0000000f , 0x0000003f 
+ 00008462  0x0000076a branch  0x00002115 , 0x00000001 
+ 00008463  0x0000076b setarg  0x00010000 
+ 00008464  0x0000076c fetchr  0x00000018 , 0x00000002 , 0x00000044 
+ 00008465  0x0000076d isub  0x00000018 , 0x0000003f 
+ 00008466  0x0000076e iadd  0x00000030 , 0x00000030 
+ 00008467  0x00000770 copy  0x00000030 , 0x0000001a 
+ 00008468  0x00000771 rtn 
+ 00008469  0x00000773 force  0x00000000 , 0x0000003e 
+ 00008470  0x00000774 branch  0x00002113 
+ 00008471  0x0000077c rshift3  0x0000003f , 0x0000003f 
+ 00008472  0x0000077d ifetchr  0x00000011 , 0x00000001 , 0x00000005 
+ 00008473  0x0000077e ixor  0x00000011 , 0x0000003f 
+ 00008474  0x0000077f isolate0  0x00000006 , 0x0000003f 
+ 00008475  0x00000780 branch  0x0000211e 
+ 00008476  0x00000783 isolate0  0x00000000 , 0x0000003e 
+ 00008477  0x00000785 arg  0x00008ac2 , 0x00000005 
+ 00008478  0x00000787 ifetch  0x00000001 , 0x00000005 
+ 00008479  0x00000788 qsetflag  0x00000001 , 0x0000003f 
+ 00008480  0x00000789 istore  0x00000001 , 0x00000005 
+ 00008481  0x0000078a rtn 
+ 00008482  0x0000078d nop  0x0000003c 
+ 00008483  0x00000790 jam  0x00000008 , 0x00008983 
+ 00008484  0x00000791 jam  0x00000009 , 0x00008985 
+ 00008485  0x00000792 jam  0x00000009 , 0x00008981 
+ 00008486  0x00000793 jam  0x00000003 , 0x00008981 
+ 00008487  0x00000794 jam  0x00000006 , 0x00008980 
+ 00008488  0x00000795 nop  0x0000003c 
+ 00008489  0x00000796 arg  0x00000000 , 0x00000011 
+ 00008490  0x00000797 arg  0x00000000 , 0x00000012 
+ 00008491  0x00000798 arg  0x00000010 , 0x00000039 
+ 00008492  0x00000799 arg  0x00000800 , 0x00000006 
+ 00008493  0x0000079b ifetch  0x00000002 , 0x00000006 
+ 00008494  0x0000079c iadd  0x00000011 , 0x00000011 
+ 00008495  0x0000079d ifetch  0x00000002 , 0x00000006 
+ 00008496  0x0000079e iadd  0x00000012 , 0x00000012 
+ 00008497  0x0000079f loop  0x0000212d 
+ 00008498  0x000007a0 rtn 
+ 00008499  0x000007a3 bpatch  0x0000000f , 0x00004001 
+ 00008500  0x000007a4 call  0x00002160 
+ 00008501  0x000007a5 arg  0x00000027 , 0x00000002 
+ 00008502  0x000007a6 call  0x0000216f 
+ 00008503  0x000007a7 call  0x000021a6 
+ 00008504  0x000007a8 jam  0x0000007f , 0x00008a25 
+ 00008505  0x000007a9 jam  0x0000001a , 0x00008a30 
+ 00008506  0x000007aa jam  0x00000078 , 0x00008a31 
+ 00008507  0x000007ab jam  0x000000b2 , 0x00008a8f 
+ 00008508  0x000007ac jam  0x00000000 , 0x00008ac2 
+ 00008509  0x000007ad jam  0x00000000 , 0x00008ac3 
+ 00008510  0x000007ae arg  0x00000006 , 0x00000007 
+ 00008511  0x000007af call  0x00002122 
+ 00008512  0x000007b0 isolate1  0x0000000d , 0x00000011 
+ 00008513  0x000007b1 call  0x0000211d 
+ 00008514  0x000007b2 isolate1  0x0000000d , 0x00000012 
+ 00008515  0x000007b3 call  0x0000211e 
+ 00008516  0x000007b4 arg  0x00000005 , 0x00000007 
+ 00008517  0x000007b6 call  0x0000211c 
+ 00008518  0x000007b7 call  0x0000211e 
+ 00008519  0x000007b8 call  0x00002122 
+ 00008520  0x000007b9 arg  0x00008ac2 , 0x00000005 
+ 00008521  0x000007ba rshift4  0x00000011 , 0x0000003f 
+ 00008522  0x000007bb call  0x00002117 
+ 00008523  0x000007bc rshift4  0x00000012 , 0x0000003f 
+ 00008524  0x000007bd call  0x00002117 
+ 00008525  0x000007be increase  0xffffffff , 0x00000007 
+ 00008526  0x000007bf branch  0x00002145 , 0x00000002 
+ 00008527  0x000007c0 jam  0x00000052 , 0x00008a8f 
+ 00008528  0x000007c1 jam  0x00000002 , 0x00008a30 
+ 00008529  0x000007c2 jam  0x00000000 , 0x00008981 
+ 00008530  0x000007c5 bpatch  0x00000010 , 0x00004002 
+ 00008531  0x000007c6 call  0x00006875 
+ 00008532  0x000007c7 disable  0x00000020 
+ 00008533  0x000007c8 disable  0x00000021 
+ 00008534  0x000007c9 setarg  0x00000200 
+ 00008535  0x000007ca store  0x00000004 , 0x00008a23 
+ 00008536  0x000007cb jam  0x000000fa , 0x00008a01 
+ 00008537  0x000007cc nop  0x0000000c 
+ 00008538  0x000007cd jam  0x00000000 , 0x00008a0f 
+ 00008539  0x000007ce jam  0x0000001a , 0x00008a12 
+ 00008540  0x000007cf jam  0x0000002b , 0x00008a14 
+ 00008541  0x000007d0 force  0x00000008 , 0x00000015 
+ 00008542  0x000007d1 force  0x00000000 , 0x00000015 
+ 00008543  0x000007d3 branch  0x0000230f 
+ 00008544  0x000007d6 bpatch  0x00000011 , 0x00004002 
+ 00008545  0x000007d7 jam  0x00000060 , 0x00008a0f 
+ 00008546  0x000007d8 jam  0x000000aa , 0x00008a10 
+ 00008547  0x000007d9 jam  0x0000007a , 0x00008a12 
+ 00008548  0x000007da jam  0x00000000 , 0x00008a25 
+ 00008549  0x000007db jam  0x00000000 , 0x00008a26 
+ 00008550  0x000007dc nop  0x0000003c 
+ 00008551  0x000007dd jam  0x00000020 , 0x00008a20 
+ 00008552  0x000007de jam  0x000000fd , 0x00008a23 
+ 00008553  0x000007df jam  0x00000012 , 0x00008a24 
+ 00008554  0x000007e0 jam  0x00000010 , 0x00008a24 
+ 00008555  0x000007e1 nop  0x0000003c 
+ 00008556  0x000007e2 jam  0x00000060 , 0x00008a12 
+ 00008557  0x000007e3 jam  0x000000dd , 0x00008a23 
+ 00008558  0x000007e4 rtn 
+ 00008559  0x000007e7 bpatch  0x00000012 , 0x00004002 
+ 00008560  0x000007e8 jam  0x00000001 , 0x00008900 
+ 00008561  0x000007e9 jam  0x0000009d , 0x00008a23 
+ 00008562  0x000007ea jam  0x00000002 , 0x00008a24 
+ 00008563  0x000007eb nop  0x00000014 
+ 00008564  0x000007ec jam  0x00000065 , 0x00008a70 
+ 00008565  0x000007ed jam  0x0000009f , 0x00008a23 
+ 00008566  0x000007ee call  0x0000218f 
+ 00008567  0x000007ef storet  0x00000001 , 0x00000008 
+ 00008568  0x000007f0 increase  0x00000001 , 0x00000002 
+ 00008569  0x000007f5 bpatch  0x00000013 , 0x00004002 
+ 00008570  0x000007f6 rshift4  0x00000002 , 0x0000003f 
+ 00008571  0x000007f7 arg  0x00004135 , 0x00000006 
+ 00008572  0x000007f8 iadd  0x00000006 , 0x00000006 
+ 00008573  0x000007f9 ifetch  0x00000001 , 0x00000006 
+ 00008574  0x000007fa fetchr  0x00000011 , 0x00000001 , 0x00008a71 
+ 00008575  0x000007fb and_into  0x0000000f , 0x00000011 
+ 00008576  0x000007fc ior  0x00000011 , 0x0000003f 
+ 00008577  0x000007fd store  0x00000001 , 0x00008a71 
+ 00008578  0x000007fe call  0x000021d0 
+ 00008579  0x000007ff nop  0x00000090 
+ 00008580  0x00000800 fetch  0x00000001 , 0x00004099 
+ 00008581  0x00000801 beq  0x00000018 , 0x00002187 
+ 00008582  0x00000802 nop  0x00000024 
+ 00008583  0x00000804 jam  0x00000080 , 0x00008a20 
+ 00008584  0x00000805 rtn 
+ 00008585  0x00000809 setarg  0x00008312 
+ 00008586  0x0000080a store  0x00000002 , 0x00008907 
+ 00008587  0x0000080b branch  0x00002197 
+ 00008588  0x0000080e setarg  0x00004189 
+ 00008589  0x0000080f store  0x00000002 , 0x00008907 
+ 00008590  0x00000810 branch  0x000021a3 
+ 00008591  0x00000814 bpatch  0x00000014 , 0x00004002 
+ 00008592  0x00000815 jam  0x00000011 , 0x00008a82 
+ 00008593  0x00000816 jam  0x00000012 , 0x00008a8d 
+ 00008594  0x00000817 jam  0x0000000a , 0x00008a8e 
+ 00008595  0x00000818 fetch  0x00000001 , 0x00004099 
+ 00008596  0x00000819 beq  0x00000010 , 0x00002189 
+ 00008597  0x0000081a setarg  0x00005762 
+ 00008598  0x0000081b store  0x00000002 , 0x00008907 
+ 00008599  0x0000081d jam  0x00000003 , 0x00008901 
+ 00008600  0x0000081e jam  0x00000084 , 0x00008920 
+ 00008601  0x0000081f rtnmark1  0x0000002d 
+ 00008602  0x00000820 jam  0x00000001 , 0x00008901 
+ 00008603  0x00000821 jam  0x00000080 , 0x00008920 
+ 00008604  0x00000822 jam  0x00000007 , 0x00008a82 
+ 00008605  0x00000823 jam  0x00000044 , 0x00008a8d 
+ 00008606  0x00000824 jam  0x0000000a , 0x00008a8e 
+ 00008607  0x00000825 fetch  0x00000001 , 0x00004099 
+ 00008608  0x00000826 beq  0x00000010 , 0x0000218c 
+ 00008609  0x00000827 setarg  0x00002bb1 
+ 00008610  0x00000828 store  0x00000002 , 0x00008907 
+ 00008611  0x0000082a rtnmark0  0x0000002f 
+ 00008612  0x0000082b jam  0x00000005 , 0x00008901 
+ 00008613  0x0000082c rtn 
+ 00008614  0x0000082f bpatch  0x00000015 , 0x00004002 
+ 00008615  0x00000830 call  0x0000686f 
+ 00008616  0x00000831 call  0x000021ba 
+ 00008617  0x00000832 force  0x00000008 , 0x00000015 
+ 00008618  0x00000833 force  0x00000000 , 0x00000015 
+ 00008619  0x00000835 setarg  0x000aaada 
+ 00008620  0x00000836 store  0x00000003 , 0x00008a0f 
+ 00008621  0x00000837 jam  0x00000040 , 0x00008a25 
+ 00008622  0x00000838 jam  0x00000010 , 0x00008a26 
+ 00008623  0x00000839 nop  0x0000003c 
+ 00008624  0x0000083a jam  0x000000fb , 0x00008a01 
+ 00008625  0x0000083b jam  0x000000ff , 0x00008a25 
+ 00008626  0x0000083c jam  0x00000030 , 0x00008a26 
+ 00008627  0x0000083d jam  0x0000005e , 0x00008a16 
+ 00008628  0x0000083e nop  0x00000014 
+ 00008629  0x0000083f jam  0x00000000 , 0x00008a10 
+ 00008630  0x00000840 jam  0x00000008 , 0x00008a11 
+ 00008631  0x00000841 nop  0x00000078 
+ 00008632  0x00000842 jam  0x0000000d , 0x00008900 
+ 00008633  0x00000843 rtn 
+ 00008634  0x00000847 fetch  0x00000001 , 0x00004143 
+ 00008635  0x00000848 beq  0x000000ff , 0x000021c1 
+ 00008636  0x00000849 arg  0x00004144 , 0x00000006 
+ 00008637  0x0000084a iadd  0x00000006 , 0x00000006 
+ 00008638  0x0000084b ifetch  0x00000001 , 0x00000006 
+ 00008639  0x0000084c store  0x00000001 , 0x00008961 
+ 00008640  0x0000084d jam  0x00000027 , 0x00008960 
+ 00008641  0x00000850 fetcht  0x00000001 , 0x00004147 
+ 00008642  0x00000851 fetch  0x00000001 , 0x00008960 
+ 00008643  0x00000852 ior  0x00000002 , 0x0000003f 
+ 00008644  0x00000853 store  0x00000001 , 0x00008960 
+ 00008645  0x00000854 rtn 
+ 00008646  0x00000858 jam  0x00000003 , 0x00008900 
+ 00008647  0x00000859 jam  0x00000002 , 0x00008a24 
+ 00008648  0x0000085a nop  0x00000014 
+ 00008649  0x0000085b jam  0x00000065 , 0x00008a70 
+ 00008650  0x0000085c jam  0x000000df , 0x00008a23 
+ 00008651  0x0000085d call  0x0000218f 
+ 00008652  0x0000085e call  0x000021e8 
+ 00008653  0x0000085f storet  0x00000001 , 0x00000008 
+ 00008654  0x00000860 increase  0x00000002 , 0x00000002 
+ 00008655  0x00000861 branch  0x00002179 
+ 00008656  0x00000866 bpatch  0x00000016 , 0x00004002 
+ 00008657  0x00000867 setarg  0x00000960 
+ 00008658  0x00000868 iadd  0x00000002 , 0x0000003f 
+ 00008659  0x00000869 copy  0x0000003f , 0x00000011 
+ 00008660  0x0000086a fetcht  0x00000001 , 0x00004099 
+ 00008661  0x0000086b rshift  0x00000002 , 0x00000002 
+ 00008662  0x0000086c idiv  0x00000002 
+ 00008663  0x0000086e call  0x00007d62 
+ 00008664  0x0000086f quotient  0x0000003f 
+ 00008665  0x00000870 store  0x00000002 , 0x00008909 
+ 00008666  0x00000871 remainder  0x0000003f 
+ 00008667  0x00000872 lshift16  0x0000003f , 0x0000003f 
+ 00008668  0x00000873 lshift8  0x0000003f , 0x0000003f 
+ 00008669  0x00000874 idiv  0x00000002 
+ 00008670  0x00000875 call  0x00007d62 
+ 00008671  0x00000876 quotient  0x0000003f 
+ 00008672  0x00000877 store  0x00000003 , 0x0000890b 
+ 00008673  0x0000087c storer  0x00000011 , 0x00000001 , 0x00008a22 
+ 00008674  0x0000087d rshift8  0x00000011 , 0x00000011 
+ 00008675  0x0000087e storer  0x00000011 , 0x00000001 , 0x00008a21 
+ 00008676  0x0000087f jam  0x000000a0 , 0x00008a20 
+ 00008677  0x00000880 jam  0x000000e0 , 0x00008a20 
+ 00008678  0x00000881 jam  0x000000a0 , 0x00008a20 
+ 00008679  0x00000882 rtn 
+ 00008680  0x00000885 add  0x00000002 , 0x00000002 , 0x0000003f 
+ 00008681  0x00000886 rshift3  0x0000003f , 0x0000003f 
+ 00008682  0x00000887 and_into  0xfffffffe , 0x0000003f 
+ 00008683  0x00000888 arg  0x0000411d , 0x00000006 
+ 00008684  0x00000889 bmark0  0x0000002d , 0x000021ee 
+ 00008685  0x0000088a increase  0x0000000c , 0x00000006 
+ 00008686  0x0000088c iadd  0x00000006 , 0x00000006 
+ 00008687  0x0000088d ifetchr  0x00000011 , 0x00000002 , 0x00000006 
+ 00008688  0x0000088e ifetch  0x00000002 , 0x00000006 
+ 00008689  0x0000088f isub  0x00000011 , 0x0000003f 
+ 00008690  0x00000890 add  0x00000002 , 0x00000002 , 0x00000006 
+ 00008691  0x00000891 and_into  0x0000000f , 0x00000006 
+ 00008692  0x00000892 imul32  0x00000006 , 0x0000003f 
+ 00008693  0x00000893 rshift4  0x0000003f , 0x0000003f 
+ 00008694  0x00000894 iadd  0x00000011 , 0x0000003f 
+ 00008695  0x00000895 store  0x00000002 , 0x00008905 
+ 00008696  0x00000896 rtn 
+ 00008697  0x0000089b bpatch  0x00000017 , 0x00004002 
+ 00008698  0x0000089c call  0x000021c6 
+ 00008699  0x0000089d nop  0x00000258 
+ 00008700  0x000008a0 bpatch  0x00000018 , 0x00004003 
+ 00008701  0x000008a1 setarg  0x000aaa7e 
+ 00008702  0x000008a2 store  0x00000003 , 0x00008a0f 
+ 00008703  0x000008a3 nop  0x0000003c 
+ 00008704  0x000008a4 jam  0x00000000 , 0x00008a25 
+ 00008705  0x000008a5 jam  0x0000000d , 0x00008a26 
+ 00008706  0x000008a6 jam  0x00000056 , 0x00008a16 
+ 00008707  0x000008a7 nop  0x0000001e 
+ 00008708  0x000008a8 jam  0x0000001b , 0x00008a15 
+ 00008709  0x000008a9 call  0x0000220c 
+ 00008710  0x000008aa nop  0x00000014 
+ 00008711  0x000008ab jam  0x0000000f , 0x00008a26 
+ 00008712  0x000008ac nop  0x00000014 
+ 00008713  0x000008ad jam  0x000000a8 , 0x00008a10 
+ 00008714  0x000008ae jam  0x00000000 , 0x00008a11 
+ 00008715  0x000008af rtn 
+ 00008716  0x000008b2 bpatch  0x00000019 , 0x00004003 
+ 00008717  0x000008b3 fetch  0x00000001 , 0x00004141 
+ 00008718  0x000008b4 beq  0x00000000 , 0x00002217 
+ 00008719  0x000008b5 beq  0x00000003 , 0x0000221c 
+ 00008720  0x000008b6 beq  0x00000005 , 0x00002221 
+ 00008721  0x000008b7 beq  0x00000007 , 0x00002225 
+ 00008722  0x000008b8 beq  0x0000000a , 0x00002229 
+ 00008723  0x000008b9 beq  0x00000083 , 0x0000222d 
+ 00008724  0x000008ba beq  0x00000085 , 0x00002231 
+ 00008725  0x000008bb beq  0x0000008a , 0x00002235 
+ 00008726  0x000008bc beq  0x00000094 , 0x00002239 
+ 00008727  0x000008be jam  0x00000017 , 0x00008a14 
+ 00008728  0x000008bf setarg  0x00251a3f 
+ 00008729  0x000008c0 store  0x00000003 , 0x00008a60 
+ 00008730  0x000008c2 jam  0x00000028 , 0x00008a63 
+ 00008731  0x000008c3 rtn 
+ 00008732  0x000008c6 jam  0x00000025 , 0x00008a14 
+ 00008733  0x000008c7 setarg  0x00a91c2d 
+ 00008734  0x000008c8 store  0x00000003 , 0x00008a60 
+ 00008735  0x000008ca jam  0x0000002f , 0x00008a63 
+ 00008736  0x000008cb rtn 
+ 00008737  0x000008ce jam  0x00000025 , 0x00008a14 
+ 00008738  0x000008cf setarg  0x00a91c3f 
+ 00008739  0x000008d0 store  0x00000003 , 0x00008a60 
+ 00008740  0x000008d1 branch  0x0000221f 
+ 00008741  0x000008d4 jam  0x00000025 , 0x00008a14 
+ 00008742  0x000008d5 setarg  0x00a9383f 
+ 00008743  0x000008d6 store  0x00000003 , 0x00008a60 
+ 00008744  0x000008d7 branch  0x0000221f 
+ 00008745  0x000008da jam  0x00000025 , 0x00008a14 
+ 00008746  0x000008db setarg  0x00a93f3f 
+ 00008747  0x000008dc store  0x00000003 , 0x00008a60 
+ 00008748  0x000008dd branch  0x0000221f 
+ 00008749  0x000008e1 jam  0x00000017 , 0x00008a14 
+ 00008750  0x000008e2 setarg  0x00251827 
+ 00008751  0x000008e3 store  0x00000003 , 0x00008a60 
+ 00008752  0x000008e4 branch  0x0000221a 
+ 00008753  0x000008e7 jam  0x00000017 , 0x00008a14 
+ 00008754  0x000008e8 setarg  0x0025181c 
+ 00008755  0x000008e9 store  0x00000003 , 0x00008a60 
+ 00008756  0x000008ea branch  0x0000221a 
+ 00008757  0x000008ed jam  0x00000017 , 0x00008a14 
+ 00008758  0x000008ee setarg  0x0025180b 
+ 00008759  0x000008ef store  0x00000003 , 0x00008a60 
+ 00008760  0x000008f0 branch  0x0000221a 
+ 00008761  0x000008f3 jam  0x00000017 , 0x00008a14 
+ 00008762  0x000008f4 setarg  0x00251000 
+ 00008763  0x000008f5 store  0x00000003 , 0x00008a60 
+ 00008764  0x000008f6 branch  0x0000221a 
+ 00008765  0x000008fb jam  0x00000006 , 0x00008042 
+ 00008766  0x000008fd fetch  0x00000002 , 0x0000409c 
+ 00008767  0x000008fe bbit0  0x0000000e , 0x0000223e 
+ 00008768  0x000008ff iforce  0x00000006 
+ 00008769  0x00000900 arg  0x00008a00 , 0x00000002 
+ 00008770  0x00000902 ifetch  0x00000001 , 0x00000006 
+ 00008771  0x00000903 beq  0x000000ff , 0x00002248 
+ 00008772  0x00000904 ior  0x00000002 , 0x00000005 
+ 00008773  0x00000905 ifetch  0x00000001 , 0x00000006 
+ 00008774  0x00000906 istore  0x00000001 , 0x00000005 
+ 00008775  0x00000907 branch  0x00002242 
+ 00008776  0x0000090a bpatch  0x0000001a , 0x00004003 
+ 00008777  0x0000090b fetch  0x00000001 , 0x00004436 
+ 00008778  0x0000090c call  0x000070d7 , 0x00000034 
+ 00008779  0x0000090e until  0x0000003e , 0x00000033 
+ 00008780  0x0000090f jam  0x0000005f , 0x0000813b 
+ 00008781  0x00000910 fetch  0x00000001 , 0x00004099 
+ 00008782  0x00000911 beq  0x00000010 , 0x00002266 
+ 00008783  0x00000912 fetch  0x00000001 , 0x00004438 
+ 00008784  0x00000913 or_into  0x00000004 , 0x0000003f 
+ 00008785  0x00000914 store  0x00000001 , 0x00008a02 
+ 00008786  0x00000915 jam  0x00000001 , 0x0000890f 
+ 00008787  0x00000916 jam  0x00000024 , 0x00008a80 
+ 00008788  0x00000917 jam  0x00000062 , 0x00008a81 
+ 00008789  0x00000918 setarg  0x00e61212 
+ 00008790  0x00000919 store  0x00000003 , 0x00008a73 
+ 00008791  0x0000091c jam  0x00000060 , 0x00008a86 
+ 00008792  0x0000091d jam  0x0000003b , 0x00008a8b 
+ 00008793  0x0000091f call  0x00002286 
+ 00008794  0x00000920 jam  0x00000000 , 0x00008043 
+ 00008795  0x00000921 jam  0x00000005 , 0x00008042 
+ 00008796  0x00000922 setarg  0x00557474 
+ 00008797  0x00000923 store  0x00000003 , 0x00008968 
+ 00008798  0x00000924 jam  0x0000006e , 0x00008960 
+ 00008799  0x00000925 call  0x00002133 
+ 00008800  0x00000926 call  0x00002271 
+ 00008801  0x00000927 fetch  0x00000001 , 0x0000411c 
+ 00008802  0x00000928 store  0x00000001 , 0x0000813a 
+ 00008803  0x0000092a jam  0x0000000c , 0x00004148 
+ 00008804  0x0000092b call  0x00006f4e 
+ 00008805  0x0000092c branch  0x000022b4 
+ 00008806  0x0000092f fetch  0x00000001 , 0x00004438 
+ 00008807  0x00000930 or_into  0x00000006 , 0x0000003f 
+ 00008808  0x00000931 store  0x00000001 , 0x00008a02 
+ 00008809  0x00000932 jam  0x00000000 , 0x0000890f 
+ 00008810  0x00000933 jam  0x00000023 , 0x00008a80 
+ 00008811  0x00000934 jam  0x000000b0 , 0x00008a81 
+ 00008812  0x00000935 setarg  0x00e40909 
+ 00008813  0x00000936 store  0x00000003 , 0x00008a73 
+ 00008814  0x00000937 jam  0x0000002a , 0x00008a76 
+ 00008815  0x00000938 jam  0x00000004 , 0x00008902 
+ 00008816  0x00000939 branch  0x00002257 
+ 00008817  0x0000093c bpatch  0x0000001b , 0x00004003 
+ 00008818  0x0000093d call  0x00002160 
+ 00008819  0x0000093e jam  0x00000003 , 0x00008900 
+ 00008820  0x0000093f jam  0x00000001 , 0x00008a70 
+ 00008821  0x00000940 arg  0x0000411d , 0x00000012 
+ 00008822  0x00000941 arg  0x00004135 , 0x00000018 
+ 00008823  0x00000942 call  0x0000227c 
+ 00008824  0x00000943 set1  0x0000002d , 0x00000000 
+ 00008825  0x00000944 call  0x0000227c 
+ 00008826  0x00000945 jam  0x00000061 , 0x00008a70 
+ 00008827  0x00000946 branch  0x00002152 
+ 00008828  0x00000949 call  0x0000218f 
+ 00008829  0x0000094a arg  0x00000006 , 0x00000039 
+ 00008830  0x0000094b arg  0x00000000 , 0x00000013 
+ 00008831  0x0000094d copy  0x00000013 , 0x00000002 
+ 00008832  0x0000094e call  0x00002294 
+ 00008833  0x0000094f increase  0x00000002 , 0x00000012 
+ 00008834  0x00000950 increase  0x00000001 , 0x00000018 
+ 00008835  0x00000951 increase  0x00000010 , 0x00000013 
+ 00008836  0x00000952 loop  0x0000227f 
+ 00008837  0x00000953 rtn 
+ 00008838  0x00000956 fetch  0x00000001 , 0x00004099 
+ 00008839  0x00000957 beq  0x00000018 , 0x0000228c 
+ 00008840  0x00000958 fetch  0x00000001 , 0x00004438 
+ 00008841  0x00000959 or_into  0x00000006 , 0x0000003f 
+ 00008842  0x0000095a store  0x00000001 , 0x00008a02 
+ 00008843  0x0000095b jam  0x000000e0 , 0x00008a05 
+ 00008844  0x0000095d jam  0x000000c8 , 0x00008a00 
+ 00008845  0x0000095e nop  0x0000003c 
+ 00008846  0x0000095f jam  0x000000a0 , 0x00008a01 
+ 00008847  0x00000960 jam  0x000000cf , 0x00008a00 
+ 00008848  0x00000961 jam  0x000000fa , 0x00008a01 
+ 00008849  0x00000962 nop  0x00000014 
+ 00008850  0x00000963 jam  0x0000008f , 0x00008a00 
+ 00008851  0x00000964 rtn 
+ 00008852  0x00000967 bpatch  0x0000001c , 0x00004003 
+ 00008853  0x00000968 jam  0x00000030 , 0x00008a20 
+ 00008854  0x00000969 jam  0x000000dd , 0x00008a23 
+ 00008855  0x0000096a call  0x000021d0 
+ 00008856  0x0000096c fetch  0x00000001 , 0x00008a7c 
+ 00008857  0x0000096d bbit0  0x00000000 , 0x00002298 
+ 00008858  0x0000096e jam  0x00000030 , 0x00008a7b 
+ 00008859  0x0000096f call  0x000022ae 
+ 00008860  0x00000970 iforce  0x00000011 
+ 00008861  0x00000971 jam  0x00000040 , 0x00008a7b 
+ 00008862  0x00000972 call  0x000022ae 
+ 00008863  0x00000973 isub  0x00000011 , 0x0000003f 
+ 00008864  0x00000974 mul32  0x0000003f , 0x0000007d , 0x00000002 
+ 00008865  0x00000975 setarg  0x00b00000 
+ 00008866  0x00000976 idiv  0x00000002 
+ 00008867  0x00000977 call  0x00007d62 
+ 00008868  0x00000978 quotient  0x0000003f 
+ 00008869  0x00000979 bmark0  0x0000002d , 0x000022a7 
+ 00008870  0x0000097a lshift  0x0000003f , 0x0000003f 
+ 00008871  0x0000097c istore  0x00000002 , 0x00000012 
+ 00008872  0x0000097d jam  0x00000020 , 0x00008a7b 
+ 00008873  0x0000097e fetch  0x00000001 , 0x00008a7e 
+ 00008874  0x0000097f lshift4  0x0000003f , 0x0000003f 
+ 00008875  0x00000980 istore  0x00000001 , 0x00000018 
+ 00008876  0x00000981 jam  0x00000000 , 0x00008a7b 
+ 00008877  0x00000982 rtn 
+ 00008878  0x00000985 fetch  0x00000002 , 0x00008a7d 
+ 00008879  0x00000986 byteswap  0x0000003f , 0x0000003f 
+ 00008880  0x00000987 fetcht  0x00000001 , 0x00008a7c 
+ 00008881  0x00000988 lshift16  0x00000002 , 0x00000002 
+ 00008882  0x00000989 ior  0x00000002 , 0x0000003f 
+ 00008883  0x0000098a rtn 
+ 00008884  0x0000098e bpatch  0x0000001d , 0x00004003 
+ 00008885  0x0000098f fetch  0x00000001 , 0x00008a0d 
+ 00008886  0x00000990 set1  0x00000000 , 0x0000003f 
+ 00008887  0x00000991 store  0x00000001 , 0x00008a0d 
+ 00008888  0x00000992 jam  0x000000f0 , 0x00008a0e 
+ 00008889  0x00000993 fetch  0x00000001 , 0x00008a05 
+ 00008890  0x00000994 or_into  0x00000016 , 0x0000003f 
+ 00008891  0x00000995 store  0x00000001 , 0x00008a05 
+ 00008892  0x00000997 fetch  0x00000001 , 0x00004411 
+ 00008893  0x00000998 store  0x00000001 , 0x00000678 
+ 00008894  0x00000999 fetch  0x00000001 , 0x00004408 
+ 00008895  0x0000099a store  0x00000001 , 0x00000679 
+ 00008896  0x0000099b jam  0x00000000 , 0x00004411 
+ 00008897  0x0000099c fetch  0x00000001 , 0x0000443e 
+ 00008898  0x0000099d store  0x00000001 , 0x00004408 
+ 00008899  0x0000099e fetcht  0x00000001 , 0x0000443d 
+ 00008900  0x0000099f call  0x00006f0f 
+ 00008901  0x000009a1 arg  0x00000000 , 0x00000011 
+ 00008902  0x000009a2 arg  0x00000008 , 0x00000039 
+ 00008903  0x000009a4 call  0x00006f82 
+ 00008904  0x000009a5 fetch  0x00000002 , 0x0000440a 
+ 00008905  0x000009a6 iadd  0x00000011 , 0x00000011 
+ 00008906  0x000009a7 loop  0x000022c7 
+ 00008907  0x000009a8 rshift3  0x00000011 , 0x00000011 
+ 00008908  0x000009a9 store  0x00000002 , 0x0000440a 
+ 00008909  0x000009ab fetch  0x00000001 , 0x00000678 
+ 00008910  0x000009ac store  0x00000001 , 0x00004411 
+ 00008911  0x000009ad fetch  0x00000001 , 0x00000679 
+ 00008912  0x000009ae store  0x00000001 , 0x00004408 
+ 00008913  0x000009b0 fetch  0x00000001 , 0x00008a05 
+ 00008914  0x000009b1 and_into  0x000000e0 , 0x0000003f 
+ 00008915  0x000009b2 store  0x00000001 , 0x00008a05 
+ 00008916  0x000009b3 jam  0x00000000 , 0x00008a0e 
+ 00008917  0x000009b4 fetch  0x00000001 , 0x00008a0d 
+ 00008918  0x000009b5 set0  0x00000000 , 0x0000003f 
+ 00008919  0x000009b6 store  0x00000001 , 0x00008a0d 
+ 00008920  0x000009b8 call  0x00006fb0 
+ 00008921  0x000009b9 fetcht  0x00000002 , 0x0000443b 
+ 00008922  0x000009ba isub  0x00000002 , 0x0000003e 
+ 00008923  0x000009bb branch  0x000022e4 , 0x00000002 
+ 00008924  0x000009bc fetcht  0x00000002 , 0x00004439 
+ 00008925  0x000009bd isub  0x00000002 , 0x0000003e 
+ 00008926  0x000009be rtn  0x00000002 
+ 00008927  0x000009c0 fetch  0x00000001 , 0x00004438 
+ 00008928  0x000009c1 rtneq  0x00000000 
+ 00008929  0x000009c2 increase  0xffffffe0 , 0x0000003f 
+ 00008930  0x000009c3 store  0x00000001 , 0x00004438 
+ 00008931  0x000009c4 rtn 
+ 00008932  0x000009c7 fetch  0x00000001 , 0x00004438 
+ 00008933  0x000009c8 rtneq  0x000000e0 
+ 00008934  0x000009c9 increase  0x00000020 , 0x0000003f 
+ 00008935  0x000009ca store  0x00000001 , 0x00004438 
+ 00008936  0x000009cb rtn 
+ 00008937  0x000009cf bpatch  0x0000001e , 0x00004003 
+ 00008938  0x000009d1 fetch  0x00000001 , 0x000089a2 
+ 00008939  0x000009d2 isolate1  0x00000006 , 0x0000003f 
+ 00008940  0x000009d3 setflag  0x00000001 , 0x00000007 , 0x0000003f 
+ 00008941  0x000009d4 store  0x00000001 , 0x00004142 
+ 00008942  0x000009d6 fetch  0x00000001 , 0x000089a3 
+ 00008943  0x000009d7 and  0x0000003f , 0x0000000f , 0x00000002 
+ 00008944  0x000009d8 lshift  0x00000002 , 0x00000002 
+ 00008945  0x000009d9 rshift4  0x0000003f , 0x0000003f 
+ 00008946  0x000009da iadd  0x00000002 , 0x00000002 
+ 00008947  0x000009db mul32  0x00000002 , 0x00000003 , 0x00000011 
+ 00008948  0x000009dd fetch  0x00000001 , 0x00004142 
+ 00008949  0x000009de call  0x000022ff 
+ 00008950  0x000009df sub  0x0000003f , 0x00000000 , 0x0000003f 
+ 00008951  0x000009e0 iadd  0x00000011 , 0x0000003f 
+ 00008952  0x000009e1 increase  0xfffffff7 , 0x0000003f 
+ 00008953  0x000009e2 and  0x0000003f , 0x000001ff , 0x0000003f 
+ 00008954  0x000009e3 isolate1  0x00000008 , 0x0000003f 
+ 00008955  0x000009e4 nbranch  0x000022fd , 0x00000001 
+ 00008956  0x000009e5 setarg  0x00000000 
+ 00008957  0x000009e7 store  0x00000001 , 0x00000035 
+ 00008958  0x000009e8 branch  0x00002304 
+ 00008959  0x000009eb isolate1  0x00000007 , 0x0000003f 
+ 00008960  0x000009ec nrtn  0x00000001 
+ 00008961  0x000009ed arg  0x0000ff00 , 0x00000002 
+ 00008962  0x000009ee ior  0x00000002 , 0x0000003f 
+ 00008963  0x000009ef rtn 
+ 00008964  0x000009f2 fetch  0x00000001 , 0x00000035 
+ 00008965  0x000009f3 call  0x00002308 
+ 00008966  0x000009f4 store  0x00000001 , 0x00000009 
+ 00008967  0x000009f5 rtn 
+ 00008968  0x000009f8 and_into  0x000000ff , 0x0000003f 
+ 00008969  0x000009f9 div  0x0000003f , 0x0000000a 
+ 00008970  0x000009fa call  0x00007d5f 
+ 00008971  0x000009fb lshift4  0x0000003f , 0x0000003f 
+ 00008972  0x000009fc remainder  0x00000002 
+ 00008973  0x000009fd ior  0x00000002 , 0x0000003f 
+ 00008974  0x000009fe rtn 
+ 00008975  0x00000a01 bpatch  0x0000001f , 0x00004003 
+ 00008976  0x00000a02 fetch  0x00000001 , 0x00004143 
+ 00008977  0x00000a03 rtneq  0x000000ff 
+ 00008978  0x00000a04 nbranch  0x00002336 , 0x00000018 
+ 00008979  0x00000a05 fetch  0x00000001 , 0x00004142 
+ 00008980  0x00000a06 sub  0x0000003f , 0x000000f0 , 0x0000003e 
+ 00008981  0x00000a07 nbranch  0x0000233a , 0x00000002 
+ 00008982  0x00000a08 sub  0x0000003f , 0x0000007f , 0x0000003e 
+ 00008983  0x00000a09 branch  0x0000233a , 0x00000002 
+ 00008984  0x00000a0b fetchr  0x00000011 , 0x00000001 , 0x00008961 
+ 00008985  0x00000a0c fetch  0x00000001 , 0x00004143 
+ 00008986  0x00000a0d rtneq  0x00000000 
+ 00008987  0x00000a0e arg  0x00004144 , 0x00000006 
+ 00008988  0x00000a0f iadd  0x00000006 , 0x00000006 
+ 00008989  0x00000a10 ifetch  0x00000001 , 0x00000006 
+ 00008990  0x00000a11 isub  0x00000011 , 0x0000003e 
+ 00008991  0x00000a12 nrtn  0x00000005 
+ 00008992  0x00000a13 increase  0xfffffffe , 0x00000006 
+ 00008993  0x00000a14 ifetcht  0x00000001 , 0x00000006 
+ 00008994  0x00000a15 rshift4  0x00000002 , 0x0000003f 
+ 00008995  0x00000a16 rshift4  0x00000011 , 0x00000012 
+ 00008996  0x00000a17 isub  0x00000012 , 0x00000012 
+ 00008997  0x00000a18 and  0x00000002 , 0x0000000f , 0x0000003f 
+ 00008998  0x00000a19 and  0x00000011 , 0x0000000f , 0x00000011 
+ 00008999  0x00000a1a isub  0x00000011 , 0x00000011 
+ 00009000  0x00000a1b lshift  0x00000011 , 0x0000003f 
+ 00009001  0x00000a1c iadd  0x00000012 , 0x00000012 
+ 00009002  0x00000a1d mul32  0x00000012 , 0x00000003 , 0x00000012 
+ 00009003  0x00000a1e fetcht  0x00000001 , 0x00004142 
+ 00009004  0x00000a1f and  0x00000002 , 0x00000080 , 0x0000003f 
+ 00009005  0x00000a20 rtn  0x00000034 
+ 00009006  0x00000a22 setarg  0x00000100 
+ 00009007  0x00000a23 isub  0x00000002 , 0x00000002 
+ 00009008  0x00000a24 copy  0x00000012 , 0x0000003f 
+ 00009009  0x00000a25 isub  0x00000002 , 0x0000003f 
+ 00009010  0x00000a26 rtn  0x00000002 
+ 00009011  0x00000a27 and  0x0000003f , 0x000000ff , 0x0000003f 
+ 00009012  0x00000a28 rtneq  0x000000ff 
+ 00009013  0x00000a29 rtneq  0x000000fe 
+ 00009014  0x00000a2c fetch  0x00000001 , 0x00004143 
+ 00009015  0x00000a2d beq  0x00000001 , 0x0000233f 
+ 00009016  0x00000a2e beq  0x00000002 , 0x00002341 
+ 00009017  0x00000a30 branch  0x0000233f 
+ 00009018  0x00000a33 fetch  0x00000001 , 0x00004143 
+ 00009019  0x00000a34 beq  0x00000000 , 0x00002341 
+ 00009020  0x00000a35 beq  0x00000001 , 0x0000233d 
+ 00009021  0x00000a38 jam  0x00000002 , 0x00004143 
+ 00009022  0x00000a39 rtn 
+ 00009023  0x00000a3c jam  0x00000000 , 0x00004143 
+ 00009024  0x00000a3d rtn 
+ 00009025  0x00000a40 jam  0x00000001 , 0x00004143 
+ 00009026  0x00000a41 rtn 
+ 00009027  0x00000a49 copy  0x0000003f , 0x00000002 
+ 00009028  0x00000a4a bpatch  0x00000020 , 0x00004004 
+ 00009029  0x00000a4b copy  0x00000002 , 0x0000003f 
+ 00009030  0x00000a4c call  0x00007d2c 
+ 00009031  0x00000a4d lshift16  0x00000021 , 0x0000003f 
+ 00009032  0x00000a4e set1  0x0000002c , 0x0000003f 
+ 00009033  0x00000a4f call  0x00007d12 
+ 00009034  0x00000a50 set0  0x0000002c , 0x0000003f 
+ 00009035  0x00000a51 call  0x00002352 
+ 00009036  0x00000a52 call  0x00007d12 
+ 00009037  0x00000a53 rtn  0x00000028 
+ 00009038  0x00000a54 call  0x00007d1f 
+ 00009039  0x00000a55 iforce  0x0000001b 
+ 00009040  0x00000a56 until  0x0000003e , 0x00000003 
+ 00009041  0x00000a57 rtn 
+ 00009042  0x00000a5b copy  0x00000019 , 0x00000002 
+ 00009043  0x00000a5c rtn  0x00000029 
+ 00009044  0x00000a5d copy  0x0000001a , 0x00000002 
+ 00009045  0x00000a5e rtn 
+ 00009046  0x00000a61 deposit  0x00000022 
+ 00009047  0x00000a62 rtn  0x00000029 
+ 00009048  0x00000a63 deposit  0x00000028 
+ 00009049  0x00000a64 rtn 
+ 00009050  0x00000a68 bpatch  0x00000021 , 0x00004004 
+ 00009051  0x00000a69 branch  0x0000235a 
+ 00009052  0x00000a6d rtn  0x00000034 
+ 00009053  0x00000a6f rshift  0x0000003f , 0x0000003f 
+ 00009054  0x00000a70 increase  0xfffffffd , 0x0000003f 
+ 00009055  0x00000a72 increase  0xffffffff , 0x0000003f 
+ 00009056  0x00000a73 nbranch  0x0000235f , 0x00000005 
+ 00009057  0x00000a74 force  0x00000000 , 0x0000003f 
+ 00009058  0x00000a75 rtn 
+ 00009059  0x00000a7b setarg  0x00000e43 
+ 00009060  0x00000a7c store  0x00000002 , 0x00000036 
+ 00009061  0x00000a7d setarg  0x00000600 
+ 00009062  0x00000a7e store  0x00000002 , 0x00000038 
+ 00009063  0x00000a7f setarg  0x00000600 
+ 00009064  0x00000a80 store  0x00000002 , 0x0000003a 
+ 00009065  0x00000a81 setarg  0x00000d00 
+ 00009066  0x00000a82 store  0x00000002 , 0x00000040 
+ 00009067  0x00000a83 setarg  0x000003bb 
+ 00009068  0x00000a84 store  0x00000002 , 0x0000003c 
+ 00009069  0x00000a85 setarg  0x00000500 
+ 00009070  0x00000a86 store  0x00000002 , 0x0000003e 
+ 00009071  0x00000a87 setarg  0x000007d0 
+ 00009072  0x00000a88 store  0x00000002 , 0x00000042 
+ 00009073  0x00000a89 setarg  0x00000ea6 
+ 00009074  0x00000a8a store  0x00000002 , 0x00000044 
+ 00009075  0x00000a8b setarg  0x000001e0 
+ 00009076  0x00000a8c store  0x00000002 , 0x00000046 
+ 00009077  0x00000a8d setarg  0x00000120 
+ 00009078  0x00000a8e store  0x00000002 , 0x00000048 
+ 00009079  0x00000a8f setarg  0x0000011a 
+ 00009080  0x00000a90 store  0x00000002 , 0x0000004a 
+ 00009081  0x00000a92 bpatch  0x00000022 , 0x00004004 
+ 00009082  0x00000a93 rtn  0x0000002b 
+ 00009083  0x00000a94 setarg  0x00000017 
+ 00009084  0x00000a95 store  0x00000002 , 0x000042e3 
+ 00009085  0x00000a96 jam  0x0000008b , 0x00004167 
+ 00009086  0x00000a97 setarg  0x00000d00 
+ 00009087  0x00000a98 store  0x00000002 , 0x0000433f 
+ 00009088  0x00000a99 setarg  0x00000060 
+ 00009089  0x00000a9a store  0x00000002 , 0x00004341 
+ 00009090  0x00000a9b rshift  0x00000022 , 0x0000003f 
+ 00009091  0x00000a9c store  0x00000004 , 0x00004095 
+ 00009092  0x00000a9d rtn 
+ 00009093  0x00000aa5 setarg  0x0000ee21 
+ 00009094  0x00000aa6 store  0x00000002 , 0x00008050 
+ 00009095  0x00000aa7 fetchr  0x00000030 , 0x00000004 , 0x0000811c 
+ 00009096  0x00000aa8 fetch  0x00000001 , 0x00008132 
+ 00009097  0x00000aa9 bbit0  0x00000005 , 0x0000239c 
+ 00009098  0x00000aaa enable  0x0000002b 
+ 00009099  0x00000aab bbit1  0x00000004 , 0x00002393 
+ 00009100  0x00000aac disable  0x0000002b 
+ 00009101  0x00000aad deposit  0x00000027 
+ 00009102  0x00000aae nbranch  0x00002393 , 0x00000034 
+ 00009103  0x00000aaf fetch  0x00000001 , 0x00008142 
+ 00009104  0x00000ab0 bbit1  0x00000004 , 0x00002393 
+ 00009105  0x00000ab1 arg  0xffffffff , 0x00000002 
+ 00009106  0x00000ab2 branch  0x00002434 
+ 00009107  0x00000ab4 call  0x000023a0 
+ 00009108  0x00000ab5 call  0x000023e6 , 0x0000002b 
+ 00009109  0x00000ab6 fetch  0x00000001 , 0x00008132 
+ 00009110  0x00000ab7 set0  0x00000005 , 0x0000003f 
+ 00009111  0x00000ab8 store  0x00000001 , 0x00008132 
+ 00009112  0x00000ab9 nbranch  0x0000239d , 0x0000002b 
+ 00009113  0x00000aba call  0x00007d74 
+ 00009114  0x00000abb storer  0x00000030 , 0x00000004 , 0x0000069d 
+ 00009115  0x00000abc rtn 
+ 00009116  0x00000abf call  0x000023a0 
+ 00009117  0x00000ac1 call  0x00006a68 
+ 00009118  0x00000ac2 storer  0x00000030 , 0x00000004 , 0x0000069d 
+ 00009119  0x00000ac3 rtn 
+ 00009120  0x00000ac6 until  0x0000003e , 0x00000033 
+ 00009121  0x00000ac7 fetch  0x00000001 , 0x00008133 
+ 00009122  0x00000ac8 and_into  0x00000088 , 0x0000003f 
+ 00009123  0x00000ac9 store  0x00000001 , 0x00008133 
+ 00009124  0x00000aca until  0x0000003e , 0x00000033 
+ 00009125  0x00000acb fetch  0x00000001 , 0x00008132 
+ 00009126  0x00000acc or_into  0x0000000f , 0x0000003f 
+ 00009127  0x00000acd store  0x00000001 , 0x00008132 
+ 00009128  0x00000ace until  0x0000003e , 0x00000033 
+ 00009129  0x00000acf set1  0x00000007 , 0x0000003f 
+ 00009130  0x00000ad0 store  0x00000001 , 0x00008132 
+ 00009131  0x00000ad1 until  0x0000003e , 0x00000033 
+ 00009132  0x00000ad2 set1  0x00000006 , 0x0000003f 
+ 00009133  0x00000ad3 store  0x00000001 , 0x00008132 
+ 00009134  0x00000ad4 until  0x0000003e , 0x00000033 
+ 00009135  0x00000ad5 rtn 
+ 00009136  0x00000ad8 until  0x0000003e , 0x00000033 
+ 00009137  0x00000ad9 jam  0x00000076 , 0x0000813d 
+ 00009138  0x00000ada until  0x0000003e , 0x00000033 
+ 00009139  0x00000adb jam  0x00000037 , 0x0000813a 
+ 00009140  0x00000adc rtn 
+ 00009141  0x00000adf until  0x0000003e , 0x00000033 
+ 00009142  0x00000ae0 jam  0x00000076 , 0x0000813d 
+ 00009143  0x00000ae1 until  0x0000003e , 0x00000033 
+ 00009144  0x00000ae2 jam  0x00000037 , 0x0000813a 
+ 00009145  0x00000ae3 rtn 
+ 00009146  0x00000ae8 fetch  0x00000001 , 0x000043cb 
+ 00009147  0x00000ae9 lshift4  0x0000003f , 0x0000003f 
+ 00009148  0x00000aeb store  0x00000001 , 0x00008143 
+ 00009149  0x00000aec until  0x0000003e , 0x00000033 
+ 00009150  0x00000aed fetch  0x00000001 , 0x000043cc 
+ 00009151  0x00000aee set1  0x00000005 , 0x0000003f 
+ 00009152  0x00000aef set1  0x00000006 , 0x0000003f 
+ 00009153  0x00000af0 store  0x00000001 , 0x00008144 
+ 00009154  0x00000af1 branch  0x000023e2 
+ 00009155  0x00000af4 fetch  0x00000001 , 0x00008142 
+ 00009156  0x00000af5 set0  0x00000003 , 0x0000003f 
+ 00009157  0x00000af6 store  0x00000001 , 0x00008142 
+ 00009158  0x00000af7 rtn 
+ 00009159  0x00000afa fetch  0x00000001 , 0x00008142 
+ 00009160  0x00000afb set1  0x00000003 , 0x0000003f 
+ 00009161  0x00000afc store  0x00000001 , 0x00008142 
+ 00009162  0x00000afd rtn 
+ 00009163  0x00000b00 fetch  0x00000003 , 0x000040c3 
+ 00009164  0x00000b01 arg  0x0000813e , 0x00000005 
+ 00009165  0x00000b03 arg  0x00000003 , 0x00000039 
+ 00009166  0x00000b04 branch  0x000023d1 
+ 00009167  0x00000b07 arg  0x00008145 , 0x00000005 
+ 00009168  0x00000b09 arg  0x00000004 , 0x00000039 
+ 00009169  0x00000b0b until  0x0000003e , 0x00000033 
+ 00009170  0x00000b0c istore  0x00000001 , 0x00000005 
+ 00009171  0x00000b0d rshift8  0x0000003f , 0x0000003f 
+ 00009172  0x00000b0e loop  0x000023d1 
+ 00009173  0x00000b0f branch  0x000023e2 
+ 00009174  0x00000b12 arg  0x00008149 , 0x00000005 
+ 00009175  0x00000b13 branch  0x000023d0 
+ 00009176  0x00000b17 fetch  0x00000001 , 0x00008133 
+ 00009177  0x00000b18 set0  0x00000003 , 0x0000003f 
+ 00009178  0x00000b19 store  0x00000001 , 0x00008133 
+ 00009179  0x00000b1a rtn 
+ 00009180  0x00000b1d fetch  0x00000001 , 0x000040cb 
+ 00009181  0x00000b1e rtn  0x00000034 
+ 00009182  0x00000b1f set0  0x00000004 , 0x0000003f 
+ 00009183  0x00000b20 branch  0x000023e1 
+ 00009184  0x00000b23 store  0x00000001 , 0x000040cb 
+ 00009185  0x00000b25 store  0x00000001 , 0x00008135 
+ 00009186  0x00000b27 until  0x0000003e , 0x00000033 
+ 00009187  0x00000b28 rtn 
+ 00009188  0x00000b2c store  0x00000001 , 0x00008134 
+ 00009189  0x00000b2d branch  0x000023e2 
+ 00009190  0x00000b31 call  0x000023dc 
+ 00009191  0x00000b32 fetch  0x00000001 , 0x000040ef 
+ 00009192  0x00000b33 store  0x00000001 , 0x00008080 
+ 00009193  0x00000b34 arg  0x000040cc , 0x00000006 
+ 00009194  0x00000b35 arg  0x00008070 , 0x00000005 
+ 00009195  0x00000b36 call  0x00007c8f 
+ 00009196  0x00000b37 arg  0x000080d4 , 0x00000005 
+ 00009197  0x00000b38 call  0x00007c89 
+ 00009198  0x00000b39 fetchr  0x00000000 , 0x00000008 , 0x000040e7 
+ 00009199  0x00000b3a arg  0x0000814d , 0x00000006 
+ 00009200  0x00000b3b arg  0x00000016 , 0x00000005 
+ 00009201  0x00000b3c arg  0x0000000c , 0x00000039 
+ 00009202  0x00000b3d call  0x00007cda 
+ 00009203  0x00000b3e branch  0x00006b11 
+ 00009204  0x00000b41 storer  0x00000000 , 0x00000008 , 0x000040e7 
+ 00009205  0x00000b42 arg  0x00008070 , 0x00000006 
+ 00009206  0x00000b43 arg  0x000040cc , 0x00000005 
+ 00009207  0x00000b44 call  0x00007c8f 
+ 00009208  0x00000b45 arg  0x000080d4 , 0x00000006 
+ 00009209  0x00000b46 call  0x00007c89 
+ 00009210  0x00000b47 fetch  0x00000001 , 0x00008080 
+ 00009211  0x00000b48 store  0x00000001 , 0x000040ef 
+ 00009212  0x00000b49 branch  0x000023fd 
+ 00009213  0x00000b4c arg  0x0000000c , 0x00000039 
+ 00009214  0x00000b4d arg  0x00000016 , 0x00000006 
+ 00009215  0x00000b4e arg  0x0000814d , 0x00000011 
+ 00009216  0x00000b50 ifetch  0x00000001 , 0x00000006 
+ 00009217  0x00000b51 ncall  0x00002405 , 0x00000034 
+ 00009218  0x00000b52 increase  0x00000001 , 0x00000011 
+ 00009219  0x00000b53 loop  0x00002400 
+ 00009220  0x00000b54 rtn 
+ 00009221  0x00000b56 istore  0x00000001 , 0x00000011 
+ 00009222  0x00000b57 until  0x0000003e , 0x00000033 
+ 00009223  0x00000b58 rtn 
+ 00009224  0x00000b5b bpatch  0x00000023 , 0x00004004 
+ 00009225  0x00000b5c fetch  0x00000001 , 0x000080cb 
+ 00009226  0x00000b5d nbranch  0x0000240f , 0x00000034 
+ 00009227  0x00000b5e fetch  0x00000003 , 0x000040bd 
+ 00009228  0x00000b5f nrtn  0x00000034 
+ 00009229  0x00000b60 jam  0x0000000c , 0x000080cb 
+ 00009230  0x00000b61 jam  0x00000080 , 0x00008006 
+ 00009231  0x00000b63 fetch  0x00000001 , 0x00008129 
+ 00009232  0x00000b64 rtnbit0  0x00000001 
+ 00009233  0x00000b65 fetch  0x00000003 , 0x0000815b 
+ 00009234  0x00000b66 store  0x00000003 , 0x000040bd 
+ 00009235  0x00000b67 rtn 
+ 00009236  0x00000b6c fetch  0x00000001 , 0x000040ca 
+ 00009237  0x00000b6d set1  0x00000004 , 0x0000003f 
+ 00009238  0x00000b6e store  0x00000001 , 0x000040ca 
+ 00009239  0x00000b72 bpatch  0x00000024 , 0x00004004 
+ 00009240  0x00000b73 arg  0xffffffff , 0x00000002 
+ 00009241  0x00000b74 fetch  0x00000001 , 0x000040a7 
+ 00009242  0x00000b75 store  0x00000001 , 0x000040c8 
+ 00009243  0x00000b76 fetch  0x00000001 , 0x000040ca 
+ 00009244  0x00000b77 store  0x00000001 , 0x00008142 
+ 00009245  0x00000b78 until  0x0000003e , 0x00000033 
+ 00009246  0x00000b7b bpatch  0x00000025 , 0x00004004 
+ 00009247  0x00000b7d fetch  0x00000002 , 0x000043e9 
+ 00009248  0x00000b7e call  0x00007d79 
+ 00009249  0x00000b80 fetch  0x00000004 , 0x000040ad 
+ 00009250  0x00000b81 iadd  0x00000002 , 0x0000003f 
+ 00009251  0x00000b82 store  0x00000004 , 0x000040ad 
+ 00009252  0x00000b83 call  0x000023f4 
+ 00009253  0x00000b84 fetch  0x00000001 , 0x000040cb 
+ 00009254  0x00000b85 set1  0x00000004 , 0x0000003f 
+ 00009255  0x00000b86 call  0x000023e1 
+ 00009256  0x00000b87 ncall  0x000023cb , 0x0000002b 
+ 00009257  0x00000b88 until  0x0000003e , 0x00000033 
+ 00009258  0x00000b89 storer  0x00000019 , 0x00000006 , 0x000040b1 
+ 00009259  0x00000b8a fetch  0x00000003 , 0x000040c6 
+ 00009260  0x00000b8b fetchr  0x00000011 , 0x00000001 , 0x000040c9 
+ 00009261  0x00000b8c arg  0x00000003 , 0x00000039 
+ 00009262  0x00000b8e until  0x0000003e , 0x00000033 
+ 00009263  0x00000b8f store  0x00000001 , 0x00008132 
+ 00009264  0x00000b90 rshift8  0x0000003f , 0x0000003f 
+ 00009265  0x00000b91 loop  0x0000242e 
+ 00009266  0x00000b92 until  0x0000003e , 0x00000033 
+ 00009267  0x00000b93 storer  0x00000011 , 0x00000001 , 0x00008133 
+ 00009268  0x00000b95 until  0x0000003e , 0x00000033 
+ 00009269  0x00000b96 storet  0x00000004 , 0x0000804c 
+ 00009270  0x00000b97 jam  0x00000001 , 0x00008005 
+ 00009271  0x00000b98 until  0x0000003e , 0x0000003f 
+ 00009272  0x00000b9b fetch  0x00000001 , 0x000040c3 
+ 00009273  0x00000b9c nrtn  0x00000034 
+ 00009274  0x00000b9d jam  0x00000006 , 0x00008042 
+ 00009275  0x00000b9e jam  0x000000f8 , 0x00008130 
+ 00009276  0x00000b9f setarg  0x00030d40 
+ 00009277  0x00000ba0 call  0x0000235c 
+ 00009278  0x00000ba1 call  0x000023b5 
+ 00009279  0x00000ba2 until  0x0000003e , 0x00000033 
+ 00009280  0x00000ba3 jam  0x000000ff , 0x00008130 
+ 00009281  0x00000ba4 copy  0x00000031 , 0x00000030 
+ 00009282  0x00000ba5 jam  0x00000004 , 0x00008042 
+ 00009283  0x00000ba6 nop  0x0000000a 
+ 00009284  0x00000ba7 until  0x0000003e , 0x00000033 
+ 00009285  0x00000ba8 deposit  0x00000031 
+ 00009286  0x00000ba9 isub  0x00000030 , 0x0000003f 
+ 00009287  0x00000baa increase  0x00000030 , 0x0000003f 
+ 00009288  0x00000bab arg  0x000000ff , 0x00000002 
+ 00009289  0x00000bac call  0x00007d6c 
+ 00009290  0x00000bad store  0x00000001 , 0x000040c3 
+ 00009291  0x00000bae nop  0x00007530 
+ 00009292  0x00000baf nop  0x00007530 
+ 00009293  0x00000bb0 nop  0x00007530 
+ 00009294  0x00000bb1 rtn 
+ 00009295  0x00000bb5 bpatch  0x00000026 , 0x00004004 
+ 00009296  0x00000bb6 setarg  0x00000000 
+ 00009297  0x00000bb7 copy  0x00000027 , 0x0000003e 
+ 00009298  0x00000bb8 branch  0x0000245a , 0x00000005 
+ 00009299  0x00000bb9 fetch  0x00000001 , 0x0000813e 
+ 00009300  0x00000bba fetcht  0x00000001 , 0x0000813f 
+ 00009301  0x00000bbb isub  0x00000002 , 0x0000003e 
+ 00009302  0x00000bbc branch  0x00002458 , 0x00000002 
+ 00009303  0x00000bbd deposit  0x00000002 
+ 00009304  0x00000bbf isub  0x00000027 , 0x0000003f 
+ 00009305  0x00000bc0 increase  0x00000001 , 0x0000003f 
+ 00009306  0x00000bc2 increase  0x00000008 , 0x0000003f 
+ 00009307  0x00000bc3 until  0x0000003e , 0x00000033 
+ 00009308  0x00000bc4 iadd  0x00000031 , 0x0000003f 
+ 00009309  0x00000bc5 fetcht  0x00000004 , 0x000040a9 
+ 00009310  0x00000bc6 iadd  0x00000002 , 0x0000003f 
+ 00009311  0x00000bc7 fetcht  0x00000003 , 0x000040bd 
+ 00009312  0x00000bc8 imul32  0x00000002 , 0x0000003f 
+ 00009313  0x00000bc9 rshift8  0x0000003f , 0x0000003f 
+ 00009314  0x00000bca rshift4  0x0000003f , 0x0000003f 
+ 00009315  0x00000bcb increase  0x0000006e , 0x0000003f 
+ 00009316  0x00000bcc fetcht  0x00000002 , 0x00000044 
+ 00009317  0x00000bcd idiv  0x00000002 
+ 00009318  0x00000bce call  0x00007d5f 
+ 00009319  0x00000bcf lshift16  0x0000003f , 0x0000003f 
+ 00009320  0x00000bd0 remainder  0x00000002 
+ 00009321  0x00000bd1 ior  0x00000002 , 0x0000003f 
+ 00009322  0x00000bd2 fetcht  0x00000006 , 0x000040b1 
+ 00009323  0x00000bd3 call  0x00007d05 
+ 00009324  0x00000bd4 copy  0x00000002 , 0x00000019 
+ 00009325  0x00000bd5 fetch  0x00000006 , 0x00004048 
+ 00009326  0x00000bd6 call  0x00002109 
+ 00009327  0x00000bd7 deposit  0x0000001a 
+ 00009328  0x00000bd8 store  0x00000006 , 0x00000670 
+ 00009329  0x00000bd9 deposit  0x00000027 
+ 00009330  0x00000bda istore  0x00000001 , 0x00000005 
+ 00009331  0x00000bdb fetch  0x00000001 , 0x0000811d 
+ 00009332  0x00000bdc or_into  0x000000f0 , 0x0000003f 
+ 00009333  0x00000bdd istore  0x00000001 , 0x00000005 
+ 00009334  0x00000bde rtn 
+ 00009335  0x00000be2 bpatch  0x00000027 , 0x00004004 
+ 00009336  0x00000be3 deposit  0x0000001a 
+ 00009337  0x00000be4 call  0x00007d10 
+ 00009338  0x00000be5 fetcht  0x00000004 , 0x000040ad 
+ 00009339  0x00000be6 sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00009340  0x00000be7 rtn  0x00000002 
+ 00009341  0x00000be8 lshift8  0x0000003f , 0x0000003f 
+ 00009342  0x00000be9 lshift4  0x0000003f , 0x0000003f 
+ 00009343  0x00000bea idiv  0x00000002 
+ 00009344  0x00000beb call  0x00007d5f 
+ 00009345  0x00000bec arg  0x000000c8 , 0x00000002 
+ 00009346  0x00000bed call  0x00007d6c 
+ 00009347  0x00000bee store  0x00000001 , 0x0000000e 
+ 00009348  0x00000bef nbranch  0x00002486 , 0x00000028 
+ 00009349  0x00000bf0 sub  0x0000003f , 0x00000000 , 0x0000003f 
+ 00009350  0x00000bf2 fetcht  0x00000003 , 0x000040bd 
+ 00009351  0x00000bf3 iadd  0x00000002 , 0x0000003f 
+ 00009352  0x00000bf4 store  0x00000003 , 0x000040bd 
+ 00009353  0x00000bf6 setarg  0x00000000 
+ 00009354  0x00000bf7 store  0x00000004 , 0x000040ad 
+ 00009355  0x00000bf8 rtn 
+ 00009356  0x00000bfc bpatch  0x00000028 , 0x00004005 
+ 00009357  0x00000bfd call  0x00002408 
+ 00009358  0x00000bfe fetch  0x00000003 , 0x000040bd 
+ 00009359  0x00000bff rtn  0x00000034 
+ 00009360  0x00000c00 fetch  0x00000001 , 0x00004094 
+ 00009361  0x00000c01 rtn  0x00000034 
+ 00009362  0x00000c02 fetch  0x00000001 , 0x0000446c 
+ 00009363  0x00000c03 branch  0x00002496 , 0x00000034 
+ 00009364  0x00000c04 fetch  0x00000001 , 0x0000446e 
+ 00009365  0x00000c05 rtn  0x00000034 
+ 00009366  0x00000c07 fetch  0x00000001 , 0x0000446d 
+ 00009367  0x00000c08 nrtn  0x00000034 
+ 00009368  0x00000c09 arg  0x000020af , 0x00000013 
+ 00009369  0x00000c0a call  0x00002069 
+ 00009370  0x00000c0b rtn  0x00000005 
+ 00009371  0x00000c0c call  0x000024ef 
+ 00009372  0x00000c0d nrtn  0x00000034 
+ 00009373  0x00000c0e call  0x0000205d 
+ 00009374  0x00000c0f nbranch  0x000024bd , 0x00000005 
+ 00009375  0x00000c10 rtn  0x0000002b 
+ 00009376  0x00000c11 bpatch  0x00000029 , 0x00004005 
+ 00009377  0x00000c12 fetcht  0x00000001 , 0x00000015 
+ 00009378  0x00000c13 fetch  0x00000002 , 0x00004042 
+ 00009379  0x00000c14 imul32  0x00000002 , 0x0000003f 
+ 00009380  0x00000c15 rshift4  0x00000002 , 0x00000002 
+ 00009381  0x00000c16 rshift2  0x00000002 , 0x00000002 
+ 00009382  0x00000c17 isub  0x00000002 , 0x0000003f 
+ 00009383  0x00000c18 fetcht  0x00000004 , 0x00004044 
+ 00009384  0x00000c19 iadd  0x00000002 , 0x0000003f 
+ 00009385  0x00000c1a fetcht  0x00000001 , 0x000040a6 
+ 00009386  0x00000c1b isub  0x00000002 , 0x0000003f 
+ 00009387  0x00000c1c lshift16  0x0000003f , 0x00000030 
+ 00009388  0x00000c1d fetch  0x00000002 , 0x0000404e 
+ 00009389  0x00000c1e rshift  0x0000003f , 0x0000003f 
+ 00009390  0x00000c1f call  0x00007d2c 
+ 00009391  0x00000c20 deposit  0x00000030 
+ 00009392  0x00000c21 call  0x00007d12 
+ 00009393  0x00000c22 copy  0x0000001a , 0x00000002 
+ 00009394  0x00000c23 call  0x00007d10 
+ 00009395  0x00000c24 rtn  0x00000028 
+ 00009396  0x00000c26 call  0x00007d25 
+ 00009397  0x00000c28 bpatch  0x0000002a , 0x00004005 
+ 00009398  0x00000c29 fetch  0x00000001 , 0x000040c3 
+ 00009399  0x00000c2a isub  0x00000002 , 0x0000003e 
+ 00009400  0x00000c2b branch  0x00002489 , 0x00000002 
+ 00009401  0x00000c2c storet  0x00000004 , 0x000040a9 
+ 00009402  0x00000c2d call  0x000042c5 
+ 00009403  0x00000c2f fetcht  0x00000004 , 0x000040a9 
+ 00009404  0x00000c30 branch  0x0000241e 
+ 00009405  0x00000c33 bpatch  0x0000002b , 0x00004005 
+ 00009406  0x00000c34 fetch  0x00000001 , 0x00004388 
+ 00009407  0x00000c35 nbranch  0x000024c1 , 0x00000034 
+ 00009408  0x00000c36 rtn 
+ 00009409  0x00000c39 fetch  0x00000002 , 0x000040a4 
+ 00009410  0x00000c3a rtn  0x00000034 
+ 00009411  0x00000c3c fetcht  0x00000001 , 0x000040a6 
+ 00009412  0x00000c3d isub  0x00000002 , 0x0000003f 
+ 00009413  0x00000c3e arg  0x00001d4c , 0x00000002 
+ 00009414  0x00000c3f imul32  0x00000002 , 0x0000003f 
+ 00009415  0x00000c40 branch  0x000024b4 
+ 00009416  0x00000c44 fetch  0x00000002 , 0x000043e5 
+ 00009417  0x00000c45 call  0x00007d79 
+ 00009418  0x00000c46 nbranch  0x000024e0 , 0x00000034 
+ 00009419  0x00000c47 jam  0x00000000 , 0x00000015 
+ 00009420  0x00000c48 bmark0  0x0000000d , 0x000024e0 
+ 00009421  0x00000c49 fetch  0x00000001 , 0x000040c2 
+ 00009422  0x00000c4a branch  0x000024e4 , 0x00000034 
+ 00009423  0x00000c4b increase  0xffffffff , 0x0000003f 
+ 00009424  0x00000c4c store  0x00000001 , 0x000040c2 
+ 00009425  0x00000c4d rtn 
+ 00009426  0x00000c53 jam  0x00000000 , 0x000040a8 
+ 00009427  0x00000c54 fetch  0x00000003 , 0x000040b7 
+ 00009428  0x00000c55 increase  0x00000001 , 0x0000003f 
+ 00009429  0x00000c56 store  0x00000003 , 0x000040b7 
+ 00009430  0x00000c57 rtn 
+ 00009431  0x00000c5b bpatch  0x0000002c , 0x00004005 
+ 00009432  0x00000c5c jam  0x00000000 , 0x00000015 
+ 00009433  0x00000c5d fetch  0x00000003 , 0x000040ba 
+ 00009434  0x00000c5e increase  0x00000001 , 0x0000003f 
+ 00009435  0x00000c5f store  0x00000003 , 0x000040ba 
+ 00009436  0x00000c60 fetch  0x00000001 , 0x000040a8 
+ 00009437  0x00000c61 increase  0x00000001 , 0x0000003f 
+ 00009438  0x00000c62 store  0x00000001 , 0x000040a8 
+ 00009439  0x00000c63 rtn 
+ 00009440  0x00000c66 jam  0x00000000 , 0x00000015 
+ 00009441  0x00000c67 fetch  0x00000001 , 0x000040c1 
+ 00009442  0x00000c68 store  0x00000001 , 0x000040c2 
+ 00009443  0x00000c69 rtn 
+ 00009444  0x00000c6c fetcht  0x00000001 , 0x000040c0 
+ 00009445  0x00000c6d storet  0x00000001 , 0x00000015 
+ 00009446  0x00000c6e rtn 
+ 00009447  0x00000c73 fetch  0x00000002 , 0x000040a2 
+ 00009448  0x00000c74 qset1  0x0000003f 
+ 00009449  0x00000c75 store  0x00000002 , 0x000040a2 
+ 00009450  0x00000c76 rtn 
+ 00009451  0x00000c79 fetch  0x00000002 , 0x000040a2 
+ 00009452  0x00000c7a qset0  0x0000003f 
+ 00009453  0x00000c7b store  0x00000002 , 0x000040a2 
+ 00009454  0x00000c7c rtn 
+ 00009455  0x00000c81 bpatch  0x0000002d , 0x00004005 
+ 00009456  0x00000c82 call  0x000042c3 
+ 00009457  0x00000c83 fetch  0x00000002 , 0x000040a2 
+ 00009458  0x00000c84 copy  0x0000003f , 0x00000011 
+ 00009459  0x00000c85 fetch  0x00000003 , 0x0000444b 
+ 00009460  0x00000c86 nsetflag  0x00000034 , 0x00000001 , 0x00000011 
+ 00009461  0x00000c87 fetch  0x00000008 , 0x000044d3 
+ 00009462  0x00000c88 nsetflag  0x00000034 , 0x0000000f , 0x00000011 
+ 00009463  0x00000c89 fetch  0x00000008 , 0x000044db 
+ 00009464  0x00000c8a nsetflag  0x00000034 , 0x0000000e , 0x00000011 
+ 00009465  0x00000c8b fetch  0x00000001 , 0x00004114 
+ 00009466  0x00000c8c nsetflag  0x00000034 , 0x00000008 , 0x00000011 
+ 00009467  0x00000c8d fetch  0x00000001 , 0x000043cb 
+ 00009468  0x00000c8e compare  0x0000000a , 0x0000003f , 0x000000ff 
+ 00009469  0x00000c8f call  0x00002501 , 0x00000001 
+ 00009470  0x00000c90 copy  0x00000011 , 0x0000003f 
+ 00009471  0x00000c91 store  0x00000002 , 0x000040a2 
+ 00009472  0x00000c92 rtn 
+ 00009473  0x00000c95 fetch  0x00000002 , 0x00008112 
+ 00009474  0x00000c96 nsetflag  0x00000034 , 0x00000006 , 0x00000011 
+ 00009475  0x00000c97 fetch  0x00000002 , 0x0000810e 
+ 00009476  0x00000c98 nsetflag  0x00000034 , 0x00000005 , 0x00000011 
+ 00009477  0x00000c99 rtn 
+ 00009478  0x00000ca3 bpatchx  0x0000000e , 0x00004021 
+ 00009479  0x00000ca4 disable  0x0000002b 
+ 00009480  0x00000ca5 jam  0x00000001 , 0x0000017e 
+ 00009481  0x00000ca6 jam  0x00000003 , 0x00000168 
+ 00009482  0x00000ca7 jam  0x00000001 , 0x0000017f 
+ 00009483  0x00000ca8 setarg  0xffffffff 
+ 00009484  0x00000ca9 store  0x00000002 , 0x00000182 
+ 00009485  0x00000caa force  0x00000000 , 0x0000003f 
+ 00009486  0x00000cab store  0x00000001 , 0x00000180 
+ 00009487  0x00000cac store  0x00000001 , 0x0000018b 
+ 00009488  0x00000cad store  0x00000003 , 0x000040b7 
+ 00009489  0x00000cae store  0x00000003 , 0x000040ba 
+ 00009490  0x00000caf call  0x0000285c 
+ 00009491  0x00000cb0 jam  0x00000001 , 0x00004169 
+ 00009492  0x00000cb1 jam  0x00000000 , 0x0000416a 
+ 00009493  0x00000cb2 jam  0x00000001 , 0x0000019d 
+ 00009494  0x00000cb3 jam  0x00000001 , 0x0000019e 
+ 00009495  0x00000cb4 jam  0x00000000 , 0x00004396 
+ 00009496  0x00000cb5 branch  0x00002935 
+ 00009497  0x00000cb8 bpatchx  0x0000000f , 0x00004021 
+ 00009498  0x00000cb9 enable  0x00000029 
+ 00009499  0x00000cba jam  0x00000003 , 0x00000169 
+ 00009500  0x00000cbb jam  0x00000001 , 0x00004398 
+ 00009501  0x00000cbc jam  0x00000001 , 0x000006b1 
+ 00009502  0x00000cbd setarg  0x0000ffff 
+ 00009503  0x00000cbe store  0x00000002 , 0x000006b3 
+ 00009504  0x00000cbf force  0x00000000 , 0x0000003f 
+ 00009505  0x00000cc0 store  0x00000005 , 0x00004455 
+ 00009506  0x00000cc1 set1  0x00000027 , 0x0000003f 
+ 00009507  0x00000cc2 store  0x00000005 , 0x00004450 
+ 00009508  0x00000cc3 branch  0x00002506 
+ 00009509  0x00000cc7 bpatchx  0x00000010 , 0x00004022 
+ 00009510  0x00000cc8 disable  0x00000029 
+ 00009511  0x00000cc9 setarg  0x00000017 
+ 00009512  0x00000cca store  0x00000002 , 0x000042e3 
+ 00009513  0x00000ccb increase  0x00000004 , 0x0000003f 
+ 00009514  0x00000ccc store  0x00000002 , 0x000043b8 
+ 00009515  0x00000ccd jam  0x00000001 , 0x00000169 
+ 00009516  0x00000cce jam  0x00000000 , 0x00004388 
+ 00009517  0x00000ccf jam  0x00000000 , 0x00000015 
+ 00009518  0x00000cd0 call  0x00002592 
+ 00009519  0x00000cd1 fetch  0x00000002 , 0x00000196 
+ 00009520  0x00000cd2 store  0x00000002 , 0x000042f5 
+ 00009521  0x00000cd3 fetch  0x00000002 , 0x0000016a 
+ 00009522  0x00000cd4 mul32  0x0000003f , 0x00000005 , 0x0000003f 
+ 00009523  0x00000cd5 rshift4  0x0000003f , 0x0000003f 
+ 00009524  0x00000cd6 store  0x00000002 , 0x00000196 
+ 00009525  0x00000cd7 branch  0x00002506 
+ 00009526  0x00000cdf bpatchx  0x00000011 , 0x00004022 
+ 00009527  0x00000ce0 call  0x000025b8 
+ 00009528  0x00000ce1 fetch  0x00000001 , 0x00000168 
+ 00009529  0x00000ce2 isolate1  0x00000004 , 0x0000003f 
+ 00009530  0x00000ce3 setflag  0x00000001 , 0x00000032 , 0x00000000 
+ 00009531  0x00000ce4 call  0x000042b2 
+ 00009532  0x00000ce5 fetch  0x00000001 , 0x00000169 
+ 00009533  0x00000ce6 bbit1  0x00000001 , 0x0000253f 
+ 00009534  0x00000ce7 branch  0x00002551 
+ 00009535  0x00000cee bpatchx  0x00000012 , 0x00004022 
+ 00009536  0x00000cef enable  0x00000029 
+ 00009537  0x00000cf0 call  0x0000292b 
+ 00009538  0x00000cf1 branch  0x0000254e , 0x00000002 
+ 00009539  0x00000cf2 call  0x000025fb 
+ 00009540  0x00000cf3 call  0x00002871 
+ 00009541  0x00000cf4 disable  0x0000002d 
+ 00009542  0x00000cf5 call  0x00002730 
+ 00009543  0x00000cf6 nrtn  0x0000002d 
+ 00009544  0x00000cf7 fetch  0x00000001 , 0x00000005 
+ 00009545  0x00000cf8 increase  0x00000001 , 0x0000003f 
+ 00009546  0x00000cf9 store  0x00000001 , 0x00000005 
+ 00009547  0x00000cfa call  0x00002823 
+ 00009548  0x00000cfb disable  0x00000029 
+ 00009549  0x00000cfc rtn 
+ 00009550  0x00000cff call  0x00002586 
+ 00009551  0x00000d00 disable  0x00000029 
+ 00009552  0x00000d01 rtn 
+ 00009553  0x00000d07 bpatchx  0x00000013 , 0x00004022 
+ 00009554  0x00000d08 jam  0x00000000 , 0x0000433e 
+ 00009555  0x00000d09 set0  0x00000030 , 0x00000000 
+ 00009556  0x00000d0a call  0x00007552 
+ 00009557  0x00000d0b call  0x00002ff5 
+ 00009558  0x00000d0c disable  0x0000002e 
+ 00009559  0x00000d0d call  0x0000292b 
+ 00009560  0x00000d0e branch  0x00002586 , 0x00000002 
+ 00009561  0x00000d0f fetch  0x00000001 , 0x0000019d 
+ 00009562  0x00000d10 call  0x000025a4 
+ 00009563  0x00000d11 call  0x000025fb 
+ 00009564  0x00000d12 call  0x00002652 
+ 00009565  0x00000d13 nbranch  0x00002577 , 0x00000018 
+ 00009566  0x00000d14 call  0x00002597 
+ 00009567  0x00000d15 branch  0x00002562 , 0x0000002d 
+ 00009568  0x00000d16 bmark1  0x00000030 , 0x00002562 
+ 00009569  0x00000d17 branch  0x00002571 
+ 00009570  0x00000d1c bpatchx  0x00000014 , 0x00004022 
+ 00009571  0x00000d1d fetch  0x00000001 , 0x0000433e 
+ 00009572  0x00000d1e pincrease  0x00000001 
+ 00009573  0x00000d1f store  0x00000001 , 0x0000433e 
+ 00009574  0x00000d20 beq  0x0000000c , 0x00002571 
+ 00009575  0x00000d21 call  0x00002823 
+ 00009576  0x00000d22 call  0x00002871 
+ 00009577  0x00000d23 fetch  0x00000001 , 0x0000019e 
+ 00009578  0x00000d24 call  0x000025a4 
+ 00009579  0x00000d25 call  0x00002741 
+ 00009580  0x00000d26 call  0x000028d4 
+ 00009581  0x00000d27 fetch  0x00000002 , 0x000043e1 
+ 00009582  0x00000d28 call  0x00007d79 
+ 00009583  0x00000d29 call  0x0000257b 
+ 00009584  0x00000d2a branch  0x00002580 , 0x00000028 
+ 00009585  0x00000d2c bpatchx  0x00000015 , 0x00004022 
+ 00009586  0x00000d2d call  0x00002fba 
+ 00009587  0x00000d2e call  0x00002fb1 
+ 00009588  0x00000d2f call  0x00007841 
+ 00009589  0x00000d30 fetch  0x00000001 , 0x0000018b 
+ 00009590  0x00000d31 bbit1  0x00000003 , 0x00002586 
+ 00009591  0x00000d33 bpatchx  0x00000016 , 0x00004022 
+ 00009592  0x00000d34 call  0x000020cf 
+ 00009593  0x00000d35 call  0x000029a5 
+ 00009594  0x00000d36 branch  0x000020f7 
+ 00009595  0x00000d3a disable  0x00000028 
+ 00009596  0x00000d3b bmark1  0x0000002a , 0x00007dba 
+ 00009597  0x00000d3c bmark1  0x00000029 , 0x00007dba 
+ 00009598  0x00000d3d bmark1  0x00000030 , 0x00007dba 
+ 00009599  0x00000d3e rtn 
+ 00009600  0x00000d42 bpatchx  0x00000017 , 0x00004022 
+ 00009601  0x00000d43 enable  0x0000002e 
+ 00009602  0x00000d44 call  0x00002734 
+ 00009603  0x00000d45 branch  0x00002562 , 0x0000002d 
+ 00009604  0x00000d46 bmark1  0x00000030 , 0x00002562 
+ 00009605  0x00000d47 branch  0x00002571 
+ 00009606  0x00000d4c bpatchx  0x00000018 , 0x00004023 
+ 00009607  0x00000d4d call  0x0000258d 
+ 00009608  0x00000d4e call  0x00004302 
+ 00009609  0x00000d4f call  0x00002592 
+ 00009610  0x00000d50 call  0x00003003 
+ 00009611  0x00000d51 jam  0x00000015 , 0x0000066f 
+ 00009612  0x00000d52 branch  0x0000782b 
+ 00009613  0x00000d55 arg  0x00004441 , 0x00000005 
+ 00009614  0x00000d56 call  0x00007c99 
+ 00009615  0x00000d57 jam  0x00000000 , 0x0000017e 
+ 00009616  0x00000d58 jam  0x00000000 , 0x00000169 
+ 00009617  0x00000d59 jam  0x00000000 , 0x00000168 
+ 00009618  0x00000d5b bpatchx  0x00000019 , 0x00004023 
+ 00009619  0x00000d5c jam  0x00000000 , 0x000042fd 
+ 00009620  0x00000d5d jam  0x00000000 , 0x000042fc 
+ 00009621  0x00000d5e call  0x00007452 
+ 00009622  0x00000d5f rtn 
+ 00009623  0x00000d62 bpatchx  0x0000001a , 0x00004023 
+ 00009624  0x00000d63 fetch  0x00000001 , 0x00000005 
+ 00009625  0x00000d64 increase  0x00000001 , 0x0000003f 
+ 00009626  0x00000d65 store  0x00000001 , 0x00000005 
+ 00009627  0x00000d66 fetch  0x00000001 , 0x00000168 
+ 00009628  0x00000d67 rtnbit1  0x00000003 
+ 00009629  0x00000d68 set1  0x00000003 , 0x0000003f 
+ 00009630  0x00000d69 store  0x00000001 , 0x00000168 
+ 00009631  0x00000d6a fetch  0x00000002 , 0x000042f5 
+ 00009632  0x00000d6b store  0x00000002 , 0x00000196 
+ 00009633  0x00000d6c setarg  0x00000000 
+ 00009634  0x00000d6d store  0x00000004 , 0x0000431d 
+ 00009635  0x00000d6e rtn 
+ 00009636  0x00000d77 copy  0x0000003f , 0x00000002 
+ 00009637  0x00000d78 bpatchx  0x0000001b , 0x00004023 
+ 00009638  0x00000d7a copy  0x00000002 , 0x0000003f 
+ 00009639  0x00000d7b bbit1  0x00000000 , 0x000025b8 
+ 00009640  0x00000d7c bbit1  0x00000001 , 0x000025ad 
+ 00009641  0x00000d7d bbit0  0x00000002 , 0x000025b8 
+ 00009642  0x00000d7e bbit1  0x00000007 , 0x000025b4 
+ 00009643  0x00000d7f bbit1  0x00000002 , 0x000025b0 
+ 00009644  0x00000d80 branch  0x000025b8 
+ 00009645  0x00000d83 set0  0x0000002f , 0x00000000 
+ 00009646  0x00000d84 set1  0x0000002d , 0x00000000 
+ 00009647  0x00000d85 rtn 
+ 00009648  0x00000d89 set0  0x0000002d , 0x00000000 
+ 00009649  0x00000d8a set1  0x0000002f , 0x00000000 
+ 00009650  0x00000d8b set0  0x0000002e , 0x00000000 
+ 00009651  0x00000d8c rtn 
+ 00009652  0x00000d90 set0  0x0000002d , 0x00000000 
+ 00009653  0x00000d91 set1  0x0000002f , 0x00000000 
+ 00009654  0x00000d92 set1  0x0000002e , 0x00000000 
+ 00009655  0x00000d93 rtn 
+ 00009656  0x00000d96 bpatchx  0x0000001c , 0x00004023 
+ 00009657  0x00000d97 set0  0x0000002d , 0x00000000 
+ 00009658  0x00000d98 set0  0x0000002f , 0x00000000 
+ 00009659  0x00000d99 rtn 
+ 00009660  0x00000d9d bpatchx  0x0000001d , 0x00004023 
+ 00009661  0x00000d9e set0  0x00000032 , 0x00000000 
+ 00009662  0x00000d9f jam  0x00000001 , 0x00008901 
+ 00009663  0x00000da0 jam  0x00000080 , 0x00008920 
+ 00009664  0x00000da1 jam  0x00000003 , 0x00008930 
+ 00009665  0x00000da2 rtn 
+ 00009666  0x00000da5 bpatchx  0x0000001e , 0x00004023 
+ 00009667  0x00000da6 disable  0x00000009 
+ 00009668  0x00000da7 disable  0x00000007 
+ 00009669  0x00000da8 fetch  0x00000003 , 0x00000190 
+ 00009670  0x00000da9 iforce  0x0000000f 
+ 00009671  0x00000daa fetch  0x00000001 , 0x00000007 
+ 00009672  0x00000dac reverse  0x0000003f , 0x00000002 
+ 00009673  0x00000dad set1  0x00000001 , 0x00000002 
+ 00009674  0x00000dae rshift  0x00000002 , 0x0000000e 
+ 00009675  0x00000daf rtn 
+ 00009676  0x00000db3 call  0x000025d5 
+ 00009677  0x00000db5 call  0x0000216f 
+ 00009678  0x00000db6 fetch  0x00000002 , 0x0000003e 
+ 00009679  0x00000db7 call  0x0000235c 
+ 00009680  0x00000db8 branch  0x000021a6 
+ 00009681  0x00000dbb branch  0x000021fc , 0x0000002d 
+ 00009682  0x00000dbc bmark1  0x00000030 , 0x000021fc 
+ 00009683  0x00000dbe call  0x000025d5 
+ 00009684  0x00000dbf branch  0x000021f9 
+ 00009685  0x00000dc2 bpatchx  0x0000001f , 0x00004023 
+ 00009686  0x00000dc3 call  0x00002160 
+ 00009687  0x00000dc4 fetch  0x00000001 , 0x000001bb 
+ 00009688  0x00000dc5 nbranch  0x000025e8 , 0x00000034 
+ 00009689  0x00000dc6 fetch  0x00000001 , 0x00000007 
+ 00009690  0x00000dc7 sub  0x0000003f , 0x00000024 , 0x0000003e 
+ 00009691  0x00000dc8 branch  0x000025e2 , 0x00000002 
+ 00009692  0x00000dc9 force  0x00000000 , 0x00000002 
+ 00009693  0x00000dca rtneq  0x00000025 
+ 00009694  0x00000dcb force  0x00000018 , 0x00000002 
+ 00009695  0x00000dcc rtneq  0x00000026 
+ 00009696  0x00000dcd force  0x0000004e , 0x00000002 
+ 00009697  0x00000dce rtn 
+ 00009698  0x00000dd1 sub  0x0000003f , 0x0000000a , 0x0000003e 
+ 00009699  0x00000dd2 branch  0x000025e5 , 0x00000002 
+ 00009700  0x00000dd3 increase  0x00000001 , 0x0000003f 
+ 00009701  0x00000dd6 lshift  0x0000003f , 0x0000003f 
+ 00009702  0x00000dd7 add  0x0000003f , 0x00000002 , 0x00000002 
+ 00009703  0x00000dd8 rtn 
+ 00009704  0x00000ddb fetch  0x00000001 , 0x00000007 
+ 00009705  0x00000ddc lshift  0x0000003f , 0x00000002 
+ 00009706  0x00000ddd rtn 
+ 00009707  0x00000de0 arg  0x000001f4 , 0x00000002 
+ 00009708  0x00000de1 rtn  0x00000034 
+ 00009709  0x00000de2 arg  0x000000fa , 0x00000002 
+ 00009710  0x00000de3 rtneq  0x00000001 
+ 00009711  0x00000de4 arg  0x00000096 , 0x00000002 
+ 00009712  0x00000de5 rtneq  0x00000002 
+ 00009713  0x00000de6 arg  0x00000064 , 0x00000002 
+ 00009714  0x00000de7 rtneq  0x00000003 
+ 00009715  0x00000de8 arg  0x0000004b , 0x00000002 
+ 00009716  0x00000de9 rtneq  0x00000004 
+ 00009717  0x00000dea arg  0x00000032 , 0x00000002 
+ 00009718  0x00000deb rtneq  0x00000005 
+ 00009719  0x00000dec arg  0x00000028 , 0x00000002 
+ 00009720  0x00000ded rtneq  0x00000006 
+ 00009721  0x00000dee arg  0x00000014 , 0x00000002 
+ 00009722  0x00000def rtn 
+ 00009723  0x00000df4 bpatchx  0x00000020 , 0x00004024 
+ 00009724  0x00000df5 enable  0x00000010 
+ 00009725  0x00000df6 fetch  0x00000004 , 0x0000018c 
+ 00009726  0x00000df7 iforce  0x00000009 
+ 00009727  0x00000df8 call  0x00002630 
+ 00009728  0x00000df9 setarg  0x00000200 
+ 00009729  0x00000dfa branch  0x00002604 , 0x00000029 
+ 00009730  0x00000dfb fetch  0x00000002 , 0x00000176 
+ 00009731  0x00000dfc rshift  0x0000003f , 0x0000003f 
+ 00009732  0x00000dfe fetcht  0x00000002 , 0x0000003e 
+ 00009733  0x00000dff iadd  0x00000002 , 0x0000003f 
+ 00009734  0x00000e00 call  0x00002343 
+ 00009735  0x00000e01 deposit  0x0000001a 
+ 00009736  0x00000e02 rtn 
+ 00009737  0x00000e06 bpatchx  0x00000021 , 0x00004024 
+ 00009738  0x00000e07 call  0x00007c51 
+ 00009739  0x00000e08 storer  0x00000039 , 0x00000002 , 0x0000069b 
+ 00009740  0x00000e09 add  0x00000011 , 0x00000001 , 0x00000006 
+ 00009741  0x00000e0a ifetch  0x00000001 , 0x00000006 
+ 00009742  0x00000e0b rtnbit0  0x00000000 
+ 00009743  0x00000e0c add  0x00000011 , 0x0000001a , 0x00000005 
+ 00009744  0x00000e0d ifetch  0x00000002 , 0x00000005 
+ 00009745  0x00000e0e increase  0x00000001 , 0x0000003f 
+ 00009746  0x00000e0f istore  0x00000002 , 0x00000005 
+ 00009747  0x00000e10 call  0x000027a2 
+ 00009748  0x00000e11 call  0x000027c4 
+ 00009749  0x00000e12 call  0x000027cd 
+ 00009750  0x00000e13 call  0x0000261a 
+ 00009751  0x00000e14 call  0x00007c60 
+ 00009752  0x00000e15 fetchr  0x00000039 , 0x00000002 , 0x0000069b 
+ 00009753  0x00000e16 rtn 
+ 00009754  0x00000e19 add  0x00000011 , 0x00000019 , 0x00000006 
+ 00009755  0x00000e1a ifetch  0x00000001 , 0x00000006 
+ 00009756  0x00000e1b add  0x00000011 , 0x00000018 , 0x00000005 
+ 00009757  0x00000e1c ifetcht  0x00000001 , 0x00000005 
+ 00009758  0x00000e1d iadd  0x00000002 , 0x0000003f 
+ 00009759  0x00000e1e sub  0x0000003f , 0x00000024 , 0x0000003e 
+ 00009760  0x00000e1f branch  0x00002622 , 0x00000002 
+ 00009761  0x00000e20 increase  0xffffffdb , 0x0000003f 
+ 00009762  0x00000e22 istore  0x00000001 , 0x00000005 
+ 00009763  0x00000e23 rtn 
+ 00009764  0x00000e27 add  0x00000011 , 0x00000030 , 0x00000006 
+ 00009765  0x00000e28 ifetch  0x00000005 , 0x00000006 
+ 00009766  0x00000e29 force  0x00000000 , 0x00000002 
+ 00009767  0x00000e2a force  0x00000025 , 0x00000039 
+ 00009768  0x00000e2c bbit0  0x00000000 , 0x0000262a 
+ 00009769  0x00000e2d increase  0x00000001 , 0x00000002 
+ 00009770  0x00000e2f rshift  0x0000003f , 0x0000003f 
+ 00009771  0x00000e30 loop  0x00002628 
+ 00009772  0x00000e31 add  0x00000002 , 0xffffffff , 0x0000003f 
+ 00009773  0x00000e32 add  0x00000011 , 0x00000022 , 0x00000005 
+ 00009774  0x00000e33 istore  0x00000001 , 0x00000005 
+ 00009775  0x00000e34 rtn 
+ 00009776  0x00000e37 bpatchx  0x00000022 , 0x00004024 
+ 00009777  0x00000e38 fetch  0x00000001 , 0x00000180 
+ 00009778  0x00000e39 iforce  0x00000007 
+ 00009779  0x00000e3a fetcht  0x00000005 , 0x00000198 
+ 00009780  0x00000e3b qisolate1  0x00000002 
+ 00009781  0x00000e3c branch  0x00002645 , 0x00000001 
+ 00009782  0x00000e3e fetch  0x00000001 , 0x0000018a 
+ 00009783  0x00000e3f isub  0x00000007 , 0x0000003f 
+ 00009784  0x00000e40 branch  0x0000263b , 0x00000002 
+ 00009785  0x00000e41 sub  0x0000003f , 0xffffffff , 0x00000007 
+ 00009786  0x00000e42 branch  0x00002636 
+ 00009787  0x00000e44 copy  0x00000007 , 0x00000039 
+ 00009788  0x00000e45 force  0x00000000 , 0x00000007 
+ 00009789  0x00000e47 qisolate1  0x00000002 
+ 00009790  0x00000e48 branch  0x00002640 , 0x00000001 
+ 00009791  0x00000e49 increase  0x00000001 , 0x00000039 
+ 00009792  0x00000e4b deposit  0x00000039 
+ 00009793  0x00000e4c branch  0x00002645 , 0x00000034 
+ 00009794  0x00000e4d increase  0x00000001 , 0x00000007 
+ 00009795  0x00000e4e increase  0xffffffff , 0x00000039 
+ 00009796  0x00000e4f branch  0x0000263d 
+ 00009797  0x00000e51 deposit  0x00000007 
+ 00009798  0x00000e52 store  0x00000001 , 0x00000007 
+ 00009799  0x00000e53 rtn 
+ 00009800  0x00000e57 branch  0x0000264b , 0x00000029 
+ 00009801  0x00000e58 until  0x0000003e , 0x00000003 
+ 00009802  0x00000e59 rtn 
+ 00009803  0x00000e5c arg  0x00000ea0 , 0x0000000b 
+ 00009804  0x00000e5d until  0x00000023 , 0x00000026 
+ 00009805  0x00000e5e rtn 
+ 00009806  0x00000e61 disable  0x00000010 
+ 00009807  0x00000e62 fetch  0x00000002 , 0x00004346 
+ 00009808  0x00000e63 copy  0x0000003f , 0x0000000b 
+ 00009809  0x00000e64 branch  0x00002658 
+ 00009810  0x00000e68 bpatchx  0x00000023 , 0x00004024 
+ 00009811  0x00000e69 call  0x000026be 
+ 00009812  0x00000e6a enable  0x00000010 
+ 00009813  0x00000e6b fetch  0x00000002 , 0x00000176 
+ 00009814  0x00000e6c fetcht  0x00000004 , 0x0000431d 
+ 00009815  0x00000e6d iadd  0x00000002 , 0x0000000b 
+ 00009816  0x00000e6f call  0x000025cc 
+ 00009817  0x00000e71 bpatchx  0x00000024 , 0x00004024 
+ 00009818  0x00000e72 call  0x000025c2 
+ 00009819  0x00000e73 bmark0  0x0000002f , 0x00002660 
+ 00009820  0x00000e74 pulse  0x00000039 
+ 00009821  0x00000e75 nop  0x0000001e 
+ 00009822  0x00000e76 call  0x000025c2 
+ 00009823  0x00000e77 lshift3  0x0000000b , 0x0000000b 
+ 00009824  0x00000e79 disable  0x0000002d 
+ 00009825  0x00000e7a enable  0x0000000d 
+ 00009826  0x00000e7b enable  0x00000021 
+ 00009827  0x00000e7c disable  0x00000020 
+ 00009828  0x00000e7d copy  0x0000000b , 0x0000001b 
+ 00009829  0x00000e7e correlate  0x0000003e , 0x00000003 
+ 00009830  0x00000e7f branch  0x00002669 , 0x0000002e 
+ 00009831  0x00000e80 copy  0x0000001a , 0x00000002 
+ 00009832  0x00000e81 storet  0x00000006 , 0x0000000f 
+ 00009833  0x00000e83 nbranch  0x000026fa , 0x00000018 
+ 00009834  0x00000e84 enable  0x00000010 
+ 00009835  0x00000e85 fetch  0x00000001 , 0x00004167 
+ 00009836  0x00000e86 arg  0x00004e20 , 0x00000002 
+ 00009837  0x00000e87 iadd  0x00000002 , 0x00000002 
+ 00009838  0x00000e88 fetch  0x00000001 , 0x00004148 
+ 00009839  0x00000e89 imul32  0x00000002 , 0x0000001b 
+ 00009840  0x00000e8a call  0x00006877 
+ 00009841  0x00000e8b branch  0x00002677 , 0x0000002e 
+ 00009842  0x00000e8c call  0x000026ff 
+ 00009843  0x00000e8d fetch  0x00000001 , 0x00000168 
+ 00009844  0x00000e8e bbit0  0x00000003 , 0x00002677 
+ 00009845  0x00000e8f fetcht  0x00000006 , 0x0000000f 
+ 00009846  0x00000e90 call  0x00002477 , 0x0000002b 
+ 00009847  0x00000e92 call  0x000022e9 
+ 00009848  0x00000e93 enable  0x00000007 
+ 00009849  0x00000e94 enable  0x00000009 
+ 00009850  0x00000e95 parse  0x00000003 , 0x00000000 , 0x00000008 
+ 00009851  0x00000e96 rshift3  0x0000000c , 0x0000003f 
+ 00009852  0x00000e97 store  0x00000001 , 0x0000004c 
+ 00009853  0x00000e98 parse  0x00000003 , 0x00000000 , 0x00000008 
+ 00009854  0x00000e99 rshift3  0x0000000c , 0x0000003f 
+ 00009855  0x00000e9a store  0x00000001 , 0x0000004d 
+ 00009856  0x00000e9b copy  0x0000003f , 0x00000039 
+ 00009857  0x00000e9c branch  0x0000269d , 0x00000005 
+ 00009858  0x00000e9e bmark1  0x00000032 , 0x00002688 
+ 00009859  0x00000ea1 parse  0x00000003 , 0x00000000 , 0x00000008 
+ 00009860  0x00000ea2 rshift3  0x0000000c , 0x0000003f 
+ 00009861  0x00000ea3 istore  0x00000001 , 0x00000005 
+ 00009862  0x00000ea4 loop  0x00002683 
+ 00009863  0x00000ea5 branch  0x0000269d 
+ 00009864  0x00000ea8 copy  0x00000005 , 0x00000012 
+ 00009865  0x00000ea9 bpatchx  0x00000025 , 0x00004024 
+ 00009866  0x00000eaa call  0x0000281c 
+ 00009867  0x00000eac fetchr  0x00000011 , 0x00000001 , 0x0000004d 
+ 00009868  0x00000ead increase  0xfffffffc , 0x00000011 
+ 00009869  0x00000eae nbranch  0x000026f2 , 0x00000002 
+ 00009870  0x00000eb0 call  0x000026c3 
+ 00009871  0x00000eb1 copy  0x00000012 , 0x00000005 
+ 00009872  0x00000eb2 arg  0x00000000 , 0x00000002 
+ 00009873  0x00000eb3 fetchr  0x00000039 , 0x00000001 , 0x0000004d 
+ 00009874  0x00000eb4 increase  0xfffffffc , 0x00000039 
+ 00009875  0x00000eb5 branch  0x0000269b , 0x00000005 
+ 00009876  0x00000eb8 parse  0x00000003 , 0x00000000 , 0x00000008 
+ 00009877  0x00000eb9 rshift3  0x0000000c , 0x0000003f 
+ 00009878  0x00000eba istore  0x00000001 , 0x00000005 
+ 00009879  0x00000ebb increase  0x00000001 , 0x00000002 
+ 00009880  0x00000ebc and  0x00000002 , 0x0000000f , 0x0000003e 
+ 00009881  0x00000ebd call  0x000026e1 , 0x00000005 
+ 00009882  0x00000ebe loop  0x00002694 
+ 00009883  0x00000ec0 call  0x000026e9 
+ 00009884  0x00000ec1 copy  0x00000012 , 0x00000005 
+ 00009885  0x00000ec5 bpatchx  0x00000026 , 0x00004024 
+ 00009886  0x00000ec6 parse  0x00000003 , 0x00000000 , 0x00000018 
+ 00009887  0x00000ec7 rshift32  0x0000003f , 0x0000003f 
+ 00009888  0x00000ec8 rshift16  0x0000003f , 0x0000003f 
+ 00009889  0x00000ec9 istore  0x00000003 , 0x00000005 
+ 00009890  0x00000eca enable  0x00000010 
+ 00009891  0x00000ecb call  0x0000270d 
+ 00009892  0x00000ecc branch  0x000026f6 , 0x00000006 
+ 00009893  0x00000ecd bmark0  0x00000032 , 0x000026af 
+ 00009894  0x00000ece fetch  0x00000001 , 0x0000004d 
+ 00009895  0x00000ecf branch  0x000026af , 0x00000034 
+ 00009896  0x00000ed0 increase  0xfffffffc , 0x0000003f 
+ 00009897  0x00000ed1 store  0x00000001 , 0x0000004d 
+ 00009898  0x00000ed2 call  0x000072cb 
+ 00009899  0x00000ed3 fetch  0x00000001 , 0x00008108 
+ 00009900  0x00000ed4 bbit0  0x00000007 , 0x000026f2 
+ 00009901  0x00000ed5 force  0x0000000c , 0x00000038 
+ 00009902  0x00000ed6 storer  0x0000002f , 0x00000004 , 0x00000154 
+ 00009903  0x00000ed8 call  0x00006876 
+ 00009904  0x00000ed9 enable  0x0000002d 
+ 00009905  0x00000eda set0  0x00000030 , 0x00000000 
+ 00009906  0x00000edc bpatchx  0x00000027 , 0x00004024 
+ 00009907  0x00000edd call  0x000072cd 
+ 00009908  0x00000ede fetch  0x00000001 , 0x0000019d 
+ 00009909  0x00000edf nsetflag  0x0000003c , 0x00000007 , 0x0000003f 
+ 00009910  0x00000ee0 store  0x00000001 , 0x0000019d 
+ 00009911  0x00000ee1 call  0x000026b9 
+ 00009912  0x00000ee2 branch  0x000026bb 
+ 00009913  0x00000ee5 disable  0x0000000d 
+ 00009914  0x00000ee6 branch  0x00002160 
+ 00009915  0x00000ee9 bpatchx  0x00000028 , 0x00004025 
+ 00009916  0x00000eea fetcht  0x00000001 , 0x00000008 
+ 00009917  0x00000eeb branch  0x000021c6 
+ 00009918  0x00000eef rtnmark0  0x00000032 
+ 00009919  0x00000ef0 call  0x00007368 
+ 00009920  0x00000ef1 force  0x0000000c , 0x00000038 
+ 00009921  0x00000ef2 call  0x00007370 
+ 00009922  0x00000ef3 branch  0x0000736f 
+ 00009923  0x00000ef7 bpatchx  0x00000029 , 0x00004025 
+ 00009924  0x00000ef8 jam  0x00000000 , 0x0000806c 
+ 00009925  0x00000ef9 jam  0x00000001 , 0x0000806d 
+ 00009926  0x00000efa fetch  0x00000001 , 0x0000004c 
+ 00009927  0x00000efb and_into  0x00000003 , 0x0000003f 
+ 00009928  0x00000efc store  0x00000001 , 0x0000806e 
+ 00009929  0x00000efe setarg  0x0000004e 
+ 00009930  0x00000eff store  0x00000002 , 0x00008068 
+ 00009931  0x00000f00 store  0x00000002 , 0x0000806a 
+ 00009932  0x00000f02 fetchr  0x00000011 , 0x00000001 , 0x0000004d 
+ 00009933  0x00000f03 increase  0xfffffffc , 0x00000011 
+ 00009934  0x00000f05 fetcht  0x00000005 , 0x00004455 
+ 00009935  0x00000f06 isolate1  0x0000000f , 0x00000000 
+ 00009936  0x00000f07 call  0x000026d7 , 0x00000001 
+ 00009937  0x00000f08 call  0x00007265 
+ 00009938  0x00000f09 setarg  0x00000000 
+ 00009939  0x00000f0a store  0x00000002 , 0x000080c0 
+ 00009940  0x00000f0b jam  0x00000006 , 0x0000800a 
+ 00009941  0x00000f0c jam  0x00000007 , 0x0000800a 
+ 00009942  0x00000f0d rtn 
+ 00009943  0x00000f10 sub  0x00000002 , 0x00000000 , 0x0000003e 
+ 00009944  0x00000f11 branch  0x000026dc , 0x00000005 
+ 00009945  0x00000f12 increase  0xffffffff , 0x00000002 
+ 00009946  0x00000f13 set1  0x00000027 , 0x00000002 
+ 00009947  0x00000f14 rtn 
+ 00009948  0x00000f17 setarg  0x00ffffff 
+ 00009949  0x00000f18 lshift16  0x0000003f , 0x0000003f 
+ 00009950  0x00000f19 arg  0x0000ffff , 0x00000002 
+ 00009951  0x00000f1a ior  0x00000002 , 0x00000002 
+ 00009952  0x00000f1b rtn 
+ 00009953  0x00000f1e copy  0x00000005 , 0x00000012 
+ 00009954  0x00000f1f fetch  0x00000001 , 0x0000004d 
+ 00009955  0x00000f20 increase  0xfffffffc , 0x0000003f 
+ 00009956  0x00000f21 isub  0x00000002 , 0x0000003e 
+ 00009957  0x00000f22 rtn  0x00000005 
+ 00009958  0x00000f23 storet  0x00000002 , 0x000080c0 
+ 00009959  0x00000f24 copy  0x00000012 , 0x00000005 
+ 00009960  0x00000f25 rtn 
+ 00009961  0x00000f28 parse  0x00000003 , 0x00000000 , 0x00000020 
+ 00009962  0x00000f29 rshift32  0x0000003f , 0x0000003f 
+ 00009963  0x00000f2a rshift8  0x0000003f , 0x0000003f 
+ 00009964  0x00000f2b istore  0x00000004 , 0x00000005 
+ 00009965  0x00000f2c copy  0x00000005 , 0x00000012 
+ 00009966  0x00000f2e force  0x00000000 , 0x00000038 
+ 00009967  0x00000f2f copy  0x0000003f , 0x0000002f 
+ 00009968  0x00000f30 storet  0x00000002 , 0x000080c0 
+ 00009969  0x00000f31 rtn 
+ 00009970  0x00000f34 branch  0x000026fc 
+ 00009971  0x00000f37 call  0x0000270d 
+ 00009972  0x00000f38 call  0x000020cf 
+ 00009973  0x00000f39 branch  0x000026af 
+ 00009974  0x00000f3c call  0x00006878 
+ 00009975  0x00000f3d bmark1  0x00000030 , 0x000026fa 
+ 00009976  0x00000f3e set1  0x00000030 , 0x00000000 
+ 00009977  0x00000f3f branch  0x000026b2 
+ 00009978  0x00000f43 set0  0x00000030 , 0x00000000 
+ 00009979  0x00000f44 branch  0x000026fc 
+ 00009980  0x00000f47 bpatchx  0x0000002a , 0x00004025 
+ 00009981  0x00000f48 call  0x000072cd 
+ 00009982  0x00000f49 branch  0x000020cf 
+ 00009983  0x00000f4c bmark1  0x0000002f , 0x00002705 
+ 00009984  0x00000f4d bmark1  0x0000002d , 0x00002709 
+ 00009985  0x00000f4e fetch  0x00000002 , 0x00000046 
+ 00009986  0x00000f4f copy  0x0000003f , 0x00000029 
+ 00009987  0x00000f50 copy  0x00000021 , 0x00000028 
+ 00009988  0x00000f51 rtn 
+ 00009989  0x00000f55 fetch  0x00000002 , 0x0000004a 
+ 00009990  0x00000f56 copy  0x0000003f , 0x00000029 
+ 00009991  0x00000f57 add  0x00000021 , 0x00000001 , 0x00000028 
+ 00009992  0x00000f58 rtn 
+ 00009993  0x00000f5b fetch  0x00000002 , 0x00000048 
+ 00009994  0x00000f5c copy  0x0000003f , 0x00000029 
+ 00009995  0x00000f5d copy  0x00000021 , 0x00000028 
+ 00009996  0x00000f5e rtn 
+ 00009997  0x00000f62 fetch  0x00000001 , 0x0000004d 
+ 00009998  0x00000f63 add  0x0000003f , 0x00000005 , 0x00000002 
+ 00009999  0x00000f64 lshift3  0x00000002 , 0x00000002 
+ 00010000  0x00000f65 fetch  0x00000001 , 0x0000019d 
+ 00010001  0x00000f66 bmark1  0x0000002f , 0x00002714 
+ 00010002  0x00000f67 bbit1  0x00000000 , 0x00002716 
+ 00010003  0x00000f68 bbit1  0x00000001 , 0x00002717 
+ 00010004  0x00000f6a branch  0x00002719 , 0x0000003c 
+ 00010005  0x00000f6b branch  0x0000271c 
+ 00010006  0x00000f6e branch  0x00002721 
+ 00010007  0x00000f71 rshift  0x00000002 , 0x00000002 
+ 00010008  0x00000f72 branch  0x00002721 
+ 00010009  0x00000f75 add  0x00000002 , 0x00000003 , 0x00000002 
+ 00010010  0x00000f76 lshift  0x00000002 , 0x00000002 
+ 00010011  0x00000f77 branch  0x0000271e 
+ 00010012  0x00000f7a add  0x00000002 , 0x00000003 , 0x00000002 
+ 00010013  0x00000f7b lshift3  0x00000002 , 0x00000002 
+ 00010014  0x00000f7d setarg  0x00000028 
+ 00010015  0x00000f7e iadd  0x00000002 , 0x00000002 
+ 00010016  0x00000f7f branch  0x00002721 
+ 00010017  0x00000f82 fetch  0x00000001 , 0x00004148 
+ 00010018  0x00000f83 imul32  0x00000002 , 0x00000002 
+ 00010019  0x00000f84 arg  0x00004e20 , 0x00000011 
+ 00010020  0x00000f85 imul32  0x00000011 , 0x0000003f 
+ 00010021  0x00000f86 isub  0x00000002 , 0x00000002 
+ 00010022  0x00000f87 copy  0x0000001b , 0x0000003f 
+ 00010023  0x00000f88 isub  0x00000002 , 0x0000001b 
+ 00010024  0x00000f89 rtn 
+ 00010025  0x00000f8c call  0x00002741 
+ 00010026  0x00000f8d fetcht  0x00000001 , 0x00000008 
+ 00010027  0x00000f8e call  0x0000216f 
+ 00010028  0x00000f8f call  0x000021a6 
+ 00010029  0x00000f90 enable  0x00000010 
+ 00010030  0x00000f91 arg  0x0000157c , 0x0000000b 
+ 00010031  0x00000f92 branch  0x00002659 
+ 00010032  0x00000f96 bpatchx  0x0000002b , 0x00004025 
+ 00010033  0x00000f97 fetch  0x00000001 , 0x0000019e 
+ 00010034  0x00000f98 call  0x000025a4 
+ 00010035  0x00000f99 call  0x00002741 
+ 00010036  0x00000f9b fetch  0x00000001 , 0x0000019d 
+ 00010037  0x00000f9c call  0x000025a4 
+ 00010038  0x00000f9e fetcht  0x00000001 , 0x00000008 
+ 00010039  0x00000f9f call  0x0000216f 
+ 00010040  0x00000fa0 call  0x000021a6 
+ 00010041  0x00000fa1 enable  0x00000010 
+ 00010042  0x00000fa2 arg  0x0000157c , 0x0000000b 
+ 00010043  0x00000fa3 bmark0  0x0000002f , 0x00002659 
+ 00010044  0x00000fa4 arg  0x00002134 , 0x0000000b 
+ 00010045  0x00000fa5 branch  0x00002659 
+ 00010046  0x00000fa8 bpatchx  0x0000002c , 0x00004025 
+ 00010047  0x00000fa9 call  0x00002741 
+ 00010048  0x00000faa branch  0x000020cf 
+ 00010049  0x00000fad bpatchx  0x0000002d , 0x00004025 
+ 00010050  0x00000fae call  0x000025c2 
+ 00010051  0x00000faf call  0x000025d1 
+ 00010052  0x00000fb0 call  0x0000687d 
+ 00010053  0x00000fb1 set1  0x00000000 , 0x00000015 
+ 00010054  0x00000fb2 enable  0x0000001d 
+ 00010055  0x00000fb3 enable  0x00000020 
+ 00010056  0x00000fb4 disable  0x00000021 
+ 00010057  0x00000fb5 call  0x00002648 
+ 00010058  0x00000fb6 disable  0x0000003a 
+ 00010059  0x00000fb7 bmark1  0x0000002f , 0x00002784 
+ 00010060  0x00000fb8 bmark1  0x0000002d , 0x00002796 
+ 00010061  0x00000fb9 rshift16  0x00000009 , 0x0000003f 
+ 00010062  0x00000fba rshift8  0x0000003f , 0x0000003f 
+ 00010063  0x00000fbb rshift4  0x0000003f , 0x0000003f 
+ 00010064  0x00000fbc inject  0x00000003 , 0x00000028 
+ 00010065  0x00000fbe enable  0x00000007 
+ 00010066  0x00000fbf enable  0x00000009 
+ 00010067  0x00000fc0 bpatchx  0x0000002e , 0x00004025 
+ 00010068  0x00000fc1 fetch  0x00000001 , 0x00004169 
+ 00010069  0x00000fc2 inject  0x00000003 , 0x00000008 
+ 00010070  0x00000fc3 ifetch  0x00000001 , 0x00000006 
+ 00010071  0x00000fc4 copy  0x0000003f , 0x00000039 
+ 00010072  0x00000fc5 inject  0x00000003 , 0x00000008 
+ 00010073  0x00000fc6 sub  0x00000039 , 0x00000000 , 0x0000003e 
+ 00010074  0x00000fc7 branch  0x00002762 , 0x00000005 
+ 00010075  0x00000fc9 fetch  0x00000001 , 0x0000800a 
+ 00010076  0x00000fca branch  0x0000275e , 0x00000034 
+ 00010077  0x00000fcb bmark1  0x00000032 , 0x00002779 
+ 00010078  0x00000fcd arg  0x0000416b , 0x00000006 
+ 00010079  0x00000fcf ifetch  0x00000001 , 0x00000006 
+ 00010080  0x00000fd0 inject  0x00000003 , 0x00000008 
+ 00010081  0x00000fd1 loop  0x0000275f 
+ 00010082  0x00000fd4 enable  0x00000008 
+ 00010083  0x00000fd5 inject  0x00000003 , 0x00000018 
+ 00010084  0x00000fd6 disable  0x00000008 
+ 00010085  0x00000fd7 bmark0  0x0000002f , 0x00002769 
+ 00010086  0x00000fd8 disable  0x00000007 
+ 00010087  0x00000fd9 setarg  0x00000000 
+ 00010088  0x00000fda inject  0x00000003 , 0x00000003 
+ 00010089  0x00000fdc until  0x0000003e , 0x00000027 
+ 00010090  0x00000fdd nop  0x00000064 
+ 00010091  0x00000fde bpatchx  0x0000002f , 0x00004025 
+ 00010092  0x00000fdf disable  0x0000001d 
+ 00010093  0x00000fe0 disable  0x00000038 
+ 00010094  0x00000fe1 call  0x00002160 
+ 00010095  0x00000fe2 call  0x0000687b 
+ 00010096  0x00000fe4 fetch  0x00000001 , 0x00004169 
+ 00010097  0x00000fe5 and  0x0000003f , 0x00000003 , 0x0000003f 
+ 00010098  0x00000fe6 rtnne  0x00000003 
+ 00010099  0x00000fe7 fetch  0x00000001 , 0x000042fd 
+ 00010100  0x00000fe8 beq  0x00000002 , 0x0000285c 
+ 00010101  0x00000fe9 rtnne  0x00000005 
+ 00010102  0x00000fea fetch  0x00000001 , 0x0000416b 
+ 00010103  0x00000feb beq  0x00000005 , 0x00002857 
+ 00010104  0x00000fec rtn 
+ 00010105  0x00000ff0 increase  0xfffffffc , 0x00000039 
+ 00010106  0x00000ff1 copy  0x00000039 , 0x00000002 
+ 00010107  0x00000ff2 call  0x000072b8 
+ 00010108  0x00000ff3 arg  0x0000416b , 0x00000006 
+ 00010109  0x00000ff5 ifetch  0x00000001 , 0x00000006 
+ 00010110  0x00000ff6 inject  0x00000003 , 0x00000008 
+ 00010111  0x00000ff7 loop  0x0000277d 
+ 00010112  0x00000ff8 call  0x000072bd 
+ 00010113  0x00000ff9 copy  0x0000002f , 0x0000003f 
+ 00010114  0x00000ffa inject  0x00000003 , 0x00000020 
+ 00010115  0x00000ffb branch  0x00002762 
+ 00010116  0x00000ffe arg  0x0000000a , 0x00000039 
+ 00010117  0x00001000 setarg  0x0000003c 
+ 00010118  0x00001001 inject  0x00000003 , 0x00000008 
+ 00010119  0x00001002 loop  0x00002785 
+ 00010120  0x00001003 disable  0x0000001d 
+ 00010121  0x00001004 enable  0x00000038 
+ 00010122  0x00001005 rshift16  0x00000009 , 0x0000003f 
+ 00010123  0x00001006 rshift16  0x0000003f , 0x0000003f 
+ 00010124  0x00001007 rshift4  0x0000003f , 0x0000003f 
+ 00010125  0x00001008 inject  0x00000003 , 0x00000020 
+ 00010126  0x00001009 bmark1  0x0000002e , 0x00002793 
+ 00010127  0x0000100b setarg  0x00000001 
+ 00010128  0x0000100c inject  0x00000003 , 0x00000005 
+ 00010129  0x0000100d enable  0x0000003a 
+ 00010130  0x0000100e branch  0x00002751 
+ 00010131  0x00001011 setarg  0x00000000 
+ 00010132  0x00001012 inject  0x00000003 , 0x00000005 
+ 00010133  0x00001013 branch  0x00002751 
+ 00010134  0x00001016 fetch  0x00000001 , 0x00004148 
+ 00010135  0x00001017 fetcht  0x00000001 , 0x00004168 
+ 00010136  0x00001018 iadd  0x00000002 , 0x0000003f 
+ 00010137  0x00001019 call  0x0000235c 
+ 00010138  0x0000101a rshift16  0x00000009 , 0x0000003f 
+ 00010139  0x0000101b rshift8  0x0000003f , 0x0000003f 
+ 00010140  0x0000101c rshift4  0x0000003f , 0x00000002 
+ 00010141  0x0000101d copy  0x00000002 , 0x0000003f 
+ 00010142  0x0000101e inject  0x00000003 , 0x00000008 
+ 00010143  0x0000101f copy  0x00000002 , 0x0000003f 
+ 00010144  0x00001020 inject  0x00000003 , 0x00000028 
+ 00010145  0x00001021 branch  0x00002751 
+ 00010146  0x00001025 arg  0x000027a6 , 0x00000013 
+ 00010147  0x00001026 arg  0x000027bc , 0x00000012 
+ 00010148  0x00001027 arg  0x00000005 , 0x00000007 
+ 00010149  0x00001028 branch  0x000027fb 
+ 00010150  0x0000102b add  0x00000011 , 0x00000004 , 0x00000006 
+ 00010151  0x0000102c ifetcht  0x00000004 , 0x00000006 
+ 00010152  0x0000102d add  0x00000011 , 0x00000037 , 0x00000006 
+ 00010153  0x0000102e ifetch  0x00000001 , 0x00000006 
+ 00010154  0x0000102f add  0x00000011 , 0x0000002b , 0x00000005 
+ 00010155  0x00001030 istore  0x00000001 , 0x00000005 
+ 00010156  0x00001031 ifetch  0x00000002 , 0x00000006 
+ 00010157  0x00001032 lshift2  0x0000003f , 0x0000003f 
+ 00010158  0x00001033 iadd  0x00000002 , 0x0000000b 
+ 00010159  0x00001034 add  0x00000011 , 0x00000004 , 0x00000005 
+ 00010160  0x00001035 deposit  0x0000000b 
+ 00010161  0x00001036 istore  0x00000004 , 0x00000005 
+ 00010162  0x00001037 ifetch  0x00000002 , 0x00000006 
+ 00010163  0x00001038 lshift2  0x0000003f , 0x0000003f 
+ 00010164  0x00001039 add  0x00000011 , 0x00000002 , 0x00000005 
+ 00010165  0x0000103a istore  0x00000002 , 0x00000005 
+ 00010166  0x0000103b ifetch  0x00000002 , 0x00000006 
+ 00010167  0x0000103c add  0x00000011 , 0x0000002c , 0x00000005 
+ 00010168  0x0000103d istore  0x00000002 , 0x00000005 
+ 00010169  0x0000103e ifetch  0x00000002 , 0x00000006 
+ 00010170  0x0000103f store  0x00000002 , 0x000042f5 
+ 00010171  0x00001040 branch  0x00002938 
+ 00010172  0x00001043 ifetch  0x00000001 , 0x00000011 
+ 00010173  0x00001044 set0  0x00000003 , 0x0000003f 
+ 00010174  0x00001045 istore  0x00000001 , 0x00000011 
+ 00010175  0x00001046 storer  0x00000011 , 0x00000002 , 0x00000684 
+ 00010176  0x00001047 jam  0x00000044 , 0x0000066f 
+ 00010177  0x00001048 call  0x0000782b 
+ 00010178  0x00001049 fetchr  0x00000011 , 0x00000002 , 0x00000684 
+ 00010179  0x0000104a rtn 
+ 00010180  0x0000104d arg  0x00000000 , 0x00000013 
+ 00010181  0x0000104e arg  0x000027c8 , 0x00000012 
+ 00010182  0x0000104f arg  0x00000006 , 0x00000007 
+ 00010183  0x00001050 branch  0x000027fb 
+ 00010184  0x00001053 add  0x00000011 , 0x00000037 , 0x00000006 
+ 00010185  0x00001054 ifetch  0x00000005 , 0x00000006 
+ 00010186  0x00001055 add  0x00000011 , 0x00000030 , 0x00000005 
+ 00010187  0x00001056 istore  0x00000005 , 0x00000005 
+ 00010188  0x00001057 branch  0x00002624 
+ 00010189  0x0000105b arg  0x00000000 , 0x00000013 
+ 00010190  0x0000105c arg  0x000027d1 , 0x00000012 
+ 00010191  0x0000105d arg  0x00000007 , 0x00000007 
+ 00010192  0x0000105e branch  0x000027fb 
+ 00010193  0x00001061 add  0x00000011 , 0x00000037 , 0x00000006 
+ 00010194  0x00001062 ifetch  0x00000001 , 0x00000006 
+ 00010195  0x00001063 call  0x000027de 
+ 00010196  0x00001064 istore  0x00000001 , 0x00000005 
+ 00010197  0x00001065 add  0x00000011 , 0x00000038 , 0x00000006 
+ 00010198  0x00001066 ifetch  0x00000001 , 0x00000006 
+ 00010199  0x00001067 call  0x000027ec 
+ 00010200  0x00001068 istore  0x00000001 , 0x00000005 
+ 00010201  0x00001069 storer  0x00000011 , 0x00000002 , 0x00000684 
+ 00010202  0x0000106a jam  0x00000042 , 0x0000066f 
+ 00010203  0x0000106b call  0x0000782b 
+ 00010204  0x0000106c fetchr  0x00000011 , 0x00000002 , 0x00000684 
+ 00010205  0x0000106d rtn 
+ 00010206  0x00001070 call  0x000027e6 , 0x00000034 
+ 00010207  0x00001071 add  0x00000011 , 0x00000035 , 0x00000005 
+ 00010208  0x00001072 nrtn  0x00000029 
+ 00010209  0x00001073 fetcht  0x00000001 , 0x000043b6 
+ 00010210  0x00001074 isolate1  0x00000007 , 0x00000002 
+ 00010211  0x00001075 setflag  0x00000001 , 0x00000007 , 0x0000003f 
+ 00010212  0x00001076 add  0x00000011 , 0x00000036 , 0x00000005 
+ 00010213  0x00001077 rtn 
+ 00010214  0x0000107a add  0x00000011 , 0x00000035 , 0x00000006 
+ 00010215  0x0000107b ifetch  0x00000001 , 0x00000006 
+ 00010216  0x0000107c nrtn  0x00000029 
+ 00010217  0x0000107d add  0x00000011 , 0x00000036 , 0x00000006 
+ 00010218  0x0000107e ifetch  0x00000001 , 0x00000006 
+ 00010219  0x0000107f rtn 
+ 00010220  0x00001082 call  0x000027f5 , 0x00000034 
+ 00010221  0x00001083 fetcht  0x00000001 , 0x000043b6 
+ 00010222  0x00001084 isolate1  0x00000007 , 0x00000002 
+ 00010223  0x00001085 setflag  0x00000001 , 0x00000007 , 0x0000003f 
+ 00010224  0x00001086 add  0x00000011 , 0x00000036 , 0x00000005 
+ 00010225  0x00001087 nrtn  0x00000029 
+ 00010226  0x00001088 set0  0x00000007 , 0x0000003f 
+ 00010227  0x00001089 add  0x00000011 , 0x00000035 , 0x00000005 
+ 00010228  0x0000108a rtn 
+ 00010229  0x0000108d add  0x00000011 , 0x00000036 , 0x00000006 
+ 00010230  0x0000108e ifetch  0x00000001 , 0x00000006 
+ 00010231  0x0000108f nrtn  0x00000029 
+ 00010232  0x00001090 add  0x00000011 , 0x00000035 , 0x00000006 
+ 00010233  0x00001091 ifetch  0x00000001 , 0x00000006 
+ 00010234  0x00001092 rtn 
+ 00010235  0x00001098 bpatchx  0x00000030 , 0x00004026 
+ 00010236  0x00001099 ifetch  0x00000001 , 0x00000011 
+ 00010237  0x0000109a qisolate0  0x0000003f 
+ 00010238  0x0000109b rtn  0x00000001 
+ 00010239  0x0000109c add  0x00000011 , 0x0000001a , 0x00000006 
+ 00010240  0x0000109d ifetcht  0x00000002 , 0x00000006 
+ 00010241  0x0000109e add  0x00000011 , 0x00000020 , 0x00000006 
+ 00010242  0x0000109f ifetch  0x00000002 , 0x00000006 
+ 00010243  0x000010a1 isub  0x00000002 , 0x0000003f 
+ 00010244  0x000010a2 branch  0x0000280b , 0x00000005 
+ 00010245  0x000010a3 nbranch  0x00002810 , 0x00000002 
+ 00010246  0x000010a4 sub  0x0000003f , 0x00000001 , 0x0000003e 
+ 00010247  0x000010a5 branch  0x00002809 , 0x00000005 
+ 00010248  0x000010a6 rtn 
+ 00010249  0x000010a9 copy  0x00000013 , 0x0000003f 
+ 00010250  0x000010aa branch  0x00007d79 
+ 00010251  0x000010ad ifetch  0x00000001 , 0x00000011 
+ 00010252  0x000010ae qset0  0x0000003f 
+ 00010253  0x000010af istore  0x00000001 , 0x00000011 
+ 00010254  0x000010b0 copy  0x00000012 , 0x0000003f 
+ 00010255  0x000010b1 branch  0x00007d79 
+ 00010256  0x000010b4 add  0x00000011 , 0x0000001a , 0x00000006 
+ 00010257  0x000010b5 ifetch  0x00000002 , 0x00000006 
+ 00010258  0x000010b6 add  0x00000011 , 0x00000020 , 0x00000006 
+ 00010259  0x000010b7 ifetch  0x00000002 , 0x00000006 
+ 00010260  0x000010b8 isub  0x00000002 , 0x0000003f 
+ 00010261  0x000010b9 arg  0x0000ffff , 0x00000002 
+ 00010262  0x000010ba isub  0x00000002 , 0x0000003e 
+ 00010263  0x000010bb branch  0x0000280b , 0x00000005 
+ 00010264  0x000010bc arg  0x0000f000 , 0x00000002 
+ 00010265  0x000010bd isub  0x00000002 , 0x0000003e 
+ 00010266  0x000010be nbranch  0x0000280b , 0x00000002 
+ 00010267  0x000010bf rtn 
+ 00010268  0x000010c3 fetcht  0x00000001 , 0x0000017f 
+ 00010269  0x000010c4 fetch  0x00000001 , 0x0000004c 
+ 00010270  0x000010c7 rshift  0x0000003f , 0x0000003f 
+ 00010271  0x000010c8 ixor  0x00000002 , 0x0000003f 
+ 00010272  0x000010c9 isolate1  0x00000002 , 0x0000003f 
+ 00010273  0x000010ca setflag  0x00000001 , 0x0000000f , 0x00000000 
+ 00010274  0x000010cb rtn 
+ 00010275  0x000010cf bpatchx  0x00000031 , 0x00004026 
+ 00010276  0x000010d0 call  0x00002935 
+ 00010277  0x000010d1 rtnmark1  0x00000030 
+ 00010278  0x000010d2 call  0x0000284a 
+ 00010279  0x000010d3 fetch  0x00000001 , 0x0000004c 
+ 00010280  0x000010d4 isolate1  0x00000004 , 0x0000003f 
+ 00010281  0x000010d5 setflag  0x00000001 , 0x0000002a , 0x00000000 
+ 00010282  0x000010d6 rshift  0x0000003f , 0x0000003f 
+ 00010283  0x000010d7 ixor  0x00000002 , 0x0000003f 
+ 00010284  0x000010d8 isolate1  0x00000002 , 0x0000003f 
+ 00010285  0x000010d9 setflag  0x00000001 , 0x0000000f , 0x00000000 
+ 00010286  0x000010da rtnmark1  0x0000000f 
+ 00010287  0x000010db fetch  0x00000001 , 0x0000004d 
+ 00010288  0x000010dc branch  0x0000283c , 0x00000034 
+ 00010289  0x000010dd fetch  0x00000001 , 0x00000168 
+ 00010290  0x000010de bbit0  0x00000004 , 0x0000283c 
+ 00010291  0x000010df fetcht  0x00000004 , 0x00000154 
+ 00010292  0x000010e0 fetch  0x00000004 , 0x0000445a 
+ 00010293  0x000010e1 isub  0x00000002 , 0x0000003e 
+ 00010294  0x000010e2 branch  0x0000235a , 0x00000005 
+ 00010295  0x000010e3 storet  0x00000004 , 0x0000445a 
+ 00010296  0x000010e4 fetch  0x00000005 , 0x00004455 
+ 00010297  0x000010e5 increase  0x00000001 , 0x0000003f 
+ 00010298  0x000010e6 set1  0x00000027 , 0x0000003f 
+ 00010299  0x000010e7 store  0x00000005 , 0x00004455 
+ 00010300  0x000010ea fetcht  0x00000001 , 0x0000017f 
+ 00010301  0x000010eb setflip  0x00000002 , 0x00000002 
+ 00010302  0x000010ec storet  0x00000001 , 0x0000017f 
+ 00010303  0x000010ed fetch  0x00000001 , 0x00004321 
+ 00010304  0x000010ee rtnbit0  0x00000006 
+ 00010305  0x000010ef bpatchx  0x00000032 , 0x00004026 
+ 00010306  0x000010f0 fetch  0x00000001 , 0x0000004d 
+ 00010307  0x000010f1 rtn  0x00000034 
+ 00010308  0x000010f2 fetch  0x00000001 , 0x0000004c 
+ 00010309  0x000010f3 compare  0x00000001 , 0x0000003f , 0x00000003 
+ 00010310  0x000010f4 branch  0x00002e65 , 0x00000001 
+ 00010311  0x000010f5 compare  0x00000002 , 0x0000003f , 0x00000003 
+ 00010312  0x000010f6 branch  0x00002e53 , 0x00000001 
+ 00010313  0x000010f7 rtn 
+ 00010314  0x000010fb bpatchx  0x00000033 , 0x00004026 
+ 00010315  0x000010fc fetcht  0x00000001 , 0x0000017f 
+ 00010316  0x000010fd isolate0  0x00000005 , 0x00000002 
+ 00010317  0x000010fe rtn  0x00000001 
+ 00010318  0x000010ff fetch  0x00000001 , 0x0000004c 
+ 00010319  0x00001100 lshift  0x0000003f , 0x0000003f 
+ 00010320  0x00001101 ixor  0x00000002 , 0x0000003f 
+ 00010321  0x00001102 rtnbit0  0x00000003 
+ 00010322  0x00001103 set0  0x00000005 , 0x00000002 
+ 00010323  0x00001104 setflip  0x00000003 , 0x00000002 
+ 00010324  0x00001105 storet  0x00000001 , 0x0000017f 
+ 00010325  0x00001106 compare  0x00000003 , 0x00000002 , 0x00000003 
+ 00010326  0x00001108 rtn 
+ 00010327  0x0000110c fetch  0x00000001 , 0x00000168 
+ 00010328  0x0000110d set1  0x00000004 , 0x0000003f 
+ 00010329  0x0000110e store  0x00000001 , 0x00000168 
+ 00010330  0x0000110f set1  0x00000032 , 0x00000000 
+ 00010331  0x00001110 rtn 
+ 00010332  0x00001113 bpatchx  0x00000034 , 0x00004026 
+ 00010333  0x00001114 jam  0x00000000 , 0x000042fd 
+ 00010334  0x00001115 arg  0x00000000 , 0x0000003f 
+ 00010335  0x00001116 store  0x00000004 , 0x0000445a 
+ 00010336  0x00001117 store  0x00000005 , 0x00004450 
+ 00010337  0x00001118 set1  0x00000027 , 0x0000003f 
+ 00010338  0x00001119 store  0x00000005 , 0x00004455 
+ 00010339  0x0000111a fetch  0x00000001 , 0x00000168 
+ 00010340  0x0000111b set0  0x00000004 , 0x0000003f 
+ 00010341  0x0000111c store  0x00000001 , 0x00000168 
+ 00010342  0x0000111d set0  0x00000032 , 0x00000000 
+ 00010343  0x0000111e rtn 
+ 00010344  0x00001124 arg  0x00000001 , 0x00000011 
+ 00010345  0x00001125 fetch  0x00000001 , 0x0000004c 
+ 00010346  0x00001126 rtnbit1  0x00000006 
+ 00010347  0x00001127 arg  0x00000000 , 0x00000011 
+ 00010348  0x00001128 rtn 
+ 00010349  0x0000112c copy  0x00000006 , 0x00000005 
+ 00010350  0x0000112d fetcht  0x00000002 , 0x000043b8 
+ 00010351  0x0000112e copy  0x00000005 , 0x00000006 
+ 00010352  0x0000112f rtn 
+ 00010353  0x00001133 bpatchx  0x00000035 , 0x00004026 
+ 00010354  0x00001134 fetch  0x00000001 , 0x0000017f 
+ 00010355  0x00001135 rtnbit1  0x00000005 
+ 00010356  0x00001136 call  0x00002892 
+ 00010357  0x00001137 call  0x00002a10 
+ 00010358  0x00001138 branch  0x000028b6 , 0x00000034 
+ 00010359  0x00001139 ifetch  0x00000002 , 0x00000006 
+ 00010360  0x0000113a ifetcht  0x00000002 , 0x00000006 
+ 00010361  0x0000113b copy  0x00000002 , 0x00000011 
+ 00010362  0x0000113c isub  0x00000011 , 0x0000003f 
+ 00010363  0x0000113d call  0x0000286d 
+ 00010364  0x0000113e call  0x00007db0 
+ 00010365  0x0000113f copy  0x0000003f , 0x00000002 
+ 00010366  0x00001140 ifetchr  0x00000001 , 0x00000001 , 0x00000006 
+ 00010367  0x00001141 copy  0x00000011 , 0x0000003f 
+ 00010368  0x00001142 iadd  0x00000006 , 0x0000003f 
+ 00010369  0x00001143 store  0x00000002 , 0x0000068f 
+ 00010370  0x00001144 call  0x000028a6 
+ 00010371  0x00001145 call  0x000028b8 
+ 00010372  0x00001147 call  0x00002a10 
+ 00010373  0x00001148 ifetch  0x00000002 , 0x00000006 
+ 00010374  0x00001149 copy  0x0000003f , 0x00000011 
+ 00010375  0x0000114a copy  0x00000006 , 0x00000013 
+ 00010376  0x0000114b ifetcht  0x00000002 , 0x00000006 
+ 00010377  0x0000114c copy  0x00000002 , 0x00000012 
+ 00010378  0x0000114d isub  0x00000012 , 0x0000003f 
+ 00010379  0x0000114e call  0x0000286d 
+ 00010380  0x0000114f call  0x00007db0 
+ 00010381  0x00001150 iadd  0x00000012 , 0x0000003f 
+ 00010382  0x00001151 istore  0x00000002 , 0x00000013 
+ 00010383  0x00001152 isub  0x00000011 , 0x0000003e 
+ 00010384  0x00001153 nrtn  0x00000005 
+ 00010385  0x00001154 branch  0x00002a2a 
+ 00010386  0x00001158 call  0x00002899 
+ 00010387  0x00001159 rtnmark1  0x00000029 
+ 00010388  0x0000115a fetch  0x00000001 , 0x00004321 
+ 00010389  0x0000115b bbit0  0x00000002 , 0x000028a4 
+ 00010390  0x0000115c call  0x00002a14 
+ 00010391  0x0000115d branch  0x000028a4 , 0x00000034 
+ 00010392  0x0000115e branch  0x000028a2 
+ 00010393  0x00001162 call  0x00002a10 
+ 00010394  0x00001163 branch  0x000028a4 , 0x00000034 
+ 00010395  0x00001164 ifetch  0x00000002 , 0x00000006 
+ 00010396  0x00001165 ifetcht  0x00000002 , 0x00000006 
+ 00010397  0x00001166 isub  0x00000002 , 0x00000011 
+ 00010398  0x00001167 call  0x0000286d 
+ 00010399  0x00001168 copy  0x00000002 , 0x0000003f 
+ 00010400  0x00001169 isub  0x00000011 , 0x0000003e 
+ 00010401  0x0000116a branch  0x000028a4 , 0x00000002 
+ 00010402  0x0000116c set1  0x00000029 , 0x00000000 
+ 00010403  0x0000116d rtn 
+ 00010404  0x00001170 set0  0x00000029 , 0x00000000 
+ 00010405  0x00001171 rtn 
+ 00010406  0x00001174 copy  0x00000011 , 0x0000003f 
+ 00010407  0x00001175 rtn  0x00000034 
+ 00010408  0x00001176 arg  0x00000001 , 0x00000001 
+ 00010409  0x00001177 rtn 
+ 00010410  0x0000117b bpatchx  0x00000036 , 0x00004026 
+ 00010411  0x0000117c increase  0x00000001 , 0x00000002 
+ 00010412  0x0000117d call  0x00002ccf 
+ 00010413  0x0000117e increase  0xfffffffe , 0x00000006 
+ 00010414  0x0000117f ifetch  0x00000002 , 0x00000006 
+ 00010415  0x00001180 arg  0x00002902 , 0x00000002 
+ 00010416  0x00001181 isub  0x00000002 , 0x0000003e 
+ 00010417  0x00001182 nrtn  0x00000005 
+ 00010418  0x00001183 increase  0x00000001 , 0x00000006 
+ 00010419  0x00001184 copy  0x00000006 , 0x00000011 
+ 00010420  0x00001185 ifetch  0x00000001 , 0x00000006 
+ 00010421  0x00001186 rtn 
+ 00010422  0x0000118a force  0x00000000 , 0x00000002 
+ 00010423  0x0000118b force  0x00000001 , 0x00000001 
+ 00010424  0x0000118e bpatchx  0x00000037 , 0x00004026 
+ 00010425  0x0000118f storet  0x00000001 , 0x0000416a 
+ 00010426  0x00001190 fetcht  0x00000001 , 0x0000017f 
+ 00010427  0x00001191 set1  0x00000005 , 0x00000002 
+ 00010428  0x00001192 and  0x00000002 , 0x000000fc , 0x0000003f 
+ 00010429  0x00001193 ior  0x00000001 , 0x0000003f 
+ 00010430  0x00001194 store  0x00000001 , 0x0000017f 
+ 00010431  0x00001195 and_into  0x0000001f , 0x0000003f 
+ 00010432  0x00001196 isolate1  0x00000029 , 0x00000000 
+ 00010433  0x00001197 setflag  0x00000001 , 0x00000004 , 0x0000003f 
+ 00010434  0x00001198 store  0x00000001 , 0x00004169 
+ 00010435  0x0000119a fetch  0x00000001 , 0x00004169 
+ 00010436  0x0000119b compare  0x00000001 , 0x00000001 , 0x00000003 
+ 00010437  0x0000119c nbranch  0x000028c8 , 0x00000001 
+ 00010438  0x0000119d fetch  0x00000001 , 0x0000416a 
+ 00010439  0x0000119e rtn  0x00000034 
+ 00010440  0x000011a1 bmark1  0x00000032 , 0x000028ce 
+ 00010441  0x000011a2 fetchr  0x00000039 , 0x00000001 , 0x0000416a 
+ 00010442  0x000011a3 fetch  0x00000002 , 0x0000068f 
+ 00010443  0x000011a4 copy  0x0000003f , 0x00000006 
+ 00010444  0x000011a5 arg  0x0000416b , 0x00000005 
+ 00010445  0x000011a6 branch  0x00007ccc 
+ 00010446  0x000011a9 call  0x00007368 
+ 00010447  0x000011aa branch  0x0000729f 
+ 00010448  0x000011ad arg  0x00000000 , 0x00000007 
+ 00010449  0x000011ae branch  0x000024e7 
+ 00010450  0x000011b1 arg  0x00000000 , 0x00000007 
+ 00010451  0x000011b2 branch  0x000024eb 
+ 00010452  0x000011b6 bpatchx  0x00000038 , 0x00004027 
+ 00010453  0x000011b7 rtnmark1  0x0000000f 
+ 00010454  0x000011b8 rtnmark1  0x00000030 
+ 00010455  0x000011b9 fetch  0x00000001 , 0x0000004c 
+ 00010456  0x000011ba and  0x0000003f , 0x00000003 , 0x0000003f 
+ 00010457  0x000011bb store  0x00000001 , 0x00004334 
+ 00010458  0x000011bc fetch  0x00000001 , 0x0000004d 
+ 00010459  0x000011bd rtn  0x00000034 
+ 00010460  0x000011be setarg  0x0000004e 
+ 00010461  0x000011bf store  0x00000002 , 0x00004339 
+ 00010462  0x000011c0 bpatchx  0x00000039 , 0x00004027 
+ 00010463  0x000011c1 fetch  0x00000001 , 0x00004334 
+ 00010464  0x000011c2 beq  0x00000003 , 0x0000304a 
+ 00010465  0x000011c4 call  0x000028ee 
+ 00010466  0x000011c5 nbranch  0x000028d0 , 0x00000028 
+ 00010467  0x000011c6 call  0x000028d2 
+ 00010468  0x000011c7 setarg  0x00000000 
+ 00010469  0x000011c8 store  0x00000002 , 0x00004337 
+ 00010470  0x000011c9 fetch  0x00000002 , 0x00004339 
+ 00010471  0x000011ca add  0x0000003f , 0x00000002 , 0x00000006 
+ 00010472  0x000011cb bpatchx  0x0000003a , 0x00004027 
+ 00010473  0x000011cc ifetch  0x00000002 , 0x00000006 
+ 00010474  0x000011cd beq  0x00000004 , 0x00002b8f 
+ 00010475  0x000011ce beq  0x00000006 , 0x00002ec8 
+ 00010476  0x000011cf beq  0x00000005 , 0x00002e8a 
+ 00010477  0x000011d0 rtn 
+ 00010478  0x000011d4 fetch  0x00000001 , 0x00004334 
+ 00010479  0x000011d5 beq  0x00000002 , 0x000028fd 
+ 00010480  0x000011d6 beq  0x00000001 , 0x00002914 
+ 00010481  0x000011d7 rtn 
+ 00010482  0x000011dd call  0x00007dba 
+ 00010483  0x000011de arg  0x00000004 , 0x00000002 
+ 00010484  0x000011df isub  0x0000003f , 0x0000003e 
+ 00010485  0x000011e0 rtn  0x00000005 
+ 00010486  0x000011e1 arg  0x00000005 , 0x00000002 
+ 00010487  0x000011e2 isub  0x0000003f , 0x0000003e 
+ 00010488  0x000011e3 rtn  0x00000005 
+ 00010489  0x000011e4 arg  0x00000006 , 0x00000002 
+ 00010490  0x000011e5 isub  0x0000003f , 0x0000003e 
+ 00010491  0x000011e6 rtn  0x00000005 
+ 00010492  0x000011e7 branch  0x00007dbc 
+ 00010493  0x000011eb fetch  0x00000002 , 0x00004339 
+ 00010494  0x000011ec copy  0x0000003f , 0x00000006 
+ 00010495  0x000011ed ifetch  0x00000002 , 0x00000006 
+ 00010496  0x000011ee store  0x00000002 , 0x00004335 
+ 00010497  0x000011ef ifetch  0x00000002 , 0x00000006 
+ 00010498  0x000011f0 call  0x000028f2 
+ 00010499  0x000011f1 nrtn  0x00000028 
+ 00010500  0x000011f2 fetcht  0x00000001 , 0x0000004d 
+ 00010501  0x000011f3 storet  0x00000002 , 0x00004337 
+ 00010502  0x000011f4 fetch  0x00000002 , 0x00004335 
+ 00010503  0x000011f5 increase  0x00000004 , 0x0000003f 
+ 00010504  0x000011f6 isub  0x00000002 , 0x0000003e 
+ 00010505  0x000011f7 branch  0x00007dba , 0x00000005 
+ 00010506  0x000011f8 fetchr  0x00000039 , 0x00000001 , 0x0000004d 
+ 00010507  0x000011f9 arg  0x00000f00 , 0x00000005 
+ 00010508  0x000011fa fetch  0x00000002 , 0x00004339 
+ 00010509  0x000011fb copy  0x0000003f , 0x00000006 
+ 00010510  0x000011fc call  0x00007ccc 
+ 00010511  0x000011fd branch  0x00007dbc 
+ 00010512  0x00001203 call  0x00007dba 
+ 00010513  0x00001204 fetch  0x00000002 , 0x00004337 
+ 00010514  0x00001205 nrtn  0x00000034 
+ 00010515  0x00001206 branch  0x00007dbc 
+ 00010516  0x00001209 call  0x00002910 
+ 00010517  0x0000120a nrtn  0x00000028 
+ 00010518  0x0000120b fetch  0x00000002 , 0x00004337 
+ 00010519  0x0000120c arg  0x00000f00 , 0x00000005 
+ 00010520  0x0000120d iadd  0x00000005 , 0x00000011 
+ 00010521  0x0000120e fetcht  0x00000001 , 0x0000004d 
+ 00010522  0x0000120f iadd  0x00000002 , 0x0000003f 
+ 00010523  0x00001210 store  0x00000002 , 0x00004337 
+ 00010524  0x00001211 fetchr  0x00000039 , 0x00000001 , 0x0000004d 
+ 00010525  0x00001212 copy  0x00000011 , 0x00000005 
+ 00010526  0x00001213 fetch  0x00000002 , 0x00004339 
+ 00010527  0x00001214 copy  0x0000003f , 0x00000006 
+ 00010528  0x00001215 call  0x00007ccc 
+ 00010529  0x00001216 setarg  0x00000f00 
+ 00010530  0x00001217 store  0x00000002 , 0x00004339 
+ 00010531  0x00001218 fetch  0x00000002 , 0x00004335 
+ 00010532  0x00001219 increase  0x00000004 , 0x0000003f 
+ 00010533  0x0000121a fetcht  0x00000002 , 0x00004337 
+ 00010534  0x0000121b isub  0x00000002 , 0x0000003e 
+ 00010535  0x0000121c branch  0x00007dba , 0x00000005 
+ 00010536  0x0000121d branch  0x00007dbc 
+ 00010537  0x00001223 fetch  0x00000002 , 0x000043df 
+ 00010538  0x00001224 branch  0x00007d79 
+ 00010539  0x00001227 bpatchx  0x0000003b , 0x00004027 
+ 00010540  0x00001228 fetcht  0x00000004 , 0x00000184 
+ 00010541  0x00001229 call  0x00002356 
+ 00010542  0x0000122a isub  0x00000002 , 0x0000000b 
+ 00010543  0x0000122b deposit  0x0000000b 
+ 00010544  0x0000122c fetcht  0x00000002 , 0x00000196 
+ 00010545  0x0000122d lshift4  0x00000002 , 0x00000002 
+ 00010546  0x0000122e lshift  0x00000002 , 0x00000002 
+ 00010547  0x0000122f isub  0x00000002 , 0x0000003f 
+ 00010548  0x00001230 rtn 
+ 00010549  0x00001233 call  0x00002356 
+ 00010550  0x00001234 store  0x00000004 , 0x00000184 
+ 00010551  0x00001235 rtn 
+ 00010552  0x0000123a bpatchx  0x0000003c , 0x00004027 
+ 00010553  0x0000123b add  0x00000011 , 0x00000050 , 0x00000006 
+ 00010554  0x0000123c ifetch  0x00000001 , 0x00000006 
+ 00010555  0x0000123d call  0x000025eb 
+ 00010556  0x0000123e add  0x00000011 , 0x00000002 , 0x00000006 
+ 00010557  0x0000123f ifetch  0x00000002 , 0x00000006 
+ 00010558  0x00001240 imul32  0x00000002 , 0x0000003f 
+ 00010559  0x00001241 fetcht  0x00000002 , 0x00000044 
+ 00010560  0x00001242 imul32  0x00000002 , 0x0000003f 
+ 00010561  0x00001243 arg  0x000f4240 , 0x00000002 
+ 00010562  0x00001244 idiv  0x00000002 
+ 00010563  0x00001245 arg  0x00000682 , 0x00000002 
+ 00010564  0x00001246 fetch  0x00000001 , 0x00004148 
+ 00010565  0x00001247 imul32  0x00000002 , 0x00000002 
+ 00010566  0x00001248 add  0x00000011 , 0x0000002b , 0x00000006 
+ 00010567  0x00001249 ifetch  0x00000001 , 0x00000006 
+ 00010568  0x0000124a imul32  0x00000002 , 0x0000003f 
+ 00010569  0x0000124b iadd  0x00000002 , 0x0000003f 
+ 00010570  0x0000124c store  0x00000004 , 0x0000431d 
+ 00010571  0x0000124d fetch  0x00000002 , 0x0000409a 
+ 00010572  0x0000124e call  0x00007d62 
+ 00010573  0x0000124f quotient  0x00000002 
+ 00010574  0x00001250 iadd  0x00000002 , 0x0000003f 
+ 00010575  0x00001251 add  0x00000011 , 0x0000000e , 0x00000005 
+ 00010576  0x00001252 istore  0x00000002 , 0x00000005 
+ 00010577  0x00001253 rtn 
+ 00010578  0x00001259 bpatchx  0x0000003d , 0x00004027 
+ 00010579  0x0000125a call  0x00002955 
+ 00010580  0x0000125b branch  0x00002969 
+ 00010581  0x0000125e jam  0x00000002 , 0x000006b5 
+ 00010582  0x0000125f arg  0x00002a00 , 0x00000002 
+ 00010583  0x00001260 storet  0x00000002 , 0x000006b6 
+ 00010584  0x00001261 call  0x00002ce0 
+ 00010585  0x00001262 rtn  0x00000034 
+ 00010586  0x00001263 ifetch  0x00000001 , 0x00000006 
+ 00010587  0x00001264 copy  0x00000006 , 0x00000005 
+ 00010588  0x00001265 fetcht  0x00000001 , 0x0000426b 
+ 00010589  0x00001266 copy  0x00000002 , 0x00000039 
+ 00010590  0x00001267 isub  0x00000002 , 0x0000003e 
+ 00010591  0x00001268 nbranch  0x00002966 , 0x00000002 
+ 00010592  0x00001269 isub  0x00000002 , 0x00000002 
+ 00010593  0x0000126a arg  0x0000426c , 0x00000006 
+ 00010594  0x0000126b call  0x00007ccc 
+ 00010595  0x0000126c copy  0x00000002 , 0x00000039 
+ 00010596  0x0000126d ncall  0x000029a1 , 0x00000005 
+ 00010597  0x0000126e rtn 
+ 00010598  0x00001270 copy  0x0000003f , 0x00000039 
+ 00010599  0x00001271 arg  0x0000426c , 0x00000006 
+ 00010600  0x00001272 branch  0x00007ccc 
+ 00010601  0x00001276 arg  0x00004368 , 0x00000013 
+ 00010602  0x00001277 arg  0x00004349 , 0x00000011 
+ 00010603  0x00001278 call  0x00002976 
+ 00010604  0x00001279 setarg  0x00000000 
+ 00010605  0x0000127a setflag  0x00000028 , 0x00000000 , 0x0000003f 
+ 00010606  0x0000127b store  0x00000001 , 0x00000670 
+ 00010607  0x0000127c arg  0x00004388 , 0x00000013 
+ 00010608  0x0000127d arg  0x00004369 , 0x00000011 
+ 00010609  0x0000127e call  0x00002976 
+ 00010610  0x0000127f rtn  0x00000028 
+ 00010611  0x00001280 fetch  0x00000001 , 0x00000670 
+ 00010612  0x00001281 branch  0x0000235a , 0x00000034 
+ 00010613  0x00001282 rtn 
+ 00010614  0x00001286 bpatchx  0x0000003e , 0x00004027 
+ 00010615  0x00001287 call  0x00007dba 
+ 00010616  0x00001288 call  0x00007ca6 
+ 00010617  0x00001289 arg  0x00000000 , 0x00000012 
+ 00010618  0x0000128a arg  0x000006a2 , 0x00000005 
+ 00010619  0x0000128b call  0x00002990 
+ 00010620  0x0000128c fetch  0x00000001 , 0x0000426b 
+ 00010621  0x0000128d add  0x0000003f , 0x00000001 , 0x00000002 
+ 00010622  0x0000128e iadd  0x00000012 , 0x00000011 
+ 00010623  0x0000128f increase  0x00000002 , 0x00000011 
+ 00010624  0x00001290 sub  0x00000011 , 0x0000001f , 0x0000003e 
+ 00010625  0x00001291 nbranch  0x0000298e , 0x00000002 
+ 00010626  0x00001292 istoret  0x00000001 , 0x00000005 
+ 00010627  0x00001293 arg  0x00000009 , 0x00000002 
+ 00010628  0x00001294 istoret  0x00000001 , 0x00000005 
+ 00010629  0x00001295 iforce  0x00000039 
+ 00010630  0x00001296 call  0x00007ccc 
+ 00010631  0x00001297 copy  0x00000011 , 0x00000012 
+ 00010632  0x00001299 deposit  0x00000012 
+ 00010633  0x0000129a store  0x00000001 , 0x000006a1 
+ 00010634  0x0000129b arg  0x000006a1 , 0x00000006 
+ 00010635  0x0000129c setarg  0xffffffe0 
+ 00010636  0x0000129d iadd  0x00000013 , 0x00000005 
+ 00010637  0x0000129e branch  0x00007c8d 
+ 00010638  0x000012a1 call  0x00007dbc 
+ 00010639  0x000012a2 branch  0x00002988 
+ 00010640  0x000012a5 ifetch  0x00000001 , 0x00000011 
+ 00010641  0x000012a6 rtn  0x00000034 
+ 00010642  0x000012a7 pincrease  0x00000001 
+ 00010643  0x000012a8 ifetcht  0x00000001 , 0x00000006 
+ 00010644  0x000012a9 sub  0x00000002 , 0x00000009 , 0x0000003e 
+ 00010645  0x000012aa branch  0x0000299f , 0x00000005 
+ 00010646  0x000012ab iadd  0x00000012 , 0x00000012 
+ 00010647  0x000012ac copy  0x00000011 , 0x00000006 
+ 00010648  0x000012ad iforce  0x00000039 
+ 00010649  0x000012ae call  0x00007ccc 
+ 00010650  0x000012af copy  0x00000006 , 0x00000011 
+ 00010651  0x000012b1 deposit  0x00000011 
+ 00010652  0x000012b2 isub  0x00000013 , 0x0000003e 
+ 00010653  0x000012b3 rtn  0x00000002 
+ 00010654  0x000012b4 branch  0x00002990 
+ 00010655  0x000012b7 iadd  0x00000011 , 0x00000011 
+ 00010656  0x000012b8 branch  0x0000299b 
+ 00010657  0x000012bc setarg  0x00000020 
+ 00010658  0x000012bd istore  0x00000001 , 0x00000005 
+ 00010659  0x000012be loop  0x000029a1 
+ 00010660  0x000012bf rtn 
+ 00010661  0x000012c3 bpatchx  0x0000003f , 0x00004027 
+ 00010662  0x000012c4 disable  0x0000002b 
+ 00010663  0x000012c5 branch  0x000029a9 , 0x0000002e 
+ 00010664  0x000012c6 nbranch  0x000029b8 , 0x0000002d 
+ 00010665  0x000012c8 call  0x000024d2 
+ 00010666  0x000012c9 fetch  0x00000002 , 0x0000409a 
+ 00010667  0x000012ca store  0x00000002 , 0x00000176 
+ 00010668  0x000012cb fetch  0x00000001 , 0x00004321 
+ 00010669  0x000012cc bbit1  0x00000005 , 0x000024e0 
+ 00010670  0x000012cd bmark1  0x0000000f , 0x000024e0 
+ 00010671  0x000012ce fetch  0x00000001 , 0x0000004d 
+ 00010672  0x000012cf nbranch  0x000024e0 , 0x00000034 
+ 00010673  0x000012d0 fetch  0x00000001 , 0x0000416a 
+ 00010674  0x000012d1 nbranch  0x000024e0 , 0x00000034 
+ 00010675  0x000012d3 fetch  0x00000001 , 0x00000168 
+ 00010676  0x000012d4 bbit1  0x00000005 , 0x000024e0 
+ 00010677  0x000012d5 bbit1  0x00000007 , 0x000024e0 
+ 00010678  0x000012d6 bbit1  0x00000006 , 0x000024e0 
+ 00010679  0x000012d7 branch  0x000024c8 
+ 00010680  0x000012da fetch  0x00000001 , 0x000040a8 
+ 00010681  0x000012db sub  0x0000003f , 0x0000001e , 0x0000003e 
+ 00010682  0x000012dc nbranch  0x000024d7 , 0x00000002 
+ 00010683  0x000012dd fetcht  0x00000002 , 0x0000409a 
+ 00010684  0x000012de rshift  0x00000002 , 0x00000002 
+ 00010685  0x000012df fetch  0x00000002 , 0x00000176 
+ 00010686  0x000012e0 iadd  0x00000002 , 0x0000003f 
+ 00010687  0x000012e1 store  0x00000002 , 0x00000176 
+ 00010688  0x000012e2 branch  0x000024d7 
+ 00010689  0x000012e6 arg  0x00000000 , 0x00000007 
+ 00010690  0x000012e7 branch  0x000029d6 
+ 00010691  0x000012ea arg  0x00000000 , 0x00000007 
+ 00010692  0x000012eb branch  0x000029db 
+ 00010693  0x000012ee arg  0x00000001 , 0x00000007 
+ 00010694  0x000012ef branch  0x000029d6 
+ 00010695  0x000012f2 arg  0x00000001 , 0x00000007 
+ 00010696  0x000012f3 branch  0x000029db 
+ 00010697  0x000012f6 arg  0x00000002 , 0x00000007 
+ 00010698  0x000012f7 branch  0x000029d6 
+ 00010699  0x000012fa arg  0x00000002 , 0x00000007 
+ 00010700  0x000012fb branch  0x000029db 
+ 00010701  0x000012fe arg  0x00000003 , 0x00000007 
+ 00010702  0x000012ff branch  0x000029d6 
+ 00010703  0x00001302 arg  0x00000003 , 0x00000007 
+ 00010704  0x00001303 branch  0x000029db 
+ 00010705  0x00001306 arg  0x00000004 , 0x00000007 
+ 00010706  0x00001307 branch  0x000029d6 
+ 00010707  0x0000130a arg  0x00000004 , 0x00000007 
+ 00010708  0x0000130b branch  0x000029db 
+ 00010709  0x0000130e arg  0x00000005 , 0x00000007 
+ 00010710  0x00001311 fetch  0x00000001 , 0x00004321 
+ 00010711  0x00001312 qset1  0x0000003f 
+ 00010712  0x00001313 store  0x00000001 , 0x00004321 
+ 00010713  0x00001314 rtn 
+ 00010714  0x00001318 arg  0x00000005 , 0x00000007 
+ 00010715  0x0000131b fetch  0x00000001 , 0x00004321 
+ 00010716  0x0000131c qset0  0x0000003f 
+ 00010717  0x0000131d store  0x00000001 , 0x00004321 
+ 00010718  0x0000131e rtn 
+ 00010719  0x00001323 setarg  0x00112233 
+ 00010720  0x00001324 store  0x00000003 , 0x00004322 
+ 00010721  0x00001325 setarg  0x00445566 
+ 00010722  0x00001326 istore  0x00000003 , 0x00000005 
+ 00010723  0x00001327 setarg  0x00778899 
+ 00010724  0x00001328 istore  0x00000003 , 0x00000005 
+ 00010725  0x00001329 setarg  0x00001122 
+ 00010726  0x0000132a istore  0x00000003 , 0x00000005 
+ 00010727  0x0000132b setarg  0x00334455 
+ 00010728  0x0000132c istore  0x00000003 , 0x00000005 
+ 00010729  0x0000132d setarg  0x00000066 
+ 00010730  0x0000132e istore  0x00000001 , 0x00000005 
+ 00010731  0x0000132f rtn 
+ 00010732  0x00001333 setarg  0x01000302 
+ 00010733  0x00001334 store  0x00000004 , 0x000042c4 
+ 00010734  0x00001335 setarg  0x00010010 
+ 00010735  0x00001336 store  0x00000003 , 0x000042c8 
+ 00010736  0x00001337 jam  0x00000001 , 0x000042fe 
+ 00010737  0x00001338 rtn 
+ 00010738  0x0000133d arg  0x00000000 , 0x00000011 
+ 00010739  0x0000133e arg  0x00000001 , 0x00000001 
+ 00010740  0x0000133f branch  0x00002a05 
+ 00010741  0x00001344 bpatchx  0x00000040 , 0x00004028 
+ 00010742  0x00001345 arg  0x00000003 , 0x00000001 
+ 00010743  0x00001346 call  0x00002a05 
+ 00010744  0x00001347 copy  0x00000012 , 0x0000003f 
+ 00010745  0x00001348 istore  0x00000001 , 0x00000005 
+ 00010746  0x00001349 rtn 
+ 00010747  0x0000134e bpatchx  0x00000041 , 0x00004028 
+ 00010748  0x0000134f force  0x00000002 , 0x00000001 
+ 00010749  0x00001350 increase  0x00000004 , 0x00000011 
+ 00010750  0x00001351 call  0x00002a05 
+ 00010751  0x00001352 increase  0xfffffffc , 0x00000011 
+ 00010752  0x00001353 copy  0x00000011 , 0x0000003f 
+ 00010753  0x00001354 istore  0x00000002 , 0x00000005 
+ 00010754  0x00001355 copy  0x00000012 , 0x0000003f 
+ 00010755  0x00001356 istore  0x00000002 , 0x00000005 
+ 00010756  0x00001357 rtn 
+ 00010757  0x0000135c bpatchx  0x00000042 , 0x00004028 
+ 00010758  0x0000135d increase  0x00000005 , 0x00000011 
+ 00010759  0x0000135e call  0x00006959 
+ 00010760  0x0000135f increase  0xfffffffb , 0x00000011 
+ 00010761  0x00001360 copy  0x00000011 , 0x0000003f 
+ 00010762  0x00001361 istore  0x00000002 , 0x00000005 
+ 00010763  0x00001362 setarg  0x00000000 
+ 00010764  0x00001363 istore  0x00000002 , 0x00000005 
+ 00010765  0x00001364 copy  0x00000001 , 0x0000003f 
+ 00010766  0x00001365 istore  0x00000001 , 0x00000005 
+ 00010767  0x00001366 rtn 
+ 00010768  0x0000136a bpatchx  0x00000043 , 0x00004028 
+ 00010769  0x0000136b call  0x00006993 
+ 00010770  0x0000136c copy  0x0000003f , 0x00000006 
+ 00010771  0x0000136d rtn 
+ 00010772  0x00001370 fetch  0x00000002 , 0x00004449 
+ 00010773  0x00001371 rtn 
+ 00010774  0x00001374 call  0x00002a19 
+ 00010775  0x00001375 copy  0x0000003f , 0x00000006 
+ 00010776  0x00001376 rtn 
+ 00010777  0x0000137a fetch  0x00000002 , 0x0000444c 
+ 00010778  0x0000137b rtn 
+ 00010779  0x0000137f call  0x00002a10 
+ 00010780  0x00001380 increase  0x00000005 , 0x00000006 
+ 00010781  0x00001381 rtn 
+ 00010782  0x00001384 call  0x00002a10 
+ 00010783  0x00001385 increase  0x00000009 , 0x00000006 
+ 00010784  0x00001386 rtn 
+ 00010785  0x00001389 call  0x00002a16 
+ 00010786  0x0000138a increase  0x00000009 , 0x00000006 
+ 00010787  0x0000138b rtn 
+ 00010788  0x0000138e call  0x00002a16 
+ 00010789  0x0000138f increase  0x00000005 , 0x00000006 
+ 00010790  0x00001390 rtn 
+ 00010791  0x00001394 branch  0x000069a9 
+ 00010792  0x00001398 branch  0x000069ac 
+ 00010793  0x0000139c branch  0x000069af 
+ 00010794  0x000013a0 branch  0x00006998 
+ 00010795  0x000013a4 store  0x00000008 , 0x000043c0 
+ 00010796  0x000013a5 branch  0x00002a3c 
+ 00010797  0x000013a9 and  0x00000002 , 0x000000ff , 0x00000011 
+ 00010798  0x000013aa call  0x00002a32 
+ 00010799  0x000013ab rshift8  0x00000002 , 0x00000011 
+ 00010800  0x000013ae storer  0x00000011 , 0x00000001 , 0x000043b7 
+ 00010801  0x000013af branch  0x00002a33 
+ 00010802  0x000013b2 storer  0x00000011 , 0x00000001 , 0x000043b6 
+ 00010803  0x000013b4 isolate1  0x00000001 , 0x00000011 
+ 00010804  0x000013b5 call  0x00002a38 , 0x00000001 
+ 00010805  0x000013b6 isolate1  0x00000002 , 0x00000011 
+ 00010806  0x000013b7 call  0x00002a3a , 0x00000001 
+ 00010807  0x000013b8 rtn 
+ 00010808  0x000013bd arg  0x00000008 , 0x00000007 
+ 00010809  0x000013be branch  0x00002a3d 
+ 00010810  0x000013c2 arg  0x0000000b , 0x00000007 
+ 00010811  0x000013c3 branch  0x00002a3d 
+ 00010812  0x000013c6 arg  0x00000005 , 0x00000007 
+ 00010813  0x000013c9 fetch  0x00000008 , 0x000043ae 
+ 00010814  0x000013ca qset1  0x0000003f 
+ 00010815  0x000013cb store  0x00000008 , 0x000043ae 
+ 00010816  0x000013cc rtn 
+ 00010817  0x000013cf call  0x000029c5 
+ 00010818  0x000013d0 call  0x000029ec 
+ 00010819  0x000013d1 call  0x000029df 
+ 00010820  0x000013d2 branch  0x000029cd 
+ 00010821  0x000013d8 jam  0x00000001 , 0x0000019d 
+ 00010822  0x000013d9 jam  0x00000001 , 0x0000019e 
+ 00010823  0x000013da call  0x000025b8 
+ 00010824  0x000013db call  0x00002a4b 
+ 00010825  0x000013dc call  0x00002acb 
+ 00010826  0x000013dd branch  0x000025bc 
+ 00010827  0x000013e0 bpatchx  0x00000044 , 0x00004028 
+ 00010828  0x000013e1 fetch  0x00000001 , 0x00004343 
+ 00010829  0x000013e2 rtnne  0x00000001 
+ 00010830  0x000013e3 arg  0x00000002 , 0x00000007 
+ 00010831  0x000013e4 call  0x00007cef 
+ 00010832  0x000013e5 nrtn  0x00000034 
+ 00010833  0x000013e6 fetch  0x00000002 , 0x00004344 
+ 00010834  0x000013e7 fetcht  0x00000002 , 0x00004346 
+ 00010835  0x000013e8 isub  0x00000002 , 0x0000003f 
+ 00010836  0x000013e9 arg  0x00000002 , 0x00000007 
+ 00010837  0x000013ea call  0x00007ce1 
+ 00010838  0x000013eb disable  0x00000029 
+ 00010839  0x000013ec call  0x00002af5 
+ 00010840  0x000013ed call  0x00002a6a 
+ 00010841  0x000013ee nrtn  0x0000002d 
+ 00010842  0x000013ef bpatchx  0x00000045 , 0x00004028 
+ 00010843  0x000013f0 fetch  0x00000006 , 0x0000004e 
+ 00010844  0x000013f1 store  0x00000006 , 0x00000178 
+ 00010845  0x000013f4 fetch  0x00000001 , 0x00000002 
+ 00010846  0x000013f5 increase  0x00000001 , 0x0000003f 
+ 00010847  0x000013f6 store  0x00000001 , 0x00000002 
+ 00010848  0x000013f7 call  0x00002a71 
+ 00010849  0x000013f8 rtn  0x00000029 
+ 00010850  0x000013f9 call  0x00002b1c 
+ 00010851  0x000013fa nrtn  0x0000002d 
+ 00010852  0x000013fb fetch  0x00000001 , 0x00000004 
+ 00010853  0x000013fc increase  0x00000001 , 0x0000003f 
+ 00010854  0x000013fd store  0x00000001 , 0x00000004 
+ 00010855  0x000013fe fetch  0x00000009 , 0x00000054 
+ 00010856  0x000013ff store  0x00000009 , 0x000006a1 
+ 00010857  0x00001400 rtn 
+ 00010858  0x00001404 bpatchx  0x00000046 , 0x00004028 
+ 00010859  0x00001405 call  0x00002b68 
+ 00010860  0x00001406 call  0x0000264e 
+ 00010861  0x00001407 fetch  0x00000001 , 0x00000001 
+ 00010862  0x00001408 increase  0x00000001 , 0x0000003f 
+ 00010863  0x00001409 store  0x00000001 , 0x00000001 
+ 00010864  0x0000140a rtn 
+ 00010865  0x0000140e bpatchx  0x00000047 , 0x00004028 
+ 00010866  0x0000140f fetch  0x00000001 , 0x000001bc 
+ 00010867  0x00001410 rtnne  0x0000001b 
+ 00010868  0x00001411 fetch  0x00000006 , 0x00000178 
+ 00010869  0x00001412 fetcht  0x00000006 , 0x000042cc 
+ 00010870  0x00001413 isub  0x00000002 , 0x0000003e 
+ 00010871  0x00001414 nrtn  0x00000005 
+ 00010872  0x00001415 call  0x00002056 
+ 00010873  0x00001416 nrtn  0x00000005 
+ 00010874  0x00001417 call  0x00002a84 
+ 00010875  0x00001418 call  0x00002519 
+ 00010876  0x00001419 call  0x000030ed 
+ 00010877  0x0000141a jam  0x00000014 , 0x0000066f 
+ 00010878  0x0000141b call  0x0000782b 
+ 00010879  0x0000141c jam  0x00000000 , 0x00004114 
+ 00010880  0x0000141d jam  0x00000000 , 0x000001b8 
+ 00010881  0x0000141e jam  0x00000000 , 0x00004343 
+ 00010882  0x0000141f jam  0x00000000 , 0x000001bc 
+ 00010883  0x00001420 branch  0x00002041 
+ 00010884  0x00001423 bpatchx  0x00000048 , 0x00004029 
+ 00010885  0x00001424 force  0xffffffff , 0x0000003f 
+ 00010886  0x00001425 setsect  0x00000002 , 0x00000001 
+ 00010887  0x00001426 store  0x00000005 , 0x00000198 
+ 00010888  0x00001427 arg  0x00000168 , 0x00000011 
+ 00010889  0x00001428 call  0x00002624 
+ 00010890  0x00001429 force  0x00000004 , 0x00000039 
+ 00010891  0x0000142a arg  0x0000018c , 0x00000005 
+ 00010892  0x0000142b call  0x00007de8 
+ 00010893  0x0000142c fetch  0x00000002 , 0x000042d9 
+ 00010894  0x0000142d store  0x00000002 , 0x00000196 
+ 00010895  0x0000142f random  0x0000003f 
+ 00010896  0x00001430 and_into  0x0000000f , 0x0000003f 
+ 00010897  0x00001431 sub  0x0000003f , 0x00000004 , 0x0000003e 
+ 00010898  0x00001432 branch  0x00002a8f , 0x00000002 
+ 00010899  0x00001433 store  0x00000001 , 0x00000181 
+ 00010900  0x00001435 bpatchx  0x00000049 , 0x00004029 
+ 00010901  0x00001436 fetcht  0x00000002 , 0x00004165 
+ 00010902  0x00001437 storet  0x00000002 , 0x0000016a 
+ 00010903  0x00001438 copy  0x00000002 , 0x00000013 
+ 00010904  0x00001439 add  0x00000022 , 0x00000007 , 0x0000003f 
+ 00010905  0x0000143a idiv  0x00000013 
+ 00010906  0x0000143b call  0x00007d62 
+ 00010907  0x0000143c remainder  0x00000011 
+ 00010908  0x0000143d isub  0x00000011 , 0x0000003f 
+ 00010909  0x0000143e iadd  0x00000013 , 0x0000003f 
+ 00010910  0x0000143f fetcht  0x00000002 , 0x00004163 
+ 00010911  0x00001440 iadd  0x00000002 , 0x0000003f 
+ 00010912  0x00001441 store  0x00000004 , 0x0000016c 
+ 00010913  0x00001442 isub  0x00000022 , 0x00000011 
+ 00010914  0x00001443 increase  0xfffffffa , 0x00000011 
+ 00010915  0x00001444 arg  0x00002205 , 0x00000012 
+ 00010916  0x00001445 fetch  0x00000001 , 0x000042d2 
+ 00010917  0x00001446 nsetflag  0x00000034 , 0x00000006 , 0x00000012 
+ 00010918  0x00001447 fetch  0x00000001 , 0x000042cb 
+ 00010919  0x00001448 nsetflag  0x00000034 , 0x00000007 , 0x00000012 
+ 00010920  0x00001449 copy  0x00000012 , 0x0000003f 
+ 00010921  0x0000144a store  0x00000002 , 0x00004169 
+ 00010922  0x0000144b fetch  0x00000006 , 0x000042db 
+ 00010923  0x0000144c istore  0x00000006 , 0x00000005 
+ 00010924  0x0000144d fetch  0x00000006 , 0x00000178 
+ 00010925  0x0000144e istore  0x00000006 , 0x00000005 
+ 00010926  0x0000144f fetch  0x00000004 , 0x0000018c 
+ 00010927  0x00001450 istore  0x00000004 , 0x00000005 
+ 00010928  0x00001451 random  0x0000003f 
+ 00010929  0x00001452 istore  0x00000002 , 0x00000005 
+ 00010930  0x00001453 random  0x0000003f 
+ 00010931  0x00001454 istore  0x00000001 , 0x00000005 
+ 00010932  0x00001455 force  0x00000002 , 0x0000003f 
+ 00010933  0x00001456 istore  0x00000001 , 0x00000005 
+ 00010934  0x00001457 rshift2  0x00000011 , 0x0000003f 
+ 00010935  0x00001458 istore  0x00000002 , 0x00000005 
+ 00010936  0x00001459 rshift2  0x00000013 , 0x0000003f 
+ 00010937  0x0000145a istore  0x00000002 , 0x00000005 
+ 00010938  0x0000145b bpatchx  0x0000004a , 0x00004029 
+ 00010939  0x0000145c setarg  0x00000000 
+ 00010940  0x0000145d istore  0x00000002 , 0x00000005 
+ 00010941  0x0000145e fetch  0x00000002 , 0x000042d9 
+ 00010942  0x0000145f istore  0x00000002 , 0x00000005 
+ 00010943  0x00001460 fetch  0x00000005 , 0x00000198 
+ 00010944  0x00001461 istore  0x00000005 , 0x00000005 
+ 00010945  0x00001462 fetch  0x00000001 , 0x00000181 
+ 00010946  0x00001463 arg  0x000000a0 , 0x00000002 
+ 00010947  0x00001464 ior  0x00000002 , 0x0000003f 
+ 00010948  0x00001465 istore  0x00000001 , 0x00000005 
+ 00010949  0x00001466 call  0x0000273e 
+ 00010950  0x00001467 setarg  0x00004169 
+ 00010951  0x00001468 add  0x0000003f , 0x00000012 , 0x00000006 
+ 00010952  0x00001469 ifetch  0x00000003 , 0x00000006 
+ 00010953  0x0000146a store  0x00000003 , 0x00000190 
+ 00010954  0x0000146b rtn 
+ 00010955  0x0000146f jam  0x00000024 , 0x00000007 
+ 00010956  0x00001470 jam  0x00000000 , 0x000006a1 
+ 00010957  0x00001471 call  0x00002aef 
+ 00010958  0x00001472 call  0x00002ad0 
+ 00010959  0x00001473 branch  0x00002af2 
+ 00010960  0x00001476 bpatchx  0x0000004b , 0x00004029 
+ 00010961  0x00001477 fetch  0x00000001 , 0x00004388 
+ 00010962  0x00001478 rtn  0x00000034 
+ 00010963  0x00001479 arg  0x00000000 , 0x00000007 
+ 00010964  0x0000147a call  0x00007cef 
+ 00010965  0x0000147b nrtn  0x00000034 
+ 00010966  0x0000147c enable  0x00000010 
+ 00010967  0x0000147d call  0x00002af5 
+ 00010968  0x0000147e call  0x00002b68 
+ 00010969  0x0000147f call  0x00002afe 
+ 00010970  0x00001480 nbranch  0x00002ae2 , 0x0000002d 
+ 00010971  0x00001481 fetch  0x00000001 , 0x00000003 
+ 00010972  0x00001482 increase  0x00000001 , 0x0000003f 
+ 00010973  0x00001483 store  0x00000001 , 0x00000003 
+ 00010974  0x00001484 fetch  0x00000001 , 0x0000004c 
+ 00010975  0x00001485 and  0x0000003f , 0x0000000f , 0x0000003f 
+ 00010976  0x00001486 beq  0x00000003 , 0x00002b2d 
+ 00010977  0x00001487 beq  0x00000005 , 0x00002b40 
+ 00010978  0x00001489 bpatchx  0x0000004c , 0x00004029 
+ 00010979  0x0000148a fetch  0x00000001 , 0x000006a1 
+ 00010980  0x0000148b fetcht  0x00000001 , 0x00004393 
+ 00010981  0x0000148c isub  0x00000002 , 0x0000003e 
+ 00010982  0x0000148d nbranch  0x00002ad0 , 0x00000005 
+ 00010983  0x0000148e random  0x0000003f 
+ 00010984  0x0000148f arg  0x000001ff , 0x00000002 
+ 00010985  0x00001490 iand  0x00000002 , 0x0000003f 
+ 00010986  0x00001491 add  0x0000003f , 0x000000fa , 0x0000003f 
+ 00010987  0x00001492 call  0x00007c91 
+ 00010988  0x00001493 arg  0x00000000 , 0x00000007 
+ 00010989  0x00001494 fetch  0x00000002 , 0x00004389 
+ 00010990  0x00001495 branch  0x00007ce1 
+ 00010991  0x00001498 arg  0x000006b1 , 0x00000005 
+ 00010992  0x00001499 arg  0x00004169 , 0x00000006 
+ 00010993  0x0000149a branch  0x00007c8c 
+ 00010994  0x0000149d arg  0x000006b1 , 0x00000006 
+ 00010995  0x0000149e arg  0x00004169 , 0x00000005 
+ 00010996  0x0000149f branch  0x00007c8c 
+ 00010997  0x000014a2 bpatchx  0x0000004d , 0x00004029 
+ 00010998  0x000014a3 disable  0x00000029 
+ 00010999  0x000014a5 setarg  0x008e89be 
+ 00011000  0x000014a6 lshift8  0x0000003f , 0x0000003f 
+ 00011001  0x000014a7 or_into  0x000000d6 , 0x0000003f 
+ 00011002  0x000014a8 iforce  0x00000009 
+ 00011003  0x000014a9 setarg  0x00555555 
+ 00011004  0x000014aa store  0x00000003 , 0x00000190 
+ 00011005  0x000014ab rtn 
+ 00011006  0x000014b0 bpatchx  0x0000004e , 0x00004029 
+ 00011007  0x000014b1 fetch  0x00000001 , 0x0000438b 
+ 00011008  0x000014b2 fetcht  0x00000001 , 0x0000438c 
+ 00011009  0x000014b3 lshift4  0x00000002 , 0x00000002 
+ 00011010  0x000014b4 lshift2  0x00000002 , 0x00000002 
+ 00011011  0x000014b5 iadd  0x00000002 , 0x00000002 
+ 00011012  0x000014b6 storet  0x00000001 , 0x00004169 
+ 00011013  0x000014b7 beq  0x00000001 , 0x00002b0f 
+ 00011014  0x000014b8 fetcht  0x00000001 , 0x00004348 
+ 00011015  0x000014b9 add  0x00000002 , 0x00000006 , 0x0000003f 
+ 00011016  0x000014ba store  0x00000001 , 0x0000416a 
+ 00011017  0x000014bb fetch  0x00000006 , 0x000042db 
+ 00011018  0x000014bc store  0x00000006 , 0x0000416b 
+ 00011019  0x000014bd copy  0x00000002 , 0x00000039 
+ 00011020  0x000014be arg  0x00004349 , 0x00000006 
+ 00011021  0x000014bf call  0x00007ccc 
+ 00011022  0x000014c0 branch  0x00002b15 
+ 00011023  0x000014c3 setarg  0x0000000c 
+ 00011024  0x000014c4 store  0x00000001 , 0x0000416a 
+ 00011025  0x000014c5 fetch  0x00000006 , 0x000042db 
+ 00011026  0x000014c6 store  0x00000006 , 0x0000416b 
+ 00011027  0x000014c7 fetch  0x00000006 , 0x00004116 
+ 00011028  0x000014c8 istore  0x00000006 , 0x00000005 
+ 00011029  0x000014ca bpatchx  0x0000004f , 0x00004029 
+ 00011030  0x000014cb fetch  0x00000001 , 0x00000000 
+ 00011031  0x000014cc increase  0x00000001 , 0x0000003f 
+ 00011032  0x000014cd store  0x00000001 , 0x00000000 
+ 00011033  0x000014ce arg  0x00000708 , 0x0000001b 
+ 00011034  0x000014cf disable  0x0000002d 
+ 00011035  0x000014d0 branch  0x00002729 
+ 00011036  0x000014d4 bpatchx  0x00000050 , 0x0000402a 
+ 00011037  0x000014d5 fetch  0x00000001 , 0x00004394 
+ 00011038  0x000014d6 rtnne  0x00000001 
+ 00011039  0x000014d7 fetch  0x00000001 , 0x00000000 
+ 00011040  0x000014d8 increase  0x00000001 , 0x0000003f 
+ 00011041  0x000014d9 store  0x00000001 , 0x00000000 
+ 00011042  0x000014da arg  0x00000c03 , 0x00000002 
+ 00011043  0x000014db fetch  0x00000001 , 0x00004395 
+ 00011044  0x000014dc nsetflag  0x00000034 , 0x00000006 , 0x00000002 
+ 00011045  0x000014dd copy  0x00000011 , 0x0000003f 
+ 00011046  0x000014de nsetflag  0x00000034 , 0x00000007 , 0x00000002 
+ 00011047  0x000014df storet  0x00000002 , 0x00004169 
+ 00011048  0x000014e0 fetch  0x00000006 , 0x000042db 
+ 00011049  0x000014e1 istore  0x00000006 , 0x00000005 
+ 00011050  0x000014e2 fetch  0x00000006 , 0x00000178 
+ 00011051  0x000014e3 istore  0x00000006 , 0x00000005 
+ 00011052  0x000014e4 branch  0x00002729 
+ 00011053  0x000014e7 bpatchx  0x00000051 , 0x0000402a 
+ 00011054  0x000014e8 fetch  0x00000006 , 0x00000054 
+ 00011055  0x000014e9 fetcht  0x00000006 , 0x000042db 
+ 00011056  0x000014ea isub  0x00000002 , 0x0000003e 
+ 00011057  0x000014eb nrtn  0x00000005 
+ 00011058  0x000014ec arg  0x00000004 , 0x00000002 
+ 00011059  0x000014ed fetch  0x00000001 , 0x0000438c 
+ 00011060  0x000014ee nsetflag  0x00000034 , 0x00000006 , 0x00000002 
+ 00011061  0x000014ef storet  0x00000001 , 0x00004169 
+ 00011062  0x000014f0 fetcht  0x00000001 , 0x00004368 
+ 00011063  0x000014f1 add  0x00000002 , 0x00000006 , 0x0000003f 
+ 00011064  0x000014f2 store  0x00000001 , 0x0000416a 
+ 00011065  0x000014f3 fetch  0x00000006 , 0x000042db 
+ 00011066  0x000014f4 store  0x00000006 , 0x0000416b 
+ 00011067  0x000014f5 arg  0x00004369 , 0x00000006 
+ 00011068  0x000014f6 copy  0x00000002 , 0x00000039 
+ 00011069  0x000014f7 call  0x00007ccc 
+ 00011070  0x000014f8 call  0x0000273e 
+ 00011071  0x000014f9 branch  0x00002ae2 
+ 00011072  0x000014fc fetch  0x00000006 , 0x00000054 
+ 00011073  0x000014fd fetcht  0x00000006 , 0x000042db 
+ 00011074  0x000014fe isub  0x00000002 , 0x0000003e 
+ 00011075  0x000014ff nrtn  0x00000005 
+ 00011076  0x00001500 call  0x00002868 
+ 00011077  0x00001501 storer  0x00000011 , 0x00000001 , 0x000042cb 
+ 00011078  0x00001502 fetch  0x00000006 , 0x0000004e 
+ 00011079  0x00001503 store  0x00000006 , 0x00000178 
+ 00011080  0x00001504 fetch  0x00000008 , 0x0000005a 
+ 00011081  0x00001505 store  0x00000008 , 0x0000018c 
+ 00011082  0x00001506 fetcht  0x00000002 , 0x00000062 
+ 00011083  0x00001507 bpatchx  0x00000052 , 0x0000402a 
+ 00011084  0x00001508 lshift2  0x00000002 , 0x00000002 
+ 00011085  0x00001509 fetch  0x00000002 , 0x00000064 
+ 00011086  0x0000150a lshift2  0x0000003f , 0x0000003f 
+ 00011087  0x0000150b store  0x00000002 , 0x0000016a 
+ 00011088  0x0000150c store  0x00000004 , 0x0000016c 
+ 00011089  0x0000150d isub  0x00000002 , 0x0000003f 
+ 00011090  0x0000150e add  0x0000003f , 0xfffffffe , 0x00000028 
+ 00011091  0x0000150f fetch  0x00000009 , 0x00000066 
+ 00011092  0x00001510 store  0x00000009 , 0x00000194 
+ 00011093  0x00001511 fetch  0x00000001 , 0x0000006f 
+ 00011094  0x00001512 and  0x0000003f , 0x0000001f , 0x00000002 
+ 00011095  0x00001513 storet  0x00000001 , 0x00000181 
+ 00011096  0x00001514 rshift4  0x0000003f , 0x00000002 
+ 00011097  0x00001515 rshift  0x00000002 , 0x00000002 
+ 00011098  0x00001516 storet  0x00000001 , 0x000001b8 
+ 00011099  0x00001517 arg  0x00000168 , 0x00000011 
+ 00011100  0x00001518 call  0x00002938 
+ 00011101  0x00001519 arg  0x00000168 , 0x00000011 
+ 00011102  0x0000151a call  0x00002624 
+ 00011103  0x0000151b call  0x00002525 
+ 00011104  0x0000151c call  0x00002056 
+ 00011105  0x0000151d nrtn  0x00000005 
+ 00011106  0x0000151e bpatchx  0x00000053 , 0x0000402a 
+ 00011107  0x0000151f call  0x000020f7 
+ 00011108  0x00001520 call  0x00002ea7 
+ 00011109  0x00001521 jam  0x00000014 , 0x0000066f 
+ 00011110  0x00001522 call  0x0000782b 
+ 00011111  0x00001523 branch  0x00002041 
+ 00011112  0x00001527 bpatchx  0x00000054 , 0x0000402a 
+ 00011113  0x00001528 fetch  0x00000001 , 0x00000007 
+ 00011114  0x00001529 beq  0x00000025 , 0x00002b6e 
+ 00011115  0x0000152a beq  0x00000026 , 0x00002b74 
+ 00011116  0x0000152b beq  0x00000027 , 0x00002b7a 
+ 00011117  0x0000152c branch  0x00002b7a 
+ 00011118  0x0000152f fetcht  0x00000001 , 0x00004393 
+ 00011119  0x00001530 isolate1  0x00000001 , 0x00000002 
+ 00011120  0x00001531 branch  0x00002b85 , 0x00000001 
+ 00011121  0x00001532 isolate1  0x00000002 , 0x00000002 
+ 00011122  0x00001533 branch  0x00002b8a , 0x00000001 
+ 00011123  0x00001534 branch  0x00002b80 
+ 00011124  0x00001538 fetcht  0x00000001 , 0x00004393 
+ 00011125  0x00001539 isolate1  0x00000002 , 0x00000002 
+ 00011126  0x0000153a branch  0x00002b8a , 0x00000001 
+ 00011127  0x0000153b isolate1  0x00000000 , 0x00000002 
+ 00011128  0x0000153c branch  0x00002b80 , 0x00000001 
+ 00011129  0x0000153d branch  0x00002b85 
+ 00011130  0x00001541 fetcht  0x00000001 , 0x00004393 
+ 00011131  0x00001542 isolate1  0x00000000 , 0x00000002 
+ 00011132  0x00001543 branch  0x00002b80 , 0x00000001 
+ 00011133  0x00001544 isolate1  0x00000001 , 0x00000002 
+ 00011134  0x00001545 branch  0x00002b85 , 0x00000001 
+ 00011135  0x00001546 branch  0x00002b8a 
+ 00011136  0x00001549 jam  0x00000025 , 0x00000007 
+ 00011137  0x0000154a fetch  0x00000001 , 0x000006a1 
+ 00011138  0x0000154b set1  0x00000000 , 0x0000003f 
+ 00011139  0x0000154c store  0x00000001 , 0x000006a1 
+ 00011140  0x0000154d rtn 
+ 00011141  0x00001550 jam  0x00000026 , 0x00000007 
+ 00011142  0x00001551 fetch  0x00000001 , 0x000006a1 
+ 00011143  0x00001552 set1  0x00000001 , 0x0000003f 
+ 00011144  0x00001553 store  0x00000001 , 0x000006a1 
+ 00011145  0x00001554 rtn 
+ 00011146  0x00001557 jam  0x00000027 , 0x00000007 
+ 00011147  0x00001558 fetch  0x00000001 , 0x000006a1 
+ 00011148  0x00001559 set1  0x00000002 , 0x0000003f 
+ 00011149  0x0000155a store  0x00000001 , 0x000006a1 
+ 00011150  0x0000155b rtn 
+ 00011151  0x00001561 copy  0x00000006 , 0x00000011 
+ 00011152  0x00001562 fetch  0x00000001 , 0x000043cb 
+ 00011153  0x00001563 beq  0x00000006 , 0x000066d5 
+ 00011154  0x00001564 beq  0x0000000f , 0x0000503d 
+ 00011155  0x00001565 copy  0x00000011 , 0x00000006 
+ 00011156  0x00001566 ifetch  0x00000003 , 0x00000006 
+ 00011157  0x00001567 store  0x00000003 , 0x00004397 
+ 00011158  0x00001569 beq  0x00000002 , 0x00002bab 
+ 00011159  0x0000156a beq  0x00000003 , 0x00002bb0 
+ 00011160  0x0000156b beq  0x00000004 , 0x00002bb3 
+ 00011161  0x0000156c beq  0x00000006 , 0x00002bf7 
+ 00011162  0x0000156d beq  0x00000008 , 0x00002c44 
+ 00011163  0x0000156e beq  0x0000000a , 0x00002d19 
+ 00011164  0x0000156f beq  0x0000000c , 0x00002d4c 
+ 00011165  0x00001570 beq  0x00000010 , 0x00002d63 
+ 00011166  0x00001571 beq  0x00000012 , 0x00002da8 
+ 00011167  0x00001572 beq  0x00000016 , 0x00002dce 
+ 00011168  0x00001573 beq  0x00000018 , 0x00002de1 
+ 00011169  0x00001574 beq  0x0000001e , 0x00002de6 
+ 00011170  0x00001575 beq  0x00000052 , 0x00002dea 
+ 00011171  0x00001576 rtn 
+ 00011172  0x0000157a force  0x00000003 , 0x00000011 
+ 00011173  0x0000157b call  0x00002e10 
+ 00011174  0x0000157c setarg  0x00000002 
+ 00011175  0x0000157e istore  0x00000001 , 0x00000005 
+ 00011176  0x0000157f fetch  0x00000002 , 0x000042e1 
+ 00011177  0x00001580 istore  0x00000002 , 0x00000005 
+ 00011178  0x00001581 rtn 
+ 00011179  0x00001585 call  0x00002bb0 
+ 00011180  0x00001587 force  0x00000003 , 0x00000011 
+ 00011181  0x00001588 call  0x00002e10 
+ 00011182  0x00001589 setarg  0x00000003 
+ 00011183  0x0000158a branch  0x00002ba7 
+ 00011184  0x0000158d rshift8  0x0000003f , 0x0000003f 
+ 00011185  0x0000158e store  0x00000002 , 0x000042e3 
+ 00011186  0x0000158f rtn 
+ 00011187  0x00001592 call  0x00002e41 
+ 00011188  0x00001593 call  0x00007dba 
+ 00011189  0x00001594 branch  0x00002bc3 
+ 00011190  0x00001598 ifetch  0x00000002 , 0x00000006 
+ 00011191  0x00001599 and_into  0x000000ff , 0x0000003f 
+ 00011192  0x0000159a rtn  0x00000034 
+ 00011193  0x0000159b isub  0x00000012 , 0x0000003e 
+ 00011194  0x0000159c rtn  0x00000005 
+ 00011195  0x0000159d nrtn  0x00000002 
+ 00011196  0x0000159e isub  0x00000013 , 0x0000003e 
+ 00011197  0x0000159f rtn  0x00000005 
+ 00011198  0x000015a0 branch  0x00002bc1 , 0x00000002 
+ 00011199  0x000015a1 force  0x00000001 , 0x0000003e 
+ 00011200  0x000015a2 rtn 
+ 00011201  0x000015a4 force  0x00000000 , 0x0000003f 
+ 00011202  0x000015a5 rtn 
+ 00011203  0x000015a9 arg  0x00000003 , 0x0000000b 
+ 00011204  0x000015aa call  0x00002cc7 
+ 00011205  0x000015ac call  0x00002bb6 
+ 00011206  0x000015ad branch  0x00002bf5 , 0x00000034 
+ 00011207  0x000015ae nbranch  0x00002bf3 , 0x00000002 
+ 00011208  0x000015af increase  0xfffffffe , 0x00000006 
+ 00011209  0x000015b0 call  0x00007c6d 
+ 00011210  0x000015b1 call  0x00007c64 
+ 00011211  0x000015b2 nbranch  0x00002be3 , 0x00000028 
+ 00011212  0x000015b3 call  0x00007c51 
+ 00011213  0x000015b4 storer  0x0000000b , 0x00000004 , 0x00000680 
+ 00011214  0x000015b5 force  0x0000001e , 0x00000011 
+ 00011215  0x000015b6 call  0x00002e10 
+ 00011216  0x000015b7 fetchr  0x0000000b , 0x00000004 , 0x00000680 
+ 00011217  0x000015b8 call  0x00007c60 
+ 00011218  0x000015b9 call  0x00007dbc 
+ 00011219  0x000015ba setarg  0x00000005 
+ 00011220  0x000015bb istore  0x00000001 , 0x00000005 
+ 00011221  0x000015bc call  0x00007c67 
+ 00011222  0x000015bd ifetch  0x00000002 , 0x00000006 
+ 00011223  0x000015be ifetchr  0x00000011 , 0x00000001 , 0x00000006 
+ 00011224  0x000015bf sub  0x00000011 , 0x00000010 , 0x0000003e 
+ 00011225  0x000015c0 branch  0x00002bdf , 0x00000005 
+ 00011226  0x000015c1 sub  0x00000011 , 0x00000002 , 0x0000003e 
+ 00011227  0x000015c2 nbranch  0x00002e03 , 0x00000005 
+ 00011228  0x000015c4 setarg  0x00000001 
+ 00011229  0x000015c5 istore  0x00000001 , 0x00000005 
+ 00011230  0x000015c6 branch  0x00002be8 
+ 00011231  0x000015c9 setarg  0x00000002 
+ 00011232  0x000015ca istore  0x00000001 , 0x00000005 
+ 00011233  0x000015cb arg  0x00000001 , 0x0000000b 
+ 00011234  0x000015cc branch  0x00002be8 
+ 00011235  0x000015cf call  0x00007c67 
+ 00011236  0x000015d0 ifetch  0x00000002 , 0x00000006 
+ 00011237  0x000015d1 ifetch  0x00000001 , 0x00000006 
+ 00011238  0x000015d2 isub  0x00000011 , 0x0000003e 
+ 00011239  0x000015d3 nbranch  0x00002bf5 , 0x00000005 
+ 00011240  0x000015d6 call  0x00007c67 
+ 00011241  0x000015d7 ifetch  0x00000002 , 0x00000006 
+ 00011242  0x000015d8 and_into  0x000000ff , 0x0000003f 
+ 00011243  0x000015d9 istore  0x00000002 , 0x00000005 
+ 00011244  0x000015da ifetchr  0x00000039 , 0x00000001 , 0x00000006 
+ 00011245  0x000015db call  0x00007cda 
+ 00011246  0x000015dc call  0x00007c6a 
+ 00011247  0x000015dd increase  0xffffffff , 0x0000000b 
+ 00011248  0x000015de branch  0x00002bf5 , 0x00000005 
+ 00011249  0x000015e0 call  0x00002cdd 
+ 00011250  0x000015e1 branch  0x00002bc5 
+ 00011251  0x000015e4 call  0x00002cdd 
+ 00011252  0x000015e5 branch  0x00002bf1 
+ 00011253  0x000015e8 branch  0x00002e03 , 0x00000028 
+ 00011254  0x000015e9 branch  0x00002e34 
+ 00011255  0x000015ed call  0x00002e41 
+ 00011256  0x000015ee ifetch  0x00000002 , 0x00000006 
+ 00011257  0x000015ef store  0x00000002 , 0x0000439e 
+ 00011258  0x000015f0 call  0x00007c6d 
+ 00011259  0x000015f1 arg  0x000006b5 , 0x00000005 
+ 00011260  0x000015f2 fetch  0x00000002 , 0x00004335 
+ 00011261  0x000015f3 increase  0xfffffff9 , 0x0000003f 
+ 00011262  0x000015f4 call  0x00002e4f 
+ 00011263  0x000015f5 branch  0x00002c0a 
+ 00011264  0x000015f9 disable  0x00000028 
+ 00011265  0x000015fa fetcht  0x00000002 , 0x000006b1 
+ 00011266  0x000015fb fetch  0x00000002 , 0x000006b3 
+ 00011267  0x000015fc isub  0x00000002 , 0x0000003e 
+ 00011268  0x000015fd nbranch  0x00002c07 , 0x00000002 
+ 00011269  0x000015fe deposit  0x00000002 
+ 00011270  0x000015ff rtnne  0x00000000 
+ 00011271  0x00001601 enable  0x00000028 
+ 00011272  0x00001602 jam  0x00000001 , 0x000001b9 
+ 00011273  0x00001603 branch  0x00002e05 
+ 00011274  0x00001607 call  0x00002c00 
+ 00011275  0x00001608 rtn  0x00000028 
+ 00011276  0x00001609 fetcht  0x00000002 , 0x0000439e 
+ 00011277  0x0000160a setarg  0x00002800 
+ 00011278  0x0000160b isub  0x00000002 , 0x0000003e 
+ 00011279  0x0000160c branch  0x00002c11 , 0x00000005 
+ 00011280  0x0000160d branch  0x00002e03 
+ 00011281  0x00001611 jam  0x00000000 , 0x0000439a 
+ 00011282  0x00001612 fetcht  0x00000002 , 0x000006b1 
+ 00011283  0x00001613 storet  0x00000002 , 0x00000678 
+ 00011284  0x00001614 call  0x00002d04 
+ 00011285  0x00001615 nbranch  0x00002e03 , 0x00000034 
+ 00011286  0x00001617 fetcht  0x00000002 , 0x00000678 
+ 00011287  0x00001618 call  0x00002d04 
+ 00011288  0x00001619 nbranch  0x00002c2a , 0x00000034 
+ 00011289  0x0000161a copy  0x00000006 , 0x00000011 
+ 00011290  0x0000161b fetch  0x00000001 , 0x000006c6 
+ 00011291  0x0000161c copy  0x0000003f , 0x00000039 
+ 00011292  0x0000161d fetcht  0x00000001 , 0x000006b5 
+ 00011293  0x0000161e isub  0x00000002 , 0x0000003e 
+ 00011294  0x0000161f nbranch  0x00002c26 , 0x00000005 
+ 00011295  0x00001620 arg  0x000006b6 , 0x00000012 
+ 00011296  0x00001621 call  0x00007d64 
+ 00011297  0x00001623 branch  0x00002c2d , 0x00000005 
+ 00011298  0x00001625 fetch  0x00000002 , 0x000006ce 
+ 00011299  0x00001626 fetcht  0x00000002 , 0x0000439e 
+ 00011300  0x00001627 isub  0x00000002 , 0x0000003e 
+ 00011301  0x00001628 branch  0x00002c35 , 0x00000005 
+ 00011302  0x0000162a fetch  0x00000002 , 0x00000678 
+ 00011303  0x0000162b increase  0x00000001 , 0x0000003f 
+ 00011304  0x0000162c store  0x00000002 , 0x00000678 
+ 00011305  0x0000162d branch  0x00002c16 
+ 00011306  0x00001630 fetch  0x00000001 , 0x0000439a 
+ 00011307  0x00001631 beq  0x00000001 , 0x00002c35 
+ 00011308  0x00001632 branch  0x00002e03 
+ 00011309  0x00001636 fetch  0x00000002 , 0x000006ce 
+ 00011310  0x00001637 fetcht  0x00000002 , 0x0000439e 
+ 00011311  0x00001638 isub  0x00000002 , 0x0000003e 
+ 00011312  0x00001639 nbranch  0x00002c26 , 0x00000005 
+ 00011313  0x0000163a jam  0x00000001 , 0x0000439a 
+ 00011314  0x0000163c fetcht  0x00000002 , 0x00000678 
+ 00011315  0x0000163d storet  0x00000002 , 0x000006c9 
+ 00011316  0x0000163e branch  0x00002c26 
+ 00011317  0x00001641 fetch  0x00000001 , 0x0000439a 
+ 00011318  0x00001642 beq  0x00000000 , 0x00002c26 
+ 00011319  0x00001643 jam  0x00000002 , 0x0000439a 
+ 00011320  0x00001644 fetcht  0x00000002 , 0x00000678 
+ 00011321  0x00001645 increase  0xffffffff , 0x00000002 
+ 00011322  0x00001646 storet  0x00000002 , 0x000006cb 
+ 00011323  0x00001649 arg  0x00000005 , 0x00000011 
+ 00011324  0x0000164a call  0x00002e10 
+ 00011325  0x0000164b setarg  0x00000007 
+ 00011326  0x0000164c istore  0x00000001 , 0x00000005 
+ 00011327  0x0000164d fetch  0x00000002 , 0x000006c9 
+ 00011328  0x0000164e istore  0x00000002 , 0x00000005 
+ 00011329  0x0000164f fetch  0x00000002 , 0x000006cb 
+ 00011330  0x00001650 istore  0x00000002 , 0x00000005 
+ 00011331  0x00001651 rtn 
+ 00011332  0x00001656 call  0x00002e41 
+ 00011333  0x00001657 call  0x00002e4a 
+ 00011334  0x00001658 branch  0x00002c47 
+ 00011335  0x0000165b fetcht  0x00000002 , 0x000006b1 
+ 00011336  0x0000165c storet  0x00000002 , 0x00000678 
+ 00011337  0x0000165d call  0x00002cc7 
+ 00011338  0x0000165e call  0x00002cd2 
+ 00011339  0x0000165f increase  0xfffffffe , 0x00000006 
+ 00011340  0x00001660 copy  0x00000006 , 0x0000003f 
+ 00011341  0x00001661 store  0x00000002 , 0x000006c7 
+ 00011342  0x00001663 fetcht  0x00000002 , 0x000006b6 
+ 00011343  0x00001664 setarg  0x00002a00 
+ 00011344  0x00001665 isub  0x00000002 , 0x0000003e 
+ 00011345  0x00001666 branch  0x00002cb2 , 0x00000005 
+ 00011346  0x00001667 setarg  0x00002803 
+ 00011347  0x00001668 isub  0x00000002 , 0x0000003e 
+ 00011348  0x00001669 nbranch  0x00002c9c , 0x00000005 
+ 00011349  0x0000166a arg  0x00000002 , 0x0000000b 
+ 00011350  0x0000166c call  0x00002e17 
+ 00011351  0x0000166d nbranch  0x00002c79 , 0x00000002 
+ 00011352  0x0000166e fetcht  0x00000002 , 0x00000678 
+ 00011353  0x0000166f call  0x00002d02 
+ 00011354  0x00001670 nbranch  0x00002c79 , 0x00000034 
+ 00011355  0x00001671 call  0x00002e1b 
+ 00011356  0x00001672 nbranch  0x00002c77 , 0x00000005 
+ 00011357  0x00001673 nbranch  0x00002c7b , 0x00000028 
+ 00011358  0x00001674 disable  0x00000028 
+ 00011359  0x00001675 call  0x00002e46 
+ 00011360  0x00001676 copy  0x0000003f , 0x00000011 
+ 00011361  0x00001677 call  0x00002e10 
+ 00011362  0x00001678 setarg  0x00000009 
+ 00011363  0x00001679 istore  0x00000001 , 0x00000005 
+ 00011364  0x0000167a copy  0x00000005 , 0x00000030 
+ 00011365  0x0000167b increase  0x00000001 , 0x00000005 
+ 00011366  0x0000167d call  0x00002c89 
+ 00011367  0x0000167e call  0x00002e13 
+ 00011368  0x0000167f call  0x00002d02 
+ 00011369  0x00001680 call  0x00002c90 
+ 00011370  0x00001681 fetch  0x00000001 , 0x000006cd 
+ 00011371  0x00001682 add  0x0000003f , 0x00000005 , 0x00000011 
+ 00011372  0x00001683 istorer  0x00000011 , 0x00000001 , 0x00000030 
+ 00011373  0x00001685 sub  0x00000011 , 0x00000007 , 0x0000003e 
+ 00011374  0x00001686 ncall  0x00007dbe , 0x00000005 
+ 00011375  0x00001687 call  0x00007dc0 , 0x00000005 
+ 00011376  0x00001688 call  0x00002e46 
+ 00011377  0x00001689 increase  0xfffffffe , 0x0000003f 
+ 00011378  0x0000168a idiv  0x00000011 
+ 00011379  0x0000168b call  0x00007d62 
+ 00011380  0x0000168c quotient  0x0000000b 
+ 00011381  0x0000168d increase  0xffffffff , 0x0000000b 
+ 00011382  0x0000168e branch  0x00002c79 , 0x00000005 
+ 00011383  0x00001690 call  0x00002e13 
+ 00011384  0x00001691 branch  0x00002c56 
+ 00011385  0x00001693 branch  0x00002e03 , 0x00000028 
+ 00011386  0x00001694 branch  0x00002e34 
+ 00011387  0x00001697 call  0x00002e24 
+ 00011388  0x00001698 call  0x00002e13 
+ 00011389  0x00001699 call  0x00002d02 
+ 00011390  0x0000169a call  0x00002d96 
+ 00011391  0x0000169b nbranch  0x00002c79 , 0x00000034 
+ 00011392  0x0000169d call  0x00007c64 
+ 00011393  0x0000169e fetch  0x00000002 , 0x00000678 
+ 00011394  0x0000169f increase  0xffffffff , 0x0000003f 
+ 00011395  0x000016a0 istore  0x00000002 , 0x00000005 
+ 00011396  0x000016a1 call  0x00002e30 
+ 00011397  0x000016a2 call  0x00002c90 
+ 00011398  0x000016a3 increase  0xffffffff , 0x0000000b 
+ 00011399  0x000016a4 branch  0x00002c79 , 0x00000005 
+ 00011400  0x000016a5 branch  0x00002c77 
+ 00011401  0x000016a9 fetch  0x00000002 , 0x00000678 
+ 00011402  0x000016aa istore  0x00000002 , 0x00000005 
+ 00011403  0x000016ac fetch  0x00000001 , 0x000006c6 
+ 00011404  0x000016ad copy  0x0000003f , 0x00000039 
+ 00011405  0x000016ae call  0x00007c67 
+ 00011406  0x000016af call  0x00007ccc 
+ 00011407  0x000016b0 branch  0x00007c6a 
+ 00011408  0x000016b2 call  0x00007c64 
+ 00011409  0x000016b3 fetch  0x00000002 , 0x00000678 
+ 00011410  0x000016b4 istore  0x00000002 , 0x00000005 
+ 00011411  0x000016b5 call  0x00007c6a 
+ 00011412  0x000016b6 fetch  0x00000001 , 0x000006cd 
+ 00011413  0x000016b7 copy  0x0000003f , 0x00000039 
+ 00011414  0x000016b8 call  0x00007c64 
+ 00011415  0x000016b9 call  0x00007c67 
+ 00011416  0x000016ba isub  0x00000039 , 0x00000006 
+ 00011417  0x000016bb increase  0xffffffff , 0x00000006 
+ 00011418  0x000016bc call  0x00007ccc 
+ 00011419  0x000016bd branch  0x00007c6a 
+ 00011420  0x000016c0 bpatchx  0x00000055 , 0x0000402a 
+ 00011421  0x000016c1 call  0x00002ce0 
+ 00011422  0x000016c2 branch  0x00002e03 , 0x00000034 
+ 00011423  0x000016c3 copy  0x00000006 , 0x00000013 
+ 00011424  0x000016c5 call  0x00002e46 
+ 00011425  0x000016c6 copy  0x00000013 , 0x00000006 
+ 00011426  0x000016c7 ifetcht  0x00000001 , 0x00000006 
+ 00011427  0x000016c8 increase  0x00000004 , 0x00000002 
+ 00011428  0x000016c9 call  0x00007db0 
+ 00011429  0x000016ca copy  0x0000003f , 0x00000013 
+ 00011430  0x000016cb copy  0x0000003f , 0x00000011 
+ 00011431  0x000016cc call  0x00007c6d 
+ 00011432  0x000016cd call  0x00002e10 
+ 00011433  0x000016cf setarg  0x00000009 
+ 00011434  0x000016d0 istore  0x00000001 , 0x00000005 
+ 00011435  0x000016d1 add  0x00000013 , 0xfffffffe , 0x0000003f 
+ 00011436  0x000016d2 add  0x0000003f , 0xfffffffe , 0x00000039 
+ 00011437  0x000016d3 istore  0x00000001 , 0x00000005 
+ 00011438  0x000016d4 fetch  0x00000002 , 0x000006de 
+ 00011439  0x000016d5 istore  0x00000002 , 0x00000005 
+ 00011440  0x000016d6 call  0x00007c67 
+ 00011441  0x000016d7 branch  0x00007ccc 
+ 00011442  0x000016db call  0x00002ce0 
+ 00011443  0x000016dc branch  0x00002e03 , 0x00000034 
+ 00011444  0x000016dd increase  0xfffffffb , 0x00000006 
+ 00011445  0x000016de ifetch  0x00000002 , 0x00000006 
+ 00011446  0x000016df store  0x00000002 , 0x00000678 
+ 00011447  0x000016e0 call  0x00002e46 
+ 00011448  0x000016e1 fetcht  0x00000001 , 0x0000426b 
+ 00011449  0x000016e2 increase  0x00000004 , 0x00000002 
+ 00011450  0x000016e3 call  0x00007db0 
+ 00011451  0x000016e4 copy  0x0000003f , 0x00000013 
+ 00011452  0x000016e5 copy  0x0000003f , 0x00000011 
+ 00011453  0x000016e6 call  0x00002e10 
+ 00011454  0x000016e7 setarg  0x00000009 
+ 00011455  0x000016e8 istore  0x00000001 , 0x00000005 
+ 00011456  0x000016e9 add  0x00000013 , 0xfffffffe , 0x0000003f 
+ 00011457  0x000016ea add  0x0000003f , 0xfffffffe , 0x00000039 
+ 00011458  0x000016eb istore  0x00000001 , 0x00000005 
+ 00011459  0x000016ec fetch  0x00000002 , 0x00000678 
+ 00011460  0x000016ed istore  0x00000002 , 0x00000005 
+ 00011461  0x000016ee arg  0x0000426c , 0x00000006 
+ 00011462  0x000016ef branch  0x00007ccc 
+ 00011463  0x000016f3 bpatchx  0x00000056 , 0x0000402a 
+ 00011464  0x000016f4 fetch  0x00000002 , 0x000006b1 
+ 00011465  0x000016f5 iforce  0x00000012 
+ 00011466  0x000016f6 fetch  0x00000002 , 0x000006b3 
+ 00011467  0x000016f7 iforce  0x00000013 
+ 00011468  0x000016f8 fetch  0x00000002 , 0x000042f7 
+ 00011469  0x000016f9 iforce  0x00000006 
+ 00011470  0x000016fa branch  0x00007dba 
+ 00011471  0x000016ff call  0x00002cd2 
+ 00011472  0x00001700 branch  0x00002cdd , 0x00000005 
+ 00011473  0x00001701 rtn 
+ 00011474  0x00001704 bpatchx  0x00000057 , 0x0000402a 
+ 00011475  0x00001705 fetch  0x00000002 , 0x000042f7 
+ 00011476  0x00001706 iforce  0x00000006 
+ 00011477  0x00001708 ifetch  0x00000002 , 0x00000006 
+ 00011478  0x00001709 and_into  0x000000ff , 0x0000003f 
+ 00011479  0x0000170a rtn  0x00000034 
+ 00011480  0x0000170b isub  0x00000002 , 0x0000003e 
+ 00011481  0x0000170c rtn  0x00000005 
+ 00011482  0x0000170d call  0x00002cdd 
+ 00011483  0x0000170e call  0x00002cdd 
+ 00011484  0x0000170f branch  0x00002cd5 
+ 00011485  0x00001713 ifetch  0x00000001 , 0x00000006 
+ 00011486  0x00001714 iadd  0x00000006 , 0x00000006 
+ 00011487  0x00001715 rtn 
+ 00011488  0x00001719 bpatchx  0x00000058 , 0x0000402b 
+ 00011489  0x0000171a fetch  0x00000002 , 0x000042f7 
+ 00011490  0x0000171b iforce  0x00000006 
+ 00011491  0x0000171d ifetch  0x00000002 , 0x00000006 
+ 00011492  0x0000171e and_into  0x000000ff , 0x0000003f 
+ 00011493  0x0000171f rtn  0x00000034 
+ 00011494  0x00001720 store  0x00000002 , 0x000006de 
+ 00011495  0x00001721 ifetch  0x00000001 , 0x00000006 
+ 00011496  0x00001722 copy  0x00000006 , 0x00000005 
+ 00011497  0x00001723 iadd  0x00000006 , 0x00000006 
+ 00011498  0x00001724 fetcht  0x00000001 , 0x000006b5 
+ 00011499  0x00001725 isub  0x00000002 , 0x0000003e 
+ 00011500  0x00001726 nbranch  0x00002cf3 , 0x00000005 
+ 00011501  0x00001727 copy  0x0000003f , 0x00000039 
+ 00011502  0x00001728 copy  0x00000005 , 0x00000012 
+ 00011503  0x00001729 arg  0x000006b6 , 0x00000011 
+ 00011504  0x0000172a call  0x00007d64 
+ 00011505  0x0000172b rtn  0x00000005 
+ 00011506  0x0000172c fetch  0x00000001 , 0x000006b5 
+ 00011507  0x0000172e iadd  0x00000005 , 0x00000006 
+ 00011508  0x0000172f call  0x00002cdd 
+ 00011509  0x00001730 branch  0x00002ce3 
+ 00011510  0x00001738 arg  0x00000001 , 0x00000002 
+ 00011511  0x00001739 fetch  0x00000002 , 0x000042f7 
+ 00011512  0x0000173a iforce  0x00000006 
+ 00011513  0x0000173b copy  0x00000006 , 0x00000005 
+ 00011514  0x0000173d ifetch  0x00000002 , 0x00000006 
+ 00011515  0x0000173e and_into  0x000000ff , 0x0000003f 
+ 00011516  0x0000173f rtn  0x00000034 
+ 00011517  0x00001740 add  0x0000003f , 0x00000001 , 0x00000002 
+ 00011518  0x00001741 call  0x00002cdd 
+ 00011519  0x00001742 call  0x00002cdd 
+ 00011520  0x00001743 copy  0x00000006 , 0x00000005 
+ 00011521  0x00001744 branch  0x00002cfa 
+ 00011522  0x00001748 fetch  0x00000002 , 0x000006c7 
+ 00011523  0x00001749 branch  0x00002d06 
+ 00011524  0x0000174c bpatchx  0x00000059 , 0x0000402b 
+ 00011525  0x0000174d fetch  0x00000002 , 0x000042f7 
+ 00011526  0x0000174f iforce  0x00000006 
+ 00011527  0x00001751 ifetch  0x00000002 , 0x00000006 
+ 00011528  0x00001752 and_into  0x000000ff , 0x0000003f 
+ 00011529  0x00001753 branch  0x00002d0f , 0x00000034 
+ 00011530  0x00001754 isub  0x00000002 , 0x0000003e 
+ 00011531  0x00001755 branch  0x00002d10 , 0x00000005 
+ 00011532  0x00001756 call  0x00002cdd 
+ 00011533  0x00001757 call  0x00002cdd 
+ 00011534  0x00001758 branch  0x00002d07 
+ 00011535  0x0000175b branch  0x00007dc8 
+ 00011536  0x0000175e ifetch  0x00000001 , 0x00000006 
+ 00011537  0x0000175f store  0x00000001 , 0x000006cd 
+ 00011538  0x00001760 copy  0x0000003f , 0x00000039 
+ 00011539  0x00001761 arg  0x000006ce , 0x00000005 
+ 00011540  0x00001762 call  0x00007ccc 
+ 00011541  0x00001763 ifetch  0x00000001 , 0x00000006 
+ 00011542  0x00001764 store  0x00000001 , 0x000006c6 
+ 00011543  0x00001765 call  0x00007c6d 
+ 00011544  0x00001766 branch  0x00007dca 
+ 00011545  0x0000176b call  0x00002dc7 
+ 00011546  0x0000176c fetcht  0x00000002 , 0x00004398 
+ 00011547  0x0000176d fetch  0x00000001 , 0x00004321 
+ 00011548  0x0000176e bbit1  0x00000003 , 0x00002d42 
+ 00011549  0x00001772 call  0x00002cd2 
+ 00011550  0x00001773 nbranch  0x00002e03 , 0x00000005 
+ 00011551  0x00001774 call  0x00002d48 , 0x00000028 
+ 00011552  0x00001775 rtn  0x00000028 
+ 00011553  0x00001776 call  0x00002cdd 
+ 00011554  0x00001777 increase  0xfffffffe , 0x00000006 
+ 00011555  0x00001778 ifetch  0x00000002 , 0x00000006 
+ 00011556  0x00001779 arg  0x00002a00 , 0x00000002 
+ 00011557  0x0000177a isub  0x00000002 , 0x0000003e 
+ 00011558  0x0000177b branch  0x00002d36 , 0x00000005 
+ 00011559  0x0000177c copy  0x00000006 , 0x00000013 
+ 00011560  0x0000177d call  0x00002e46 
+ 00011561  0x0000177e copy  0x00000013 , 0x00000006 
+ 00011562  0x0000177f ifetcht  0x00000001 , 0x00000006 
+ 00011563  0x00001780 increase  0x00000001 , 0x00000002 
+ 00011564  0x00001781 call  0x00007db0 
+ 00011565  0x00001783 copy  0x0000003f , 0x00000013 
+ 00011566  0x00001784 copy  0x0000003f , 0x00000011 
+ 00011567  0x00001785 call  0x00007c6d 
+ 00011568  0x00001786 call  0x00002e10 
+ 00011569  0x00001787 setarg  0x0000000b 
+ 00011570  0x00001788 istore  0x00000001 , 0x00000005 
+ 00011571  0x00001789 add  0x00000013 , 0xffffffff , 0x00000039 
+ 00011572  0x0000178a call  0x00007c67 
+ 00011573  0x0000178b branch  0x00007cda 
+ 00011574  0x0000178e call  0x00002e46 
+ 00011575  0x0000178f fetcht  0x00000001 , 0x0000426b 
+ 00011576  0x00001790 increase  0x00000001 , 0x00000002 
+ 00011577  0x00001791 call  0x00007db0 
+ 00011578  0x00001792 copy  0x0000003f , 0x00000013 
+ 00011579  0x00001793 copy  0x0000003f , 0x00000011 
+ 00011580  0x00001795 call  0x00002e10 
+ 00011581  0x00001796 setarg  0x0000000b 
+ 00011582  0x00001797 istore  0x00000001 , 0x00000005 
+ 00011583  0x00001798 add  0x00000013 , 0xffffffff , 0x00000039 
+ 00011584  0x00001799 arg  0x0000426c , 0x00000006 
+ 00011585  0x0000179a branch  0x00007cda 
+ 00011586  0x0000179e fetch  0x00000002 , 0x00004332 
+ 00011587  0x0000179f isub  0x00000002 , 0x0000003e 
+ 00011588  0x000017a0 nbranch  0x00002d1d , 0x00000005 
+ 00011589  0x000017a1 nbranch  0x00002d1d , 0x00000028 
+ 00011590  0x000017a3 jam  0x00000005 , 0x000001b9 
+ 00011591  0x000017a4 branch  0x00002e05 
+ 00011592  0x000017a7 increase  0xfffffffe , 0x00000006 
+ 00011593  0x000017a8 ifetch  0x00000002 , 0x00000006 
+ 00011594  0x000017a9 bbit1  0x0000000e , 0x00002d46 
+ 00011595  0x000017aa branch  0x00007dbc 
+ 00011596  0x000017ad ifetch  0x00000002 , 0x00000006 
+ 00011597  0x000017ae store  0x00000002 , 0x000006b5 
+ 00011598  0x000017af iforce  0x00000011 
+ 00011599  0x000017b0 fetcht  0x00000002 , 0x00004398 
+ 00011600  0x000017b2 call  0x00002ccf 
+ 00011601  0x000017b3 branch  0x00002e03 , 0x00000034 
+ 00011602  0x000017b4 ifetch  0x00000001 , 0x00000006 
+ 00011603  0x000017b5 isub  0x00000011 , 0x00000039 
+ 00011604  0x000017b6 nbranch  0x00002e03 , 0x00000002 
+ 00011605  0x000017b7 call  0x00007c6d 
+ 00011606  0x000017b8 call  0x00002e46 
+ 00011607  0x000017b9 add  0x00000039 , 0x00000001 , 0x00000002 
+ 00011608  0x000017ba call  0x00007db0 
+ 00011609  0x000017bc copy  0x0000003f , 0x00000011 
+ 00011610  0x000017bd copy  0x0000003f , 0x00000013 
+ 00011611  0x000017be call  0x00002e10 
+ 00011612  0x000017bf setarg  0x0000000d 
+ 00011613  0x000017c0 istore  0x00000001 , 0x00000005 
+ 00011614  0x000017c1 add  0x00000013 , 0xffffffff , 0x00000039 
+ 00011615  0x000017c2 fetcht  0x00000002 , 0x000006b5 
+ 00011616  0x000017c3 call  0x00007c67 
+ 00011617  0x000017c4 iadd  0x00000002 , 0x00000006 
+ 00011618  0x000017c5 branch  0x00007ccc 
+ 00011619  0x000017ca call  0x00002e41 
+ 00011620  0x000017cb call  0x00002e4a 
+ 00011621  0x000017cc branch  0x00002d66 
+ 00011622  0x000017d3 arg  0x00000002 , 0x0000000b 
+ 00011623  0x000017d4 fetcht  0x00000002 , 0x000006b1 
+ 00011624  0x000017d5 storet  0x00000002 , 0x00000678 
+ 00011625  0x000017d6 call  0x00002cd2 
+ 00011626  0x000017d7 increase  0xfffffffe , 0x00000006 
+ 00011627  0x000017d8 copy  0x00000006 , 0x0000003f 
+ 00011628  0x000017d9 store  0x00000002 , 0x000006c7 
+ 00011629  0x000017db call  0x00002e17 
+ 00011630  0x000017dc nbranch  0x00002d9e , 0x00000002 
+ 00011631  0x000017dd fetcht  0x00000002 , 0x00000678 
+ 00011632  0x000017de call  0x00002d02 
+ 00011633  0x000017df nbranch  0x00002da1 , 0x00000034 
+ 00011634  0x000017e1 call  0x00002e1b 
+ 00011635  0x000017e2 nbranch  0x00002d94 , 0x00000005 
+ 00011636  0x000017e3 copy  0x0000000b , 0x0000003f 
+ 00011637  0x000017e4 beq  0x00000000 , 0x00002da1 
+ 00011638  0x000017e5 nbranch  0x00002d8a , 0x00000028 
+ 00011639  0x000017e6 disable  0x00000028 
+ 00011640  0x000017e8 call  0x00002e46 
+ 00011641  0x000017e9 copy  0x0000003f , 0x00000011 
+ 00011642  0x000017ea call  0x00002e10 
+ 00011643  0x000017eb setarg  0x00000011 
+ 00011644  0x000017ec istore  0x00000001 , 0x00000005 
+ 00011645  0x000017ed fetch  0x00000001 , 0x000006c6 
+ 00011646  0x000017ee add  0x0000003f , 0x00000004 , 0x00000011 
+ 00011647  0x000017ef istorer  0x00000011 , 0x00000001 , 0x00000005 
+ 00011648  0x000017f0 call  0x00007c6a 
+ 00011649  0x000017f1 sub  0x00000011 , 0x00000006 , 0x0000003e 
+ 00011650  0x000017f2 ncall  0x00007dbe , 0x00000005 
+ 00011651  0x000017f3 call  0x00007dc0 , 0x00000005 
+ 00011652  0x000017f4 call  0x00002e46 
+ 00011653  0x000017f5 increase  0xfffffffe , 0x0000003f 
+ 00011654  0x000017f6 idiv  0x00000011 
+ 00011655  0x000017f7 call  0x00007d62 
+ 00011656  0x000017f8 quotient  0x0000000b 
+ 00011657  0x000017f9 branch  0x00002d90 
+ 00011658  0x000017fb call  0x00002d98 
+ 00011659  0x000017fc nbranch  0x00002da1 , 0x00000034 
+ 00011660  0x000017fd fetch  0x00000002 , 0x00000678 
+ 00011661  0x000017fe increase  0xffffffff , 0x0000003f 
+ 00011662  0x000017ff store  0x00000002 , 0x000006cb 
+ 00011663  0x00001800 call  0x00002e2a 
+ 00011664  0x00001802 fetch  0x00000002 , 0x00000678 
+ 00011665  0x00001803 store  0x00000002 , 0x000006c9 
+ 00011666  0x00001804 call  0x00002e24 
+ 00011667  0x00001805 increase  0xffffffff , 0x0000000b 
+ 00011668  0x00001808 call  0x00002e13 
+ 00011669  0x00001809 branch  0x00002d6d 
+ 00011670  0x0000180c fetch  0x00000001 , 0x000006cd 
+ 00011671  0x0000180d branch  0x00002d99 
+ 00011672  0x00001811 fetch  0x00000001 , 0x000006c6 
+ 00011673  0x00001812 branch  0x00002d9c , 0x0000002c 
+ 00011674  0x00001813 increase  0xfffffffe , 0x0000003f 
+ 00011675  0x00001814 rtn 
+ 00011676  0x00001817 increase  0xfffffff0 , 0x0000003f 
+ 00011677  0x00001818 rtn 
+ 00011678  0x0000181b fetch  0x00000002 , 0x00000678 
+ 00011679  0x0000181c store  0x00000002 , 0x000006cb 
+ 00011680  0x0000181d branch  0x00002da5 
+ 00011681  0x0000181f fetch  0x00000002 , 0x00000678 
+ 00011682  0x00001820 increase  0xffffffff , 0x0000003f 
+ 00011683  0x00001821 store  0x00000002 , 0x000006cb 
+ 00011684  0x00001822 branch  0x00002da5 
+ 00011685  0x00001824 branch  0x00002e03 , 0x00000028 
+ 00011686  0x00001825 call  0x00002e2a 
+ 00011687  0x00001826 branch  0x00002e34 
+ 00011688  0x0000182c copy  0x00000006 , 0x00000011 
+ 00011689  0x0000182d fetch  0x00000002 , 0x00004335 
+ 00011690  0x0000182e add  0x0000003f , 0xfffffffd , 0x00000012 
+ 00011691  0x0000182f call  0x00002929 
+ 00011692  0x00001831 bpatchx  0x0000005a , 0x0000402b 
+ 00011693  0x00001832 call  0x00002dc7 
+ 00011694  0x00001833 fetcht  0x00000002 , 0x00004398 
+ 00011695  0x00001834 call  0x00002cd2 
+ 00011696  0x00001835 nbranch  0x00002dc5 , 0x00000005 
+ 00011697  0x00001836 call  0x00002dc1 , 0x00000028 
+ 00011698  0x00001837 rtn  0x00000028 
+ 00011699  0x00001839 fetch  0x00000001 , 0x00004321 
+ 00011700  0x0000183a bbit0  0x00000004 , 0x00002dbc 
+ 00011701  0x0000183c fetcht  0x00000002 , 0x00004398 
+ 00011702  0x0000183d fetch  0x00000002 , 0x00004332 
+ 00011703  0x0000183e isub  0x00000002 , 0x0000003e 
+ 00011704  0x0000183f nbranch  0x00002dbc , 0x00000005 
+ 00011705  0x00001840 call  0x00002dc7 
+ 00011706  0x00001841 nbranch  0x00002dbc , 0x00000028 
+ 00011707  0x00001842 branch  0x00002d46 
+ 00011708  0x00001846 force  0x00000001 , 0x00000011 
+ 00011709  0x00001847 call  0x00002e10 
+ 00011710  0x00001848 setarg  0x00000013 
+ 00011711  0x00001849 istore  0x00000001 , 0x00000005 
+ 00011712  0x0000184a rtn 
+ 00011713  0x0000184d increase  0xfffffffe , 0x00000006 
+ 00011714  0x0000184e ifetch  0x00000002 , 0x00000006 
+ 00011715  0x0000184f bbit1  0x0000000f , 0x00002d46 
+ 00011716  0x00001850 branch  0x00007dbc 
+ 00011717  0x00001853 jam  0x00000001 , 0x000001b9 
+ 00011718  0x00001854 branch  0x00002e05 
+ 00011719  0x00001858 bpatchx  0x0000005b , 0x0000402b 
+ 00011720  0x00001859 call  0x00007dbc 
+ 00011721  0x0000185a fetch  0x00000001 , 0x000042fe 
+ 00011722  0x0000185b rtneq  0x00000000 
+ 00011723  0x0000185c fetch  0x00000001 , 0x00004040 
+ 00011724  0x0000185d rtnbit1  0x00000004 
+ 00011725  0x0000185e branch  0x00007dba 
+ 00011726  0x00001862 add  0x00000006 , 0x00000002 , 0x00000011 
+ 00011727  0x00001863 fetch  0x00000002 , 0x00004335 
+ 00011728  0x00001864 add  0x0000003f , 0xfffffffb , 0x00000012 
+ 00011729  0x00001865 call  0x00002929 
+ 00011730  0x00001866 branch  0x00002dd3 
+ 00011731  0x0000186a fetch  0x00000002 , 0x00004335 
+ 00011732  0x0000186b copy  0x0000003f , 0x00000011 
+ 00011733  0x0000186c call  0x00002e10 
+ 00011734  0x0000186d setarg  0x00000017 
+ 00011735  0x0000186e istore  0x00000001 , 0x00000005 
+ 00011736  0x0000186f fetch  0x00000002 , 0x00004398 
+ 00011737  0x00001870 istore  0x00000002 , 0x00000005 
+ 00011738  0x00001871 fetch  0x00000002 , 0x00004335 
+ 00011739  0x00001872 add  0x0000003f , 0xfffffffb , 0x00000039 
+ 00011740  0x00001873 fetch  0x00000002 , 0x00004339 
+ 00011741  0x00001874 add  0x0000003f , 0x00000007 , 0x00000006 
+ 00011742  0x00001875 ifetch  0x00000002 , 0x00000006 
+ 00011743  0x00001876 istore  0x00000002 , 0x00000005 
+ 00011744  0x00001877 branch  0x00007ccc 
+ 00011745  0x0000187e force  0x00000001 , 0x00000011 
+ 00011746  0x0000187f call  0x00002e10 
+ 00011747  0x00001880 setarg  0x00000019 
+ 00011748  0x00001881 istore  0x00000001 , 0x00000005 
+ 00011749  0x00001882 rtn 
+ 00011750  0x00001885 fetch  0x00000001 , 0x00004396 
+ 00011751  0x00001886 set0  0x00000000 , 0x0000003f 
+ 00011752  0x00001887 store  0x00000001 , 0x00004396 
+ 00011753  0x00001888 rtn 
+ 00011754  0x0000188b copy  0x00000006 , 0x00000011 
+ 00011755  0x0000188c fetch  0x00000002 , 0x00004335 
+ 00011756  0x0000188d add  0x0000003f , 0xfffffffd , 0x00000012 
+ 00011757  0x0000188e branch  0x00002929 
+ 00011758  0x00001894 copy  0x00000002 , 0x00000013 
+ 00011759  0x00001895 increase  0x00000003 , 0x00000011 
+ 00011760  0x00001896 call  0x00002e10 
+ 00011761  0x00001897 increase  0xfffffffd , 0x00000011 
+ 00011762  0x00001898 setarg  0x0000001b 
+ 00011763  0x00001899 istore  0x00000001 , 0x00000005 
+ 00011764  0x0000189a copy  0x00000013 , 0x00000002 
+ 00011765  0x0000189b istoret  0x00000002 , 0x00000005 
+ 00011766  0x0000189c rtn 
+ 00011767  0x000018a0 fetch  0x00000001 , 0x00004396 
+ 00011768  0x000018a1 set1  0x00000000 , 0x0000003f 
+ 00011769  0x000018a2 store  0x00000001 , 0x00004396 
+ 00011770  0x000018a3 copy  0x00000002 , 0x00000013 
+ 00011771  0x000018a4 increase  0x00000003 , 0x00000011 
+ 00011772  0x000018a5 call  0x00002e10 
+ 00011773  0x000018a6 increase  0xfffffffd , 0x00000011 
+ 00011774  0x000018a7 setarg  0x0000001d 
+ 00011775  0x000018a8 istore  0x00000001 , 0x00000005 
+ 00011776  0x000018a9 copy  0x00000013 , 0x00000002 
+ 00011777  0x000018aa istoret  0x00000002 , 0x00000005 
+ 00011778  0x000018ab rtn 
+ 00011779  0x000018b1 bpatchx  0x0000005c , 0x0000402b 
+ 00011780  0x000018b2 jam  0x0000000a , 0x000001b9 
+ 00011781  0x000018b4 force  0x00000005 , 0x00000011 
+ 00011782  0x000018b5 call  0x00002e10 
+ 00011783  0x000018b6 setarg  0x00000001 
+ 00011784  0x000018b7 istore  0x00000001 , 0x00000005 
+ 00011785  0x000018b8 fetch  0x00000001 , 0x00004397 
+ 00011786  0x000018b9 istore  0x00000001 , 0x00000005 
+ 00011787  0x000018ba fetch  0x00000002 , 0x00004398 
+ 00011788  0x000018bb istore  0x00000002 , 0x00000005 
+ 00011789  0x000018bc fetch  0x00000001 , 0x000001b9 
+ 00011790  0x000018bd istore  0x00000001 , 0x00000005 
+ 00011791  0x000018be rtn 
+ 00011792  0x000018c2 bpatchx  0x0000005d , 0x0000402b 
+ 00011793  0x000018c3 force  0x00000004 , 0x00000012 
+ 00011794  0x000018c4 branch  0x000029fb 
+ 00011795  0x000018c8 fetcht  0x00000002 , 0x00000678 
+ 00011796  0x000018c9 increase  0x00000001 , 0x00000002 
+ 00011797  0x000018ca storet  0x00000002 , 0x00000678 
+ 00011798  0x000018cb rtn 
+ 00011799  0x000018ce fetcht  0x00000002 , 0x00000678 
+ 00011800  0x000018cf fetch  0x00000002 , 0x000006b3 
+ 00011801  0x000018d0 isub  0x00000002 , 0x0000003e 
+ 00011802  0x000018d1 rtn 
+ 00011803  0x000018d5 bpatchx  0x0000005e , 0x0000402b 
+ 00011804  0x000018d6 fetcht  0x00000001 , 0x000006b5 
+ 00011805  0x000018d7 arg  0x000006b6 , 0x00000011 
+ 00011806  0x000018d9 fetch  0x00000001 , 0x000006cd 
+ 00011807  0x000018da copy  0x0000003f , 0x00000039 
+ 00011808  0x000018db isub  0x00000002 , 0x0000003e 
+ 00011809  0x000018dc nrtn  0x00000005 
+ 00011810  0x000018dd arg  0x000006ce , 0x00000012 
+ 00011811  0x000018de branch  0x00007d64 
+ 00011812  0x000018e2 bpatchx  0x0000005f , 0x0000402b 
+ 00011813  0x000018e3 fetch  0x00000001 , 0x000006c6 
+ 00011814  0x000018e4 store  0x00000001 , 0x000006a1 
+ 00011815  0x000018e5 copy  0x0000003f , 0x00000039 
+ 00011816  0x000018e6 call  0x00007c67 
+ 00011817  0x000018e7 branch  0x00007ccc 
+ 00011818  0x000018eb bpatchx  0x00000060 , 0x0000402c 
+ 00011819  0x000018ec call  0x00007c64 
+ 00011820  0x000018ed fetch  0x00000002 , 0x000006c9 
+ 00011821  0x000018ee istore  0x00000002 , 0x00000005 
+ 00011822  0x000018ef fetch  0x00000002 , 0x000006cb 
+ 00011823  0x000018f0 istore  0x00000002 , 0x00000005 
+ 00011824  0x000018f2 fetch  0x00000001 , 0x000006a1 
+ 00011825  0x000018f3 copy  0x0000003f , 0x00000039 
+ 00011826  0x000018f4 call  0x00007ccc 
+ 00011827  0x000018f5 branch  0x00007c6a 
+ 00011828  0x000018fa bpatchx  0x00000061 , 0x0000402c 
+ 00011829  0x000018fb call  0x00007c64 
+ 00011830  0x000018fc call  0x00002a21 
+ 00011831  0x000018fd copy  0x00000005 , 0x0000003f 
+ 00011832  0x000018fe isub  0x00000006 , 0x00000011 
+ 00011833  0x000018ff call  0x00002a24 
+ 00011834  0x00001900 copy  0x00000011 , 0x0000003f 
+ 00011835  0x00001901 istore  0x00000002 , 0x00000006 
+ 00011836  0x00001902 increase  0x00000004 , 0x00000011 
+ 00011837  0x00001903 call  0x00002a16 
+ 00011838  0x00001904 copy  0x00000011 , 0x0000003f 
+ 00011839  0x00001905 istore  0x00000001 , 0x00000006 
+ 00011840  0x00001906 rtn 
+ 00011841  0x0000190a rshift8  0x0000003f , 0x0000003f 
+ 00011842  0x0000190b store  0x00000002 , 0x000006b1 
+ 00011843  0x0000190c ifetch  0x00000002 , 0x00000006 
+ 00011844  0x0000190d store  0x00000002 , 0x000006b3 
+ 00011845  0x0000190e rtn 
+ 00011846  0x00001912 bpatchx  0x00000062 , 0x0000402c 
+ 00011847  0x00001913 fetch  0x00000002 , 0x000042e3 
+ 00011848  0x00001915 fetcht  0x00000002 , 0x000042e1 
+ 00011849  0x00001919 branch  0x00007db0 
+ 00011850  0x0000191e bpatchx  0x00000063 , 0x0000402c 
+ 00011851  0x0000191f call  0x00007c6d 
+ 00011852  0x00001920 arg  0x000006b5 , 0x00000005 
+ 00011853  0x00001922 fetch  0x00000002 , 0x00004335 
+ 00011854  0x00001923 increase  0xfffffffb , 0x0000003f 
+ 00011855  0x00001925 istore  0x00000001 , 0x00000005 
+ 00011856  0x00001926 copy  0x0000003f , 0x00000039 
+ 00011857  0x00001927 call  0x00007c67 
+ 00011858  0x00001928 branch  0x00007ccc 
+ 00011859  0x0000192d fetch  0x00000002 , 0x00000050 
+ 00011860  0x0000192e rtnne  0x00000004 
+ 00011861  0x0000192f fetch  0x00000001 , 0x00004396 
+ 00011862  0x00001930 set1  0x00000001 , 0x0000003f 
+ 00011863  0x00001931 store  0x00000001 , 0x00004396 
+ 00011864  0x00001932 fetch  0x00000003 , 0x00000052 
+ 00011865  0x00001933 store  0x00000003 , 0x00004397 
+ 00011866  0x00001934 set1  0x0000000f , 0x00000000 
+ 00011867  0x00001935 beq  0x00000012 , 0x00002e6e 
+ 00011868  0x00001936 beq  0x00000052 , 0x00002e73 
+ 00011869  0x00001937 beq  0x00000018 , 0x00002de1 
+ 00011870  0x00001938 beq  0x00000002 , 0x00002bab 
+ 00011871  0x00001939 beq  0x0000001e , 0x00002de6 
+ 00011872  0x0000193a set0  0x0000000f , 0x00000000 
+ 00011873  0x0000193c fetch  0x00000001 , 0x00004396 
+ 00011874  0x0000193d set0  0x00000001 , 0x0000003f 
+ 00011875  0x0000193e store  0x00000001 , 0x00004396 
+ 00011876  0x0000193f rtn 
+ 00011877  0x00001942 fetch  0x00000001 , 0x00004396 
+ 00011878  0x00001943 rtnbit0  0x00000001 
+ 00011879  0x00001944 set1  0x0000000f , 0x00000000 
+ 00011880  0x00001945 call  0x00002e7e 
+ 00011881  0x00001946 call  0x00002e84 
+ 00011882  0x00001947 call  0x00002e61 , 0x00000028 
+ 00011883  0x00001948 fetch  0x00000001 , 0x00004397 
+ 00011884  0x00001949 beq  0x00000012 , 0x00002dac 
+ 00011885  0x0000194a rtn 
+ 00011886  0x0000194e call  0x00002e73 
+ 00011887  0x0000194f branch  0x00002e70 
+ 00011888  0x00001952 call  0x00002e84 
+ 00011889  0x00001953 nrtn  0x00000028 
+ 00011890  0x00001954 branch  0x00002dac 
+ 00011891  0x00001958 bpatchx  0x00000064 , 0x0000402c 
+ 00011892  0x00001959 call  0x00002e77 
+ 00011893  0x0000195a arg  0x00000055 , 0x00000011 
+ 00011894  0x0000195b branch  0x00002929 
+ 00011895  0x0000195f fetch  0x00000001 , 0x0000004d 
+ 00011896  0x00001960 add  0x0000003f , 0xfffffff9 , 0x00000012 
+ 00011897  0x00001961 increase  0xfffffffc , 0x0000003f 
+ 00011898  0x00001962 store  0x00000002 , 0x00004337 
+ 00011899  0x00001963 fetcht  0x00000002 , 0x0000004e 
+ 00011900  0x00001964 storet  0x00000002 , 0x00004335 
+ 00011901  0x00001965 rtn 
+ 00011902  0x00001969 fetchr  0x00000012 , 0x00000001 , 0x0000004d 
+ 00011903  0x0000196a fetch  0x00000002 , 0x00004337 
+ 00011904  0x0000196b iadd  0x00000012 , 0x00000002 
+ 00011905  0x0000196c storet  0x00000002 , 0x00004337 
+ 00011906  0x0000196d arg  0x0000004e , 0x00000011 
+ 00011907  0x0000196e branch  0x00002929 
+ 00011908  0x00001973 call  0x00007dbc 
+ 00011909  0x00001974 fetch  0x00000002 , 0x00004337 
+ 00011910  0x00001975 fetcht  0x00000002 , 0x00004335 
+ 00011911  0x00001976 isub  0x00000002 , 0x0000003e 
+ 00011912  0x00001977 nrtn  0x00000005 
+ 00011913  0x00001978 branch  0x00007dba 
+ 00011914  0x0000197f ifetch  0x00000001 , 0x00000006 
+ 00011915  0x00001980 ifetcht  0x00000001 , 0x00000006 
+ 00011916  0x00001981 ifetcht  0x00000002 , 0x00000006 
+ 00011917  0x00001982 beq  0x00000013 , 0x00002e8f 
+ 00011918  0x00001983 rtn 
+ 00011919  0x00001985 ifetch  0x00000002 , 0x00000006 
+ 00011920  0x00001986 store  0x00000002 , 0x0000433c 
+ 00011921  0x00001987 jam  0x00000040 , 0x0000066f 
+ 00011922  0x00001988 branch  0x0000782b 
+ 00011923  0x0000198f arg  0x0000000c , 0x00000011 
+ 00011924  0x00001990 arg  0x00000012 , 0x00000013 
+ 00011925  0x00001991 call  0x00002e9b 
+ 00011926  0x00001992 setarg  0x00000008 
+ 00011927  0x00001993 istore  0x00000002 , 0x00000005 
+ 00011928  0x00001994 fetch  0x00000008 , 0x000042d3 
+ 00011929  0x00001995 istore  0x00000008 , 0x00000005 
+ 00011930  0x00001996 rtn 
+ 00011931  0x0000199b call  0x00002ea3 
+ 00011932  0x0000199c arg  0x00000005 , 0x00000012 
+ 00011933  0x0000199d call  0x000029fb 
+ 00011934  0x0000199e copy  0x00000013 , 0x0000003f 
+ 00011935  0x0000199f istore  0x00000001 , 0x00000005 
+ 00011936  0x000019a0 fetch  0x00000001 , 0x0000433b 
+ 00011937  0x000019a1 istore  0x00000001 , 0x00000005 
+ 00011938  0x000019a2 rtn 
+ 00011939  0x000019a6 fetch  0x00000001 , 0x0000433b 
+ 00011940  0x000019a8 pincrease  0x00000001 
+ 00011941  0x000019a9 store  0x00000001 , 0x0000433b 
+ 00011942  0x000019aa rtnne  0x00000000 
+ 00011943  0x000019ad jam  0x00000001 , 0x0000433b 
+ 00011944  0x000019ae rtn 
+ 00011945  0x000019b4 fetch  0x00000001 , 0x000042fe 
+ 00011946  0x000019b5 beq  0x00000000 , 0x00002eb8 
+ 00011947  0x000019b6 beq  0x00000001 , 0x00002ebb 
+ 00011948  0x000019b7 beq  0x00000002 , 0x00002ebd 
+ 00011949  0x000019b8 beq  0x00000081 , 0x00002eb1 
+ 00011950  0x000019b9 beq  0x00000082 , 0x00002eb3 
+ 00011951  0x000019ba beq  0x00000083 , 0x00002eb6 
+ 00011952  0x000019bb rtn 
+ 00011953  0x000019be jam  0x0000000d , 0x000042c7 
+ 00011954  0x000019bf branch  0x00002eb9 
+ 00011955  0x000019c1 jam  0x0000000d , 0x000042c7 
+ 00011956  0x000019c2 jam  0x00000001 , 0x000042c5 
+ 00011957  0x000019c3 rtn 
+ 00011958  0x000019c5 jam  0x0000000d , 0x000042c7 
+ 00011959  0x000019c6 branch  0x00002ebe 
+ 00011960  0x000019c9 jam  0x00000000 , 0x000042c7 
+ 00011961  0x000019cb jam  0x00000003 , 0x000042c5 
+ 00011962  0x000019cc rtn 
+ 00011963  0x000019ce jam  0x00000005 , 0x000042c7 
+ 00011964  0x000019cf branch  0x00002eb9 
+ 00011965  0x000019d1 jam  0x00000005 , 0x000042c7 
+ 00011966  0x000019d3 jam  0x00000000 , 0x000042c5 
+ 00011967  0x000019d4 rtn 
+ 00011968  0x000019d7 fetch  0x00000001 , 0x0000446c 
+ 00011969  0x000019d8 set1  0x00000000 , 0x0000003f 
+ 00011970  0x000019d9 store  0x00000001 , 0x0000446c 
+ 00011971  0x000019da rtn 
+ 00011972  0x000019dd fetch  0x00000001 , 0x0000446c 
+ 00011973  0x000019de set0  0x00000000 , 0x0000003f 
+ 00011974  0x000019df store  0x00000001 , 0x0000446c 
+ 00011975  0x000019e0 rtn 
+ 00011976  0x000019e3 ifetch  0x00000001 , 0x00000006 
+ 00011977  0x000019e4 beq  0x00000001 , 0x00002edc 
+ 00011978  0x000019e6 beq  0x00000003 , 0x00002f03 
+ 00011979  0x000019e7 beq  0x00000004 , 0x00002f24 
+ 00011980  0x000019e8 beq  0x00000005 , 0x00002f31 
+ 00011981  0x000019ea beq  0x00000007 , 0x00002f9a 
+ 00011982  0x000019eb beq  0x00000008 , 0x00002f86 
+ 00011983  0x000019ec beq  0x00000009 , 0x00002f96 
+ 00011984  0x000019ed beq  0x0000000a , 0x00002f9a 
+ 00011985  0x000019ee beq  0x0000000b , 0x00002f9a 
+ 00011986  0x000019ef beq  0x0000000c , 0x00002f9b 
+ 00011987  0x000019f0 beq  0x0000000d , 0x00002fa0 
+ 00011988  0x000019f1 rtn 
+ 00011989  0x000019f6 force  0x00000002 , 0x00000011 
+ 00011990  0x000019f7 call  0x00003047 
+ 00011991  0x000019f8 setarg  0x0000000b 
+ 00011992  0x000019f9 istore  0x00000001 , 0x00000005 
+ 00011993  0x000019fa fetch  0x00000001 , 0x000042c7 
+ 00011994  0x000019fb istore  0x00000001 , 0x00000005 
+ 00011995  0x000019fc rtn 
+ 00011996  0x000019ff store  0x00000001 , 0x000042bd 
+ 00011997  0x00001a00 ifetch  0x00000006 , 0x00000006 
+ 00011998  0x00001a01 istore  0x00000006 , 0x00000005 
+ 00011999  0x00001a02 fetch  0x00000001 , 0x000042fe 
+ 00012000  0x00001a03 beq  0x00000000 , 0x00002f37 
+ 00012001  0x00001a04 call  0x00002efe 
+ 00012002  0x00001a05 fetch  0x00000001 , 0x0000446a 
+ 00012003  0x00001a06 branch  0x00002ee8 , 0x00000034 
+ 00012004  0x00001a07 fetch  0x00000001 , 0x000042c0 
+ 00012005  0x00001a08 bbit0  0x00000003 , 0x0000431f 
+ 00012006  0x00001a09 fetch  0x00000001 , 0x000042fe 
+ 00012007  0x00001a0a bbit0  0x00000007 , 0x0000431f 
+ 00012008  0x00001a0c jam  0x00000003 , 0x000042fc 
+ 00012009  0x00001a0d fetch  0x00000001 , 0x000042be 
+ 00012010  0x00001a0e beq  0x00000000 , 0x00002ef0 
+ 00012011  0x00001a0f beq  0x00000001 , 0x00002ef0 
+ 00012012  0x00001a10 beq  0x00000003 , 0x00002ef0 
+ 00012013  0x00001a11 fetch  0x00000001 , 0x000042fe 
+ 00012014  0x00001a12 beq  0x00000002 , 0x00002ef3 
+ 00012015  0x00001a13 rtneq  0x00000083 
+ 00012016  0x00001a15 arg  0x00000000 , 0x0000003f 
+ 00012017  0x00001a16 store  0x00000004 , 0x000042ff 
+ 00012018  0x00001a17 rtn 
+ 00012019  0x00001a1a fetch  0x00000001 , 0x00004321 
+ 00012020  0x00001a1b bbit1  0x00000000 , 0x00002efc 
+ 00012021  0x00001a1d arg  0x000042ff , 0x00000011 
+ 00012022  0x00001a1e copy  0x00000011 , 0x00000005 
+ 00012023  0x00001a1f arg  0x00000003 , 0x00000039 
+ 00012024  0x00001a20 call  0x00007de8 
+ 00012025  0x00001a21 fetch  0x00000002 , 0x00004301 
+ 00012026  0x00001a22 and_into  0x00000007 , 0x0000003f 
+ 00012027  0x00001a23 store  0x00000002 , 0x00004301 
+ 00012028  0x00001a25 jam  0x00000034 , 0x0000066f 
+ 00012029  0x00001a26 branch  0x0000782b 
+ 00012030  0x00001a2b force  0x00000007 , 0x00000011 
+ 00012031  0x00001a2c call  0x00003047 
+ 00012032  0x00001a2d fetch  0x00000007 , 0x000042c4 
+ 00012033  0x00001a2e istore  0x00000007 , 0x00000005 
+ 00012034  0x00001a2f rtn 
+ 00012035  0x00001a33 jam  0x00000005 , 0x000042fc 
+ 00012036  0x00001a34 arg  0x0000429b , 0x00000005 
+ 00012037  0x00001a35 call  0x00007c8f 
+ 00012038  0x00001a36 fetch  0x00000001 , 0x000042fe 
+ 00012039  0x00001a37 beq  0x00000004 , 0x00002f0b 
+ 00012040  0x00001a38 beq  0x00000083 , 0x00002f0d 
+ 00012041  0x00001a39 beq  0x00000084 , 0x00002f10 
+ 00012042  0x00001a3a branch  0x00002f13 
+ 00012043  0x00001a3e jam  0x00000043 , 0x0000066f 
+ 00012044  0x00001a3f branch  0x0000782b 
+ 00012045  0x00001a42 jam  0x00000002 , 0x000042f9 
+ 00012046  0x00001a43 jam  0x00000008 , 0x000042fa 
+ 00012047  0x00001a44 rtn 
+ 00012048  0x00001a47 fetch  0x00000004 , 0x000042ff 
+ 00012049  0x00001a48 branch  0x00002f0b , 0x00000034 
+ 00012050  0x00001a49 branch  0x00002f0d 
+ 00012051  0x00001a4c jam  0x00000006 , 0x000042fc 
+ 00012052  0x00001a4d fetch  0x00000001 , 0x000042fe 
+ 00012053  0x00001a4e bbit1  0x00000007 , 0x00002f1c 
+ 00012054  0x00001a4f call  0x00007256 
+ 00012055  0x00001a50 force  0x00000011 , 0x00000011 
+ 00012056  0x00001a51 call  0x00003047 
+ 00012057  0x00001a52 setarg  0x00000003 
+ 00012058  0x00001a53 istore  0x00000001 , 0x00000005 
+ 00012059  0x00001a54 branch  0x00007375 
+ 00012060  0x00001a57 arg  0x000042ab , 0x00000005 
+ 00012061  0x00001a58 call  0x00007de7 
+ 00012062  0x00001a59 call  0x000071b6 
+ 00012063  0x00001a5a force  0x00000011 , 0x00000011 
+ 00012064  0x00001a5b call  0x00003047 
+ 00012065  0x00001a5c setarg  0x00000003 
+ 00012066  0x00001a5d istore  0x00000001 , 0x00000005 
+ 00012067  0x00001a5e branch  0x000071f2 
+ 00012068  0x00001a61 copy  0x00000006 , 0x00000011 
+ 00012069  0x00001a62 fetch  0x00000001 , 0x000042fe 
+ 00012070  0x00001a63 bbit1  0x00000007 , 0x00002f39 
+ 00012071  0x00001a64 copy  0x00000011 , 0x00000006 
+ 00012072  0x00001a65 call  0x0000724e 
+ 00012073  0x00001a66 branch  0x00002f4e , 0x00000005 
+ 00012074  0x00001a68 jam  0x00000004 , 0x000001ba 
+ 00012075  0x00001a6a force  0x00000002 , 0x00000011 
+ 00012076  0x00001a6b call  0x00003047 
+ 00012077  0x00001a6c setarg  0x00000005 
+ 00012078  0x00001a6d istore  0x00000001 , 0x00000005 
+ 00012079  0x00001a6e fetch  0x00000001 , 0x000001ba 
+ 00012080  0x00001a6f istore  0x00000001 , 0x00000005 
+ 00012081  0x00001a71 bpatchx  0x00000065 , 0x0000402c 
+ 00012082  0x00001a72 force  0x00000007 , 0x00000007 
+ 00012083  0x00001a73 call  0x00007ce0 
+ 00012084  0x00001a74 jam  0x00000000 , 0x000042fc 
+ 00012085  0x00001a75 jam  0x00000030 , 0x0000066f 
+ 00012086  0x00001a76 branch  0x0000782b 
+ 00012087  0x00001a79 jam  0x00000005 , 0x000001ba 
+ 00012088  0x00001a7a branch  0x00002f2b 
+ 00012089  0x00001a7d arg  0x00000158 , 0x00000005 
+ 00012090  0x00001a7e copy  0x00000011 , 0x00000006 
+ 00012091  0x00001a7f call  0x00007c8f 
+ 00012092  0x00001a80 fetch  0x00000001 , 0x000042fe 
+ 00012093  0x00001a81 beq  0x00000083 , 0x00002f45 
+ 00012094  0x00001a82 beq  0x00000084 , 0x00002f45 
+ 00012095  0x00001a83 call  0x00007140 
+ 00012096  0x00001a84 call  0x00002f53 
+ 00012097  0x00001a85 fetch  0x00000001 , 0x000042fe 
+ 00012098  0x00001a86 rtnne  0x00000082 
+ 00012099  0x00001a87 jam  0x0000003b , 0x0000066f 
+ 00012100  0x00001a88 branch  0x0000782b 
+ 00012101  0x00001a8b call  0x000071ab 
+ 00012102  0x00001a8c arg  0x000006d1 , 0x00000005 
+ 00012103  0x00001a8d call  0x000071f2 
+ 00012104  0x00001a8e arg  0x000006d1 , 0x00000011 
+ 00012105  0x00001a8f arg  0x0000429b , 0x00000012 
+ 00012106  0x00001a90 arg  0x00000010 , 0x00000039 
+ 00012107  0x00001a91 call  0x00007d64 
+ 00012108  0x00001a92 nbranch  0x00002f2a , 0x00000005 
+ 00012109  0x00001a93 branch  0x00002f53 
+ 00012110  0x00001a96 call  0x0000724a 
+ 00012111  0x00001a97 jam  0x00000031 , 0x0000066f 
+ 00012112  0x00001a98 call  0x0000782b 
+ 00012113  0x00001a99 jam  0x00000001 , 0x0000429a 
+ 00012114  0x00001a9a jam  0x00000009 , 0x000042fc 
+ 00012115  0x00001a9d force  0x00000011 , 0x00000011 
+ 00012116  0x00001a9e call  0x00003047 
+ 00012117  0x00001a9f setarg  0x00000004 
+ 00012118  0x00001aa0 istore  0x00000001 , 0x00000005 
+ 00012119  0x00001aa1 arg  0x000042ab , 0x00000006 
+ 00012120  0x00001aa2 branch  0x00007c8f 
+ 00012121  0x00001aa5 force  0x00000011 , 0x00000011 
+ 00012122  0x00001aa6 call  0x00003047 
+ 00012123  0x00001aa7 setarg  0x00000006 
+ 00012124  0x00001aa8 istore  0x00000001 , 0x00000005 
+ 00012125  0x00001aa9 fetch  0x00000001 , 0x00004321 
+ 00012126  0x00001aaa bbit1  0x00000001 , 0x00002f61 
+ 00012127  0x00001aab arg  0x0000428a , 0x00000006 
+ 00012128  0x00001aac branch  0x00007c8f 
+ 00012129  0x00001aaf arg  0x00004322 , 0x00000006 
+ 00012130  0x00001ab0 branch  0x00007c8f 
+ 00012131  0x00001ab4 arg  0x00004303 , 0x00000005 
+ 00012132  0x00001ab5 force  0x0000000a , 0x00000039 
+ 00012133  0x00001ab6 call  0x00007de8 
+ 00012134  0x00001ab7 force  0x0000000b , 0x00000011 
+ 00012135  0x00001ab8 call  0x00003047 
+ 00012136  0x00001ab9 setarg  0x00000007 
+ 00012137  0x00001aba istore  0x00000001 , 0x00000005 
+ 00012138  0x00001abb fetch  0x00000002 , 0x00004303 
+ 00012139  0x00001abc istore  0x00000002 , 0x00000005 
+ 00012140  0x00001abd fetch  0x00000008 , 0x00004305 
+ 00012141  0x00001abe istore  0x00000008 , 0x00000005 
+ 00012142  0x00001abf rtn 
+ 00012143  0x00001ac2 force  0x00000011 , 0x00000011 
+ 00012144  0x00001ac3 call  0x00003047 
+ 00012145  0x00001ac4 setarg  0x00000008 
+ 00012146  0x00001ac5 istore  0x00000001 , 0x00000005 
+ 00012147  0x00001ac6 setarg  0x00000000 
+ 00012148  0x00001ac7 istore  0x00000008 , 0x00000005 
+ 00012149  0x00001ac8 istore  0x00000008 , 0x00000005 
+ 00012150  0x00001ac9 rtn 
+ 00012151  0x00001acd force  0x00000008 , 0x00000011 
+ 00012152  0x00001ace call  0x00003047 
+ 00012153  0x00001acf setarg  0x00000009 
+ 00012154  0x00001ad0 istore  0x00000001 , 0x00000005 
+ 00012155  0x00001ad1 fetch  0x00000001 , 0x000042d2 
+ 00012156  0x00001ad2 istore  0x00000001 , 0x00000005 
+ 00012157  0x00001ad3 fetch  0x00000006 , 0x000042db 
+ 00012158  0x00001ad4 istore  0x00000006 , 0x00000005 
+ 00012159  0x00001ad5 rtn 
+ 00012160  0x00001ad9 jam  0x00000008 , 0x000001ba 
+ 00012161  0x00001ada branch  0x00002f2b 
+ 00012162  0x00001add fetch  0x00000001 , 0x000042c9 
+ 00012163  0x00001ade fetcht  0x00000001 , 0x000042c9 
+ 00012164  0x00001adf iand  0x00000002 , 0x0000003f 
+ 00012165  0x00001ae0 rtn 
+ 00012166  0x00001ae3 arg  0x0000430d , 0x00000005 
+ 00012167  0x00001ae4 call  0x00007c8f 
+ 00012168  0x00001ae5 call  0x00002f82 
+ 00012169  0x00001ae6 isolate0  0x00000001 , 0x0000003f 
+ 00012170  0x00001ae7 branch  0x00002f80 , 0x00000001 
+ 00012171  0x00001ae8 fetch  0x00000001 , 0x000043cb 
+ 00012172  0x00001ae9 rtnne  0x0000000a 
+ 00012173  0x00001aea call  0x00002f90 
+ 00012174  0x00001aeb nrtn  0x00000028 
+ 00012175  0x00001aec branch  0x00004329 
+ 00012176  0x00001af0 call  0x00007dbc 
+ 00012177  0x00001af1 fetch  0x00000001 , 0x000042cb 
+ 00012178  0x00001af2 rtneq  0x00000000 
+ 00012179  0x00001af3 fetch  0x00000001 , 0x000042c2 
+ 00012180  0x00001af4 rtnbit0  0x00000001 
+ 00012181  0x00001af5 branch  0x00007dba 
+ 00012182  0x00001af8 call  0x00002f82 
+ 00012183  0x00001af9 isolate0  0x00000001 , 0x0000003f 
+ 00012184  0x00001afa branch  0x00002f80 , 0x00000001 
+ 00012185  0x00001afb rtn 
+ 00012186  0x00001b00 rtn 
+ 00012187  0x00001b03 arg  0x000005fe , 0x00000005 
+ 00012188  0x00001b04 call  0x00007c81 
+ 00012189  0x00001b05 jam  0x00000002 , 0x000042f9 
+ 00012190  0x00001b06 jam  0x00000001 , 0x000042fa 
+ 00012191  0x00001b07 rtn 
+ 00012192  0x00001b0a arg  0x0000065e , 0x00000005 
+ 00012193  0x00001b0b call  0x00007c8f 
+ 00012194  0x00001b0c jam  0x00000006 , 0x000042fa 
+ 00012195  0x00001b0d jam  0x00000002 , 0x000042f9 
+ 00012196  0x00001b0e rtn 
+ 00012197  0x00001b11 force  0x00000041 , 0x00000011 
+ 00012198  0x00001b12 call  0x00003047 
+ 00012199  0x00001b13 setarg  0x0000000c 
+ 00012200  0x00001b14 istore  0x00000001 , 0x00000005 
+ 00012201  0x00001b15 arg  0x0000448f , 0x00000006 
+ 00012202  0x00001b16 branch  0x00007c81 
+ 00012203  0x00001b19 call  0x00007157 
+ 00012204  0x00001b1a force  0x00000011 , 0x00000011 
+ 00012205  0x00001b1b call  0x00003047 
+ 00012206  0x00001b1c setarg  0x0000000d 
+ 00012207  0x00001b1d istore  0x00000001 , 0x00000005 
+ 00012208  0x00001b1e branch  0x000071f2 
+ 00012209  0x00001b21 fetch  0x00000001 , 0x000042fc 
+ 00012210  0x00001b22 rtneq  0x000000ff 
+ 00012211  0x00001b23 arg  0x00000003 , 0x00000002 
+ 00012212  0x00001b24 isub  0x00000002 , 0x0000003e 
+ 00012213  0x00001b25 nrtn  0x00000002 
+ 00012214  0x00001b26 arg  0x00000007 , 0x00000007 
+ 00012215  0x00001b27 call  0x00007cef 
+ 00012216  0x00001b28 nrtn  0x00000034 
+ 00012217  0x00001b29 branch  0x00002f80 
+ 00012218  0x00001b2c bpatchx  0x00000066 , 0x0000402c 
+ 00012219  0x00001b2d call  0x00002a28 
+ 00012220  0x00001b2e nrtn  0x00000034 
+ 00012221  0x00001b2f fetch  0x00000001 , 0x000042fc 
+ 00012222  0x00001b30 beq  0x00000000 , 0x00002fc7 
+ 00012223  0x00001b31 beq  0x00000001 , 0x00002fcd 
+ 00012224  0x00001b32 beq  0x00000002 , 0x00002fc7 
+ 00012225  0x00001b33 beq  0x00000003 , 0x00002fcf 
+ 00012226  0x00001b34 beq  0x00000009 , 0x00002fd3 
+ 00012227  0x00001b35 beq  0x0000000b , 0x00002fe3 
+ 00012228  0x00001b36 beq  0x0000000c , 0x00002fe5 
+ 00012229  0x00001b37 beq  0x0000000d , 0x00002fec 
+ 00012230  0x00001b38 rtn 
+ 00012231  0x00001b3c fetch  0x00000001 , 0x000042fd 
+ 00012232  0x00001b3d rtnne  0x00000004 
+ 00012233  0x00001b3e jam  0x000000ff , 0x000042fd 
+ 00012234  0x00001b3f jam  0x000000ff , 0x000042fc 
+ 00012235  0x00001b40 jam  0x0000003f , 0x0000066f 
+ 00012236  0x00001b41 branch  0x0000782b 
+ 00012237  0x00001b45 jam  0x00000002 , 0x000042fc 
+ 00012238  0x00001b46 branch  0x00002ed5 
+ 00012239  0x00001b49 jam  0x00000004 , 0x000042fc 
+ 00012240  0x00001b4a setarg  0x00017700 
+ 00012241  0x00001b4b arg  0x00000007 , 0x00000007 
+ 00012242  0x00001b4c branch  0x00007ce1 
+ 00012243  0x00001b4f fetch  0x00000001 , 0x000042fd 
+ 00012244  0x00001b50 beq  0x00000004 , 0x00002fd6 
+ 00012245  0x00001b51 rtn 
+ 00012246  0x00001b54 fetch  0x00000001 , 0x000042fe 
+ 00012247  0x00001b55 bbit1  0x00000007 , 0x00002fe1 
+ 00012248  0x00001b57 jam  0x0000000b , 0x000042fc 
+ 00012249  0x00001b58 call  0x00002f59 
+ 00012250  0x00001b5a jam  0x00000029 , 0x0000066f 
+ 00012251  0x00001b5b call  0x0000782b 
+ 00012252  0x00001b5c fetch  0x00000001 , 0x000043cb 
+ 00012253  0x00001b5d rtnne  0x0000000a 
+ 00012254  0x00001b5e call  0x00002f90 
+ 00012255  0x00001b5f rtn  0x00000028 
+ 00012256  0x00001b60 branch  0x00004329 
+ 00012257  0x00001b63 jam  0x0000000c , 0x000042fc 
+ 00012258  0x00001b64 branch  0x00002fda 
+ 00012259  0x00001b67 jam  0x0000000c , 0x000042fc 
+ 00012260  0x00001b68 branch  0x00002f63 
+ 00012261  0x00001b6b fetch  0x00000001 , 0x000042c3 
+ 00012262  0x00001b6c fetcht  0x00000001 , 0x000042ca 
+ 00012263  0x00001b6d iand  0x00000002 , 0x0000003f 
+ 00012264  0x00001b6e isolate0  0x00000001 , 0x0000003f 
+ 00012265  0x00001b6f branch  0x00002fee , 0x00000001 
+ 00012266  0x00001b70 jam  0x0000000d , 0x000042fc 
+ 00012267  0x00001b71 branch  0x00002f6f 
+ 00012268  0x00001b74 call  0x00002f77 
+ 00012269  0x00001b75 branch  0x00002fee 
+ 00012270  0x00001b79 bpatchx  0x00000067 , 0x0000402c 
+ 00012271  0x00001b7a force  0x00000007 , 0x00000007 
+ 00012272  0x00001b7b call  0x00007ce0 
+ 00012273  0x00001b7c jam  0x000000ff , 0x000042fd 
+ 00012274  0x00001b7d jam  0x000000ff , 0x000042fc 
+ 00012275  0x00001b7e jam  0x0000003e , 0x0000066f 
+ 00012276  0x00001b7f branch  0x0000782b 
+ 00012277  0x00001b84 bpatchx  0x00000068 , 0x0000402d 
+ 00012278  0x00001b85 fetch  0x00000001 , 0x000042fe 
+ 00012279  0x00001b86 rtnbit0  0x00000007 
+ 00012280  0x00001b87 fetch  0x00000001 , 0x000042f9 
+ 00012281  0x00001b88 rtnne  0x00000002 
+ 00012282  0x00001b89 jam  0x00000000 , 0x000042f9 
+ 00012283  0x00001b8a fetch  0x00000001 , 0x000042fa 
+ 00012284  0x00001b8b beq  0x00000001 , 0x0000303d 
+ 00012285  0x00001b8c beq  0x00000002 , 0x00003044 
+ 00012286  0x00001b8d beq  0x00000003 , 0x00003035 
+ 00012287  0x00001b8e beq  0x00000006 , 0x0000301a 
+ 00012288  0x00001b8f beq  0x00000007 , 0x00003011 
+ 00012289  0x00001b90 beq  0x00000008 , 0x00003007 
+ 00012290  0x00001b91 rtn 
+ 00012291  0x00001b94 jam  0x00000000 , 0x000042f9 
+ 00012292  0x00001b95 jam  0x00000000 , 0x000042fa 
+ 00012293  0x00001b96 jam  0x00000000 , 0x000042fb 
+ 00012294  0x00001b97 rtn 
+ 00012295  0x00001b9a fetch  0x00000001 , 0x000044cf 
+ 00012296  0x00001b9b copy  0x0000003f , 0x00000007 
+ 00012297  0x00001b9c increase  0x00000001 , 0x0000003f 
+ 00012298  0x00001b9d store  0x00000001 , 0x000044cf 
+ 00012299  0x00001b9e fetch  0x00000004 , 0x000042ff 
+ 00012300  0x00001b9f qisolate1  0x0000003f 
+ 00012301  0x00001ba0 setarg  0x00000080 
+ 00012302  0x00001ba1 setflag  0x00000001 , 0x00000000 , 0x0000003f 
+ 00012303  0x00001ba2 store  0x00000001 , 0x000044d0 
+ 00012304  0x00001ba3 branch  0x00003039 
+ 00012305  0x00001ba6 fetch  0x00000001 , 0x000042fb 
+ 00012306  0x00001ba7 jam  0x00000000 , 0x000042fb 
+ 00012307  0x00001ba8 beq  0x00000001 , 0x00003016 
+ 00012308  0x00001ba9 jam  0x00000002 , 0x000042f9 
+ 00012309  0x00001baa rtn 
+ 00012310  0x00001bad jam  0x00000031 , 0x0000066f 
+ 00012311  0x00001bae call  0x0000782b 
+ 00012312  0x00001baf jam  0x00000009 , 0x000042fc 
+ 00012313  0x00001bb0 branch  0x00002fab 
+ 00012314  0x00001bb3 fetch  0x00000001 , 0x000005f9 
+ 00012315  0x00001bb4 beq  0x00000003 , 0x0000301e 
+ 00012316  0x00001bb5 jam  0x00000002 , 0x000042f9 
+ 00012317  0x00001bb6 rtn 
+ 00012318  0x00001bb9 call  0x0000717e 
+ 00012319  0x00001bba fetch  0x00000001 , 0x000042fe 
+ 00012320  0x00001bbb beq  0x00000083 , 0x00003023 
+ 00012321  0x00001bbc beq  0x00000084 , 0x00003023 
+ 00012322  0x00001bbd call  0x00002ef0 
+ 00012323  0x00001bbf call  0x0000716b 
+ 00012324  0x00001bc0 arg  0x000006d1 , 0x00000011 
+ 00012325  0x00001bc1 arg  0x0000065e , 0x00000012 
+ 00012326  0x00001bc2 arg  0x00000010 , 0x00000039 
+ 00012327  0x00001bc3 call  0x00007d64 
+ 00012328  0x00001bc4 branch  0x0000302b , 0x00000005 
+ 00012329  0x00001bc6 jam  0x0000000b , 0x000001ba 
+ 00012330  0x00001bc7 branch  0x00002f2b 
+ 00012331  0x00001bcb call  0x0000745b 
+ 00012332  0x00001bcc nbranch  0x00003029 , 0x00000005 
+ 00012333  0x00001bcd jam  0x00000001 , 0x0000429a 
+ 00012334  0x00001bce fetch  0x00000001 , 0x000042fe 
+ 00012335  0x00001bcf beq  0x00000081 , 0x00003016 
+ 00012336  0x00001bd0 beq  0x00000083 , 0x00003016 
+ 00012337  0x00001bd1 beq  0x00000084 , 0x00003016 
+ 00012338  0x00001bd2 jam  0x00000002 , 0x000042f9 
+ 00012339  0x00001bd3 jam  0x00000007 , 0x000042fa 
+ 00012340  0x00001bd4 rtn 
+ 00012341  0x00001bd7 fetch  0x00000001 , 0x000042fe 
+ 00012342  0x00001bd8 beq  0x00000083 , 0x0000303a 
+ 00012343  0x00001bd9 beq  0x00000084 , 0x0000303a 
+ 00012344  0x00001bda jam  0x00000000 , 0x000044d0 
+ 00012345  0x00001bdc branch  0x00002f13 
+ 00012346  0x00001bdf jam  0x00000000 , 0x000044cf 
+ 00012347  0x00001be0 rtneq  0x00000084 
+ 00012348  0x00001be1 branch  0x00002ef3 
+ 00012349  0x00001be5 jam  0x00000002 , 0x000042f9 
+ 00012350  0x00001be6 fetch  0x00000001 , 0x0000446e 
+ 00012351  0x00001be7 beq  0x00000003 , 0x00003041 
+ 00012352  0x00001be8 rtn 
+ 00012353  0x00001beb jam  0x00000002 , 0x000042fa 
+ 00012354  0x00001bec jam  0x00000000 , 0x000005f9 
+ 00012355  0x00001bed branch  0x0000753c 
+ 00012356  0x00001bf0 jam  0x00000002 , 0x000042f9 
+ 00012357  0x00001bf1 jam  0x00000003 , 0x000042fa 
+ 00012358  0x00001bf2 branch  0x00002fa5 
+ 00012359  0x00001bf7 bpatchx  0x00000069 , 0x0000402d 
+ 00012360  0x00001bf8 force  0x00000006 , 0x00000012 
+ 00012361  0x00001bf9 branch  0x000029fb 
+ 00012362  0x00001bfe fetch  0x00000001 , 0x0000004e 
+ 00012363  0x00001bff beq  0x00000000 , 0x00003061 
+ 00012364  0x00001c00 beq  0x00000001 , 0x00003069 
+ 00012365  0x00001c01 beq  0x00000002 , 0x00003071 
+ 00012366  0x00001c02 beq  0x00000003 , 0x00003075 
+ 00012367  0x00001c03 beq  0x00000004 , 0x00003093 
+ 00012368  0x00001c04 beq  0x00000005 , 0x00003098 
+ 00012369  0x00001c05 beq  0x00000006 , 0x0000309c 
+ 00012370  0x00001c06 beq  0x00000007 , 0x000030a1 
+ 00012371  0x00001c07 beq  0x00000008 , 0x000030a2 
+ 00012372  0x00001c08 beq  0x00000009 , 0x000030a3 
+ 00012373  0x00001c09 beq  0x0000000a , 0x000030a4 
+ 00012374  0x00001c0a beq  0x0000000b , 0x000030a8 
+ 00012375  0x00001c0b beq  0x0000000c , 0x000030a9 
+ 00012376  0x00001c0c beq  0x0000000d , 0x000030ab 
+ 00012377  0x00001c0d beq  0x00000012 , 0x000030ac 
+ 00012378  0x00001c0e beq  0x00000013 , 0x000030ad 
+ 00012379  0x00001c0f beq  0x00000014 , 0x000030ae 
+ 00012380  0x00001c10 beq  0x00000015 , 0x000030b0 
+ 00012381  0x00001c11 beq  0x00000016 , 0x000030bb 
+ 00012382  0x00001c12 beq  0x00000018 , 0x000030bc 
+ 00012383  0x00001c13 fetchr  0x00000013 , 0x00000001 , 0x0000004e 
+ 00012384  0x00001c14 branch  0x000030df 
+ 00012385  0x00001c19 ifetch  0x00000009 , 0x00000006 
+ 00012386  0x00001c1a store  0x00000009 , 0x0000019f 
+ 00012387  0x00001c1b ifetch  0x00000002 , 0x00000006 
+ 00012388  0x00001c1c store  0x00000002 , 0x00000188 
+ 00012389  0x00001c1d fetch  0x00000001 , 0x00000168 
+ 00012390  0x00001c1e set1  0x00000005 , 0x0000003f 
+ 00012391  0x00001c1f store  0x00000001 , 0x00000168 
+ 00012392  0x00001c20 rtn 
+ 00012393  0x00001c25 ifetch  0x00000005 , 0x00000006 
+ 00012394  0x00001c26 store  0x00000005 , 0x0000019f 
+ 00012395  0x00001c27 ifetch  0x00000002 , 0x00000006 
+ 00012396  0x00001c28 store  0x00000002 , 0x00000188 
+ 00012397  0x00001c2a fetch  0x00000001 , 0x00000168 
+ 00012398  0x00001c2b set1  0x00000006 , 0x0000003f 
+ 00012399  0x00001c2c store  0x00000001 , 0x00000168 
+ 00012400  0x00001c2d rtn 
+ 00012401  0x00001c32 setarg  0x00000014 
+ 00012402  0x00001c33 store  0x00000002 , 0x00000196 
+ 00012403  0x00001c34 store  0x00000002 , 0x000042f5 
+ 00012404  0x00001c35 rtn 
+ 00012405  0x00001c3a ifetch  0x00000008 , 0x00000006 
+ 00012406  0x00001c3b store  0x00000008 , 0x00004305 
+ 00012407  0x00001c3c ifetch  0x00000002 , 0x00000006 
+ 00012408  0x00001c3d store  0x00000002 , 0x00004303 
+ 00012409  0x00001c3e ifetch  0x00000008 , 0x00000006 
+ 00012410  0x00001c3f store  0x00000008 , 0x000042e5 
+ 00012411  0x00001c40 ifetch  0x00000004 , 0x00000006 
+ 00012412  0x00001c41 store  0x00000004 , 0x0000445e 
+ 00012413  0x00001c42 call  0x000030cc 
+ 00012414  0x00001c43 bpatchx  0x0000006a , 0x0000402d 
+ 00012415  0x00001c44 fetch  0x00000001 , 0x000042fc 
+ 00012416  0x00001c45 beq  0x00000009 , 0x00003087 
+ 00012417  0x00001c46 fetch  0x00000001 , 0x00004321 
+ 00012418  0x00001c47 bbit1  0x00000001 , 0x0000308a 
+ 00012419  0x00001c48 fetch  0x00000001 , 0x000043fa 
+ 00012420  0x00001c49 ncall  0x00006e96 , 0x00000034 
+ 00012421  0x00001c4a fetch  0x00000001 , 0x0000429a 
+ 00012422  0x00001c4b beq  0x00000000 , 0x0000308f 
+ 00012423  0x00001c4d jam  0x00000001 , 0x000042fd 
+ 00012424  0x00001c4e call  0x000030da 
+ 00012425  0x00001c4f branch  0x0000725c 
+ 00012426  0x00001c51 jam  0x00000001 , 0x0000429a 
+ 00012427  0x00001c52 arg  0x00004322 , 0x00000006 
+ 00012428  0x00001c53 arg  0x0000428a , 0x00000005 
+ 00012429  0x00001c54 call  0x00007c8f 
+ 00012430  0x00001c55 branch  0x00003087 
+ 00012431  0x00001c58 jam  0x00000000 , 0x000042fd 
+ 00012432  0x00001c59 jam  0x00000000 , 0x000042fc 
+ 00012433  0x00001c5a jam  0x00000041 , 0x0000066f 
+ 00012434  0x00001c5b branch  0x0000782b 
+ 00012435  0x00001c5f ifetch  0x00000008 , 0x00000006 
+ 00012436  0x00001c60 store  0x00000008 , 0x000042ed 
+ 00012437  0x00001c61 ifetch  0x00000004 , 0x00000006 
+ 00012438  0x00001c62 store  0x00000004 , 0x00004462 
+ 00012439  0x00001c63 branch  0x0000725c 
+ 00012440  0x00001c68 fetch  0x00000001 , 0x00000168 
+ 00012441  0x00001c69 set1  0x00000004 , 0x0000003f 
+ 00012442  0x00001c6a store  0x00000001 , 0x00000168 
+ 00012443  0x00001c6b rtn 
+ 00012444  0x00001c6f rtn  0x00000029 
+ 00012445  0x00001c70 jam  0x00000032 , 0x0000066f 
+ 00012446  0x00001c71 call  0x0000782b 
+ 00012447  0x00001c72 jam  0x00000004 , 0x000042fd 
+ 00012448  0x00001c73 branch  0x000030dd 
+ 00012449  0x00001c78 rtn 
+ 00012450  0x00001c7d branch  0x000030e4 
+ 00012451  0x00001c82 rtn 
+ 00012452  0x00001c87 jam  0x00000002 , 0x000042fd 
+ 00012453  0x00001c88 call  0x000030eb 
+ 00012454  0x00001c89 jam  0x00000033 , 0x0000066f 
+ 00012455  0x00001c8a branch  0x0000782b 
+ 00012456  0x00001c8f rtn 
+ 00012457  0x00001c94 rtn  0x00000029 
+ 00012458  0x00001c95 branch  0x000030ed 
+ 00012459  0x00001c9a rtn 
+ 00012460  0x00001c9f branch  0x000030f9 
+ 00012461  0x00001ca4 rtn 
+ 00012462  0x00001ca8 call  0x000030b0 
+ 00012463  0x00001ca9 branch  0x000030fd 
+ 00012464  0x00001cac ifetch  0x00000008 , 0x00000006 
+ 00012465  0x00001cad store  0x00000008 , 0x000043b8 
+ 00012466  0x00001cae fetch  0x00000002 , 0x000043b8 
+ 00012467  0x00001caf fetcht  0x00000002 , 0x000043c4 
+ 00012468  0x00001cb0 call  0x00007db0 
+ 00012469  0x00001cb1 store  0x00000002 , 0x000043b8 
+ 00012470  0x00001cb3 fetch  0x00000002 , 0x000043bc 
+ 00012471  0x00001cb4 fetcht  0x00000002 , 0x000043c0 
+ 00012472  0x00001cb5 call  0x00007db0 
+ 00012473  0x00001cb6 store  0x00000002 , 0x000043bc 
+ 00012474  0x00001cb7 rtn 
+ 00012475  0x00001cbc branch  0x00003103 
+ 00012476  0x00001cc1 ifetch  0x00000002 , 0x00000006 
+ 00012477  0x00001cc2 store  0x00000002 , 0x0000019f 
+ 00012478  0x00001cc3 ifetch  0x00000002 , 0x00000006 
+ 00012479  0x00001cc4 store  0x00000002 , 0x00000188 
+ 00012480  0x00001cc5 rtn  0x00000034 
+ 00012481  0x00001cc6 fetch  0x00000001 , 0x00000168 
+ 00012482  0x00001cc7 set1  0x00000007 , 0x0000003f 
+ 00012483  0x00001cc8 store  0x00000001 , 0x00000168 
+ 00012484  0x00001cc9 rtn 
+ 00012485  0x00001ccf arg  0x00000013 , 0x00000013 
+ 00012486  0x00001cd3 arg  0x00000002 , 0x00000011 
+ 00012487  0x00001cd4 arg  0x00000002 , 0x00000012 
+ 00012488  0x00001cd5 call  0x000029f5 
+ 00012489  0x00001cd6 copy  0x00000013 , 0x0000003f 
+ 00012490  0x00001cd7 istore  0x00000001 , 0x00000005 
+ 00012491  0x00001cd8 rtn 
+ 00012492  0x00001cdd arg  0x000042ed , 0x00000005 
+ 00012493  0x00001cde force  0x00000008 , 0x00000039 
+ 00012494  0x00001cdf call  0x00007de8 
+ 00012495  0x00001ce0 arg  0x00004462 , 0x00000005 
+ 00012496  0x00001ce1 force  0x00000004 , 0x00000039 
+ 00012497  0x00001ce2 call  0x00007de8 
+ 00012498  0x00001ce3 arg  0x0000000d , 0x00000011 
+ 00012499  0x00001ce4 arg  0x00000004 , 0x00000012 
+ 00012500  0x00001ce5 call  0x000029f5 
+ 00012501  0x00001ce6 fetch  0x00000008 , 0x000042ed 
+ 00012502  0x00001ce7 istore  0x00000008 , 0x00000005 
+ 00012503  0x00001ce8 fetch  0x00000004 , 0x00004462 
+ 00012504  0x00001ce9 istore  0x00000004 , 0x00000005 
+ 00012505  0x00001cea rtn 
+ 00012506  0x00001cef jam  0x00000005 , 0x000042fd 
+ 00012507  0x00001cf0 arg  0x00000005 , 0x00000012 
+ 00012508  0x00001cf1 branch  0x0000310d 
+ 00012509  0x00001cf6 arg  0x00000006 , 0x00000012 
+ 00012510  0x00001cf7 branch  0x0000310d 
+ 00012511  0x00001cfd arg  0x00000002 , 0x00000011 
+ 00012512  0x00001cfe arg  0x00000007 , 0x00000012 
+ 00012513  0x00001cff call  0x000029f5 
+ 00012514  0x00001d00 istorer  0x00000013 , 0x00000001 , 0x00000005 
+ 00012515  0x00001d01 rtn 
+ 00012516  0x00001d06 arg  0x00000009 , 0x00000011 
+ 00012517  0x00001d07 arg  0x00000009 , 0x00000012 
+ 00012518  0x00001d08 call  0x000029f5 
+ 00012519  0x00001d09 fetch  0x00000008 , 0x000043ae 
+ 00012520  0x00001d0a or  0x0000003f , 0x00000001 , 0x0000003f 
+ 00012521  0x00001d0b istore  0x00000008 , 0x00000005 
+ 00012522  0x00001d0c rtn 
+ 00012523  0x00001d11 arg  0x0000000b , 0x00000012 
+ 00012524  0x00001d12 branch  0x0000310d 
+ 00012525  0x00001d17 arg  0x00000006 , 0x00000011 
+ 00012526  0x00001d18 arg  0x0000000c , 0x00000012 
+ 00012527  0x00001d19 call  0x000029f5 
+ 00012528  0x00001d1a fetch  0x00000005 , 0x0000415e 
+ 00012529  0x00001d1b istore  0x00000005 , 0x00000005 
+ 00012530  0x00001d1c rtn 
+ 00012531  0x00001d20 arg  0x00000002 , 0x00000011 
+ 00012532  0x00001d21 arg  0x0000000d , 0x00000012 
+ 00012533  0x00001d22 call  0x000029f5 
+ 00012534  0x00001d23 setarg  0x00000006 
+ 00012535  0x00001d24 istore  0x00000001 , 0x00000005 
+ 00012536  0x00001d25 rtn 
+ 00012537  0x00001d2a arg  0x00000013 , 0x00000012 
+ 00012538  0x00001d2b branch  0x0000310d 
+ 00012539  0x00001d2e arg  0x00000014 , 0x00000012 
+ 00012540  0x00001d2f branch  0x000030fe 
+ 00012541  0x00001d32 arg  0x00000015 , 0x00000012 
+ 00012542  0x00001d34 arg  0x00000009 , 0x00000011 
+ 00012543  0x00001d35 call  0x000029f5 
+ 00012544  0x00001d36 fetch  0x00000008 , 0x000043c0 
+ 00012545  0x00001d37 istore  0x00000008 , 0x00000005 
+ 00012546  0x00001d38 rtn 
+ 00012547  0x00001d3d arg  0x00000003 , 0x00000011 
+ 00012548  0x00001d3e arg  0x00000017 , 0x00000012 
+ 00012549  0x00001d3f call  0x000029f5 
+ 00012550  0x00001d40 fetch  0x00000001 , 0x000043b6 
+ 00012551  0x00001d41 and  0x0000003f , 0x00000007 , 0x0000003f 
+ 00012552  0x00001d42 istore  0x00000001 , 0x00000005 
+ 00012553  0x00001d43 fetch  0x00000001 , 0x000043b7 
+ 00012554  0x00001d44 and  0x0000003f , 0x00000007 , 0x0000003f 
+ 00012555  0x00001d45 istore  0x00000001 , 0x00000005 
+ 00012556  0x00001d46 rtn 
+ 00012557  0x00001d4b arg  0x00000001 , 0x00000011 
+ 00012558  0x00001d4c branch  0x000029f5 
+ 00012559  0x00001d52 bpatchx  0x0000006b , 0x0000402d 
+ 00012560  0x00001d53 bmark1  0x00000027 , 0x000033a3 
+ 00012561  0x00001d54 branch  0x00003603 
+ 00012562  0x00001d5a bpatchx  0x0000006c , 0x0000402d 
+ 00012563  0x00001d5b disable  0x00000009 
+ 00012564  0x00001d5c disable  0x00000007 
+ 00012565  0x00001d5d setarg  0x00555555 
+ 00012566  0x00001d5e iforce  0x0000000f 
+ 00012567  0x00001d5f fetch  0x00000001 , 0x0000458d 
+ 00012568  0x00001d60 branch  0x000025c8 
+ 00012569  0x00001d63 bpatchx  0x0000006d , 0x0000402d 
+ 00012570  0x00001d64 fetch  0x00000001 , 0x000045b7 
+ 00012571  0x00001d65 call  0x000025a4 
+ 00012572  0x00001d66 fetch  0x00000004 , 0x0000458f 
+ 00012573  0x00001d67 iforce  0x00000009 
+ 00012574  0x00001d68 call  0x00002160 
+ 00012575  0x00001d69 fetcht  0x00000001 , 0x0000458d 
+ 00012576  0x00001d6a call  0x000025cd 
+ 00012577  0x00001d6c call  0x00003112 
+ 00012578  0x00001d6d bmark0  0x0000002f , 0x00003126 
+ 00012579  0x00001d6e pulse  0x00000039 
+ 00012580  0x00001d6f nop  0x0000001e 
+ 00012581  0x00001d70 call  0x00003112 
+ 00012582  0x00001d72 disable  0x0000002f 
+ 00012583  0x00001d73 enable  0x0000000d 
+ 00012584  0x00001d74 enable  0x00000021 
+ 00012585  0x00001d75 disable  0x00000020 
+ 00012586  0x00001d76 enable  0x00000010 
+ 00012587  0x00001d77 fetch  0x00000002 , 0x0000458b 
+ 00012588  0x00001d78 iforce  0x0000001b 
+ 00012589  0x00001d79 correlate  0x0000003e , 0x00000003 
+ 00012590  0x00001d7a nbranch  0x00003180 , 0x00000018 
+ 00012591  0x00001d7b call  0x00006877 
+ 00012592  0x00001d7c bmark1  0x0000002f , 0x00003135 
+ 00012593  0x00001d7d fetch  0x00000001 , 0x000045ca 
+ 00012594  0x00001d7e nbranch  0x00003135 , 0x00000034 
+ 00012595  0x00001d7f disable  0x0000000d 
+ 00012596  0x00001d80 enable  0x0000000b 
+ 00012597  0x00001d82 enable  0x00000007 
+ 00012598  0x00001d83 enable  0x00000009 
+ 00012599  0x00001d84 call  0x0000317d 
+ 00012600  0x00001d85 store  0x00000001 , 0x000045ad 
+ 00012601  0x00001d86 fetcht  0x00000001 , 0x000045ac 
+ 00012602  0x00001d87 isub  0x00000002 , 0x0000003e 
+ 00012603  0x00001d88 nbranch  0x00003188 , 0x00000005 
+ 00012604  0x00001d89 bpatchx  0x0000006e , 0x0000402d 
+ 00012605  0x00001d8a disable  0x00000031 
+ 00012606  0x00001d8b isolate1  0x0000002f , 0x00000000 
+ 00012607  0x00001d8c call  0x0000316f , 0x00000001 
+ 00012608  0x00001d8d branch  0x0000318a , 0x00000031 
+ 00012609  0x00001d8e call  0x0000317d 
+ 00012610  0x00001d8f store  0x00000001 , 0x000044f7 
+ 00012611  0x00001d90 bmark1  0x00000027 , 0x00003148 
+ 00012612  0x00001d91 fetch  0x00000001 , 0x000044f7 
+ 00012613  0x00001d92 fetcht  0x00000001 , 0x00004589 
+ 00012614  0x00001d93 icompare  0x00000007 , 0x00000002 
+ 00012615  0x00001d94 nbranch  0x0000318c , 0x00000001 
+ 00012616  0x00001d96 call  0x0000317d 
+ 00012617  0x00001d97 isolate1  0x0000002f , 0x00000000 
+ 00012618  0x00001d98 call  0x00003178 , 0x00000001 
+ 00012619  0x00001d99 istore  0x00000001 , 0x00000005 
+ 00012620  0x00001d9a rshift3  0x0000003f , 0x0000003f 
+ 00012621  0x00001d9b sub  0x0000003f , 0x0000001f , 0x0000003e 
+ 00012622  0x00001d9c nbranch  0x0000318e , 0x00000002 
+ 00012623  0x00001d9d copy  0x0000003f , 0x00000039 
+ 00012624  0x00001d9e branch  0x00003154 , 0x00000005 
+ 00012625  0x00001da0 call  0x0000317d 
+ 00012626  0x00001da1 istore  0x00000001 , 0x00000005 
+ 00012627  0x00001da2 loop  0x00003151 
+ 00012628  0x00001da4 bmark1  0x00000027 , 0x00003159 
+ 00012629  0x00001da5 copy  0x00000005 , 0x00000011 
+ 00012630  0x00001da6 call  0x0000317d 
+ 00012631  0x00001da7 store  0x00000001 , 0x000045d3 
+ 00012632  0x00001da8 copy  0x00000011 , 0x00000005 
+ 00012633  0x00001daa parse  0x00000003 , 0x00000000 , 0x00000018 
+ 00012634  0x00001dab rshift32  0x0000003f , 0x0000003f 
+ 00012635  0x00001dac rshift16  0x0000003f , 0x0000003f 
+ 00012636  0x00001dad istore  0x00000003 , 0x00000005 
+ 00012637  0x00001dae fetch  0x00000001 , 0x000045ca 
+ 00012638  0x00001daf nbranch  0x0000316d , 0x00000034 
+ 00012639  0x00001db0 disable  0x0000000b 
+ 00012640  0x00001db2 isolate1  0x00000027 , 0x00000000 
+ 00012641  0x00001db3 call  0x000035c8 , 0x00000001 
+ 00012642  0x00001db4 branch  0x00003190 , 0x00000006 
+ 00012643  0x00001db5 call  0x00006876 
+ 00012644  0x00001db6 bpatchx  0x0000006f , 0x0000402d 
+ 00012645  0x00001db7 enable  0x0000002f 
+ 00012646  0x00001db8 call  0x000026bb 
+ 00012647  0x00001db9 rtnmark1  0x00000027 
+ 00012648  0x00001dba fetch  0x00000001 , 0x000045d3 
+ 00012649  0x00001dbb fetcht  0x00000001 , 0x0000462a 
+ 00012650  0x00001dbc isub  0x00000002 , 0x0000003e 
+ 00012651  0x00001dbd call  0x00007db2 , 0x00000002 
+ 00012652  0x00001dbe branch  0x000035cb 
+ 00012653  0x00001dc1 disable  0x0000000d 
+ 00012654  0x00001dc2 branch  0x00003160 
+ 00012655  0x00001dc6 call  0x0000317d 
+ 00012656  0x00001dc7 sub  0x0000003f , 0x00000001 , 0x0000003e 
+ 00012657  0x00001dc8 branch  0x00007dc2 , 0x00000002 
+ 00012658  0x00001dc9 increase  0xfffffffe , 0x0000003f 
+ 00012659  0x00001dca bmark1  0x00000027 , 0x00003176 
+ 00012660  0x00001dcb branch  0x00007dc2 , 0x00000034 
+ 00012661  0x00001dcc increase  0xffffffff , 0x0000003f 
+ 00012662  0x00001dce store  0x00000001 , 0x00000678 
+ 00012663  0x00001dcf rtn 
+ 00012664  0x00001dd2 and_into  0x00000007 , 0x0000003f 
+ 00012665  0x00001dd3 fetcht  0x00000001 , 0x00000678 
+ 00012666  0x00001dd4 lshift3  0x00000002 , 0x00000002 
+ 00012667  0x00001dd5 ior  0x00000002 , 0x0000003f 
+ 00012668  0x00001dd6 rtn 
+ 00012669  0x00001dd9 parse  0x00000003 , 0x00000000 , 0x00000008 
+ 00012670  0x00001dda rshift3  0x0000000c , 0x0000003f 
+ 00012671  0x00001ddb rtn 
+ 00012672  0x00001dde jam  0x00000001 , 0x000045cb 
+ 00012673  0x00001ddf isolate1  0x00000027 , 0x00000000 
+ 00012674  0x00001de0 call  0x000035e3 , 0x00000001 
+ 00012675  0x00001de2 bpatchx  0x00000070 , 0x0000402e 
+ 00012676  0x00001de3 call  0x000025bc 
+ 00012677  0x00001de4 disable  0x0000001b 
+ 00012678  0x00001de5 disable  0x0000000b 
+ 00012679  0x00001de6 branch  0x000020cf 
+ 00012680  0x00001de9 jam  0x00000002 , 0x000045cb 
+ 00012681  0x00001dea branch  0x00003183 
+ 00012682  0x00001ded jam  0x00000003 , 0x000045cb 
+ 00012683  0x00001dee branch  0x00003183 
+ 00012684  0x00001df1 jam  0x00000004 , 0x000045cb 
+ 00012685  0x00001df2 branch  0x00003183 
+ 00012686  0x00001df5 jam  0x00000005 , 0x000045cb 
+ 00012687  0x00001df6 branch  0x00003183 
+ 00012688  0x00001df9 jam  0x00000006 , 0x000045cb 
+ 00012689  0x00001dfa branch  0x00003183 
+ 00012690  0x00001dfd call  0x00002160 
+ 00012691  0x00001dfe fetcht  0x00000001 , 0x0000458d 
+ 00012692  0x00001dff branch  0x000021f9 
+ 00012693  0x00001e02 bpatchx  0x00000071 , 0x0000402e 
+ 00012694  0x00001e03 fetch  0x00000001 , 0x000045b8 
+ 00012695  0x00001e04 call  0x000025a4 
+ 00012696  0x00001e05 fetch  0x00000004 , 0x0000458f 
+ 00012697  0x00001e06 iforce  0x00000009 
+ 00012698  0x00001e07 call  0x00003112 
+ 00012699  0x00001e08 call  0x00003192 
+ 00012700  0x00001e09 set1  0x00000000 , 0x00000015 
+ 00012701  0x00001e0a enable  0x0000001d 
+ 00012702  0x00001e0b enable  0x00000020 
+ 00012703  0x00001e0c disable  0x00000021 
+ 00012704  0x00001e0d call  0x0000687d 
+ 00012705  0x00001e0e disable  0x0000003a 
+ 00012706  0x00001e0f bmark1  0x0000002f , 0x000031c7 
+ 00012707  0x00001e10 bmark1  0x0000002d , 0x000031d9 
+ 00012708  0x00001e11 rshift16  0x00000009 , 0x0000003f 
+ 00012709  0x00001e12 rshift8  0x0000003f , 0x0000003f 
+ 00012710  0x00001e13 rshift4  0x0000003f , 0x0000003f 
+ 00012711  0x00001e14 inject  0x00000003 , 0x00000028 
+ 00012712  0x00001e16 bpatchx  0x00000072 , 0x0000402e 
+ 00012713  0x00001e17 bmark1  0x0000002f , 0x000031ae 
+ 00012714  0x00001e18 fetch  0x00000001 , 0x000045ca 
+ 00012715  0x00001e19 nbranch  0x000031ae , 0x00000034 
+ 00012716  0x00001e1a disable  0x0000001d 
+ 00012717  0x00001e1b enable  0x0000001b 
+ 00012718  0x00001e1d enable  0x00000007 
+ 00012719  0x00001e1e enable  0x00000009 
+ 00012720  0x00001e1f fetch  0x00000001 , 0x0000458a 
+ 00012721  0x00001e20 iforce  0x00000039 
+ 00012722  0x00001e21 arg  0x00004539 , 0x00000006 
+ 00012723  0x00001e23 ifetch  0x00000001 , 0x00000006 
+ 00012724  0x00001e24 inject  0x00000003 , 0x00000008 
+ 00012725  0x00001e25 loop  0x000031b3 
+ 00012726  0x00001e26 enable  0x00000008 
+ 00012727  0x00001e27 inject  0x00000003 , 0x00000018 
+ 00012728  0x00001e28 disable  0x00000008 
+ 00012729  0x00001e29 bmark0  0x0000002f , 0x000031bd 
+ 00012730  0x00001e2a disable  0x00000007 
+ 00012731  0x00001e2b setarg  0x00000000 
+ 00012732  0x00001e2c inject  0x00000003 , 0x00000003 
+ 00012733  0x00001e2e until  0x0000003e , 0x00000027 
+ 00012734  0x00001e2f nop  0x00000064 
+ 00012735  0x00001e30 disable  0x0000003a 
+ 00012736  0x00001e31 disable  0x0000001d 
+ 00012737  0x00001e32 fetch  0x00000001 , 0x000045ca 
+ 00012738  0x00001e33 nbranch  0x000031c4 , 0x00000034 
+ 00012739  0x00001e34 disable  0x0000001b 
+ 00012740  0x00001e36 disable  0x00000038 
+ 00012741  0x00001e37 call  0x00002160 
+ 00012742  0x00001e38 branch  0x0000687b 
+ 00012743  0x00001e3b arg  0x0000000a , 0x00000039 
+ 00012744  0x00001e3d setarg  0x0000003c 
+ 00012745  0x00001e3e inject  0x00000003 , 0x00000008 
+ 00012746  0x00001e3f loop  0x000031c8 
+ 00012747  0x00001e40 disable  0x0000001d 
+ 00012748  0x00001e41 enable  0x00000038 
+ 00012749  0x00001e42 rshift16  0x00000009 , 0x0000003f 
+ 00012750  0x00001e43 rshift16  0x0000003f , 0x0000003f 
+ 00012751  0x00001e44 rshift4  0x0000003f , 0x0000003f 
+ 00012752  0x00001e45 inject  0x00000003 , 0x00000020 
+ 00012753  0x00001e46 bmark1  0x0000002e , 0x000031d6 
+ 00012754  0x00001e48 setarg  0x00000001 
+ 00012755  0x00001e49 inject  0x00000003 , 0x00000005 
+ 00012756  0x00001e4a enable  0x0000003a 
+ 00012757  0x00001e4b branch  0x000031a8 
+ 00012758  0x00001e4e setarg  0x00000000 
+ 00012759  0x00001e4f inject  0x00000003 , 0x00000005 
+ 00012760  0x00001e50 branch  0x000031a8 
+ 00012761  0x00001e53 fetch  0x00000001 , 0x00004148 
+ 00012762  0x00001e54 rshift  0x0000003f , 0x00000039 
+ 00012763  0x00001e56 nop  0x00000002 
+ 00012764  0x00001e57 loop  0x000031db 
+ 00012765  0x00001e59 rshift16  0x00000009 , 0x0000003f 
+ 00012766  0x00001e5a rshift8  0x0000003f , 0x0000003f 
+ 00012767  0x00001e5b rshift4  0x0000003f , 0x00000002 
+ 00012768  0x00001e5c copy  0x00000002 , 0x0000003f 
+ 00012769  0x00001e5d inject  0x00000003 , 0x00000008 
+ 00012770  0x00001e5e copy  0x00000002 , 0x0000003f 
+ 00012771  0x00001e5f inject  0x00000003 , 0x00000028 
+ 00012772  0x00001e60 branch  0x000031a8 
+ 00012773  0x00001e69 bpatchx  0x00000073 , 0x0000402e 
+ 00012774  0x00001e6a fetch  0x00000001 , 0x000045b8 
+ 00012775  0x00001e6b bbit1  0x00000002 , 0x00003206 
+ 00012776  0x00001e6d fetch  0x00000001 , 0x00004588 
+ 00012777  0x00001e6e increase  0x00000003 , 0x0000003f 
+ 00012778  0x00001e6f store  0x00000001 , 0x0000458a 
+ 00012779  0x00001e71 fetch  0x00000001 , 0x000045ac 
+ 00012780  0x00001e72 store  0x00000001 , 0x00004539 
+ 00012781  0x00001e74 fetch  0x00000001 , 0x00004589 
+ 00012782  0x00001e75 istore  0x00000001 , 0x00000005 
+ 00012783  0x00001e77 fetch  0x00000001 , 0x00004588 
+ 00012784  0x00001e79 lshift3  0x0000003f , 0x0000003f 
+ 00012785  0x00001e7a fetcht  0x00000001 , 0x0000457e 
+ 00012786  0x00001e7b and  0x00000002 , 0x00000003 , 0x00000002 
+ 00012787  0x00001e7c lshift  0x00000002 , 0x00000002 
+ 00012788  0x00001e7d ior  0x00000002 , 0x0000003f 
+ 00012789  0x00001e7e fetcht  0x00000001 , 0x0000457f 
+ 00012790  0x00001e7f iadd  0x00000002 , 0x0000003f 
+ 00012791  0x00001e80 istore  0x00000001 , 0x00000005 
+ 00012792  0x00001e82 fetch  0x00000001 , 0x00004588 
+ 00012793  0x00001e83 iforce  0x00000039 
+ 00012794  0x00001e84 arg  0x00004519 , 0x00000006 
+ 00012795  0x00001e85 call  0x00007cda 
+ 00012796  0x00001e86 bpatchx  0x00000074 , 0x0000402e 
+ 00012797  0x00001e88 rtnmark0  0x00000027 
+ 00012798  0x00001e89 fetch  0x00000001 , 0x00000035 
+ 00012799  0x00001e8a istore  0x00000001 , 0x00000005 
+ 00012800  0x00001e8b fetch  0x00000001 , 0x000045b8 
+ 00012801  0x00001e8c rtnbit1  0x00000002 
+ 00012802  0x00001e8d fetch  0x00000001 , 0x0000458a 
+ 00012803  0x00001e8e increase  0x00000001 , 0x0000003f 
+ 00012804  0x00001e8f store  0x00000001 , 0x0000458a 
+ 00012805  0x00001e90 rtn 
+ 00012806  0x00001e94 fetch  0x00000001 , 0x00004588 
+ 00012807  0x00001e95 increase  0x00000004 , 0x0000003f 
+ 00012808  0x00001e96 bmark0  0x00000027 , 0x0000320a 
+ 00012809  0x00001e97 increase  0x00000001 , 0x0000003f 
+ 00012810  0x00001e99 store  0x00000001 , 0x0000458a 
+ 00012811  0x00001e9b fetch  0x00000001 , 0x000045ac 
+ 00012812  0x00001e9c store  0x00000001 , 0x00004539 
+ 00012813  0x00001e9e fetch  0x00000001 , 0x0000458a 
+ 00012814  0x00001e9f increase  0xfffffffe , 0x0000003f 
+ 00012815  0x00001ea0 istore  0x00000001 , 0x00000005 
+ 00012816  0x00001ea2 fetch  0x00000001 , 0x00004589 
+ 00012817  0x00001ea3 istore  0x00000001 , 0x00000005 
+ 00012818  0x00001ea4 setarg  0x00000000 
+ 00012819  0x00001ea5 branch  0x000031f0 
+ 00012820  0x00001ea8 bpatchx  0x00000075 , 0x0000402e 
+ 00012821  0x00001eaa fetch  0x00000001 , 0x000044f8 
+ 00012822  0x00001eab rshift3  0x0000003f , 0x0000003f 
+ 00012823  0x00001eac store  0x00000001 , 0x0000457d 
+ 00012824  0x00001eae increase  0x00000001 , 0x0000003f 
+ 00012825  0x00001eaf arg  0x000044f8 , 0x00000006 
+ 00012826  0x00001eb0 iadd  0x00000006 , 0x00000006 
+ 00012827  0x00001eb1 ifetch  0x00000003 , 0x00000006 
+ 00012828  0x00001eb2 store  0x00000003 , 0x00004580 
+ 00012829  0x00001eb4 fetch  0x00000001 , 0x000044f8 
+ 00012830  0x00001eb5 rshift  0x0000003f , 0x0000003f 
+ 00012831  0x00001eb6 and  0x0000003f , 0x00000003 , 0x0000003f 
+ 00012832  0x00001eb7 store  0x00000001 , 0x00004586 
+ 00012833  0x00001eb8 rtn 
+ 00012834  0x00001ebc bpatchx  0x00000076 , 0x0000402e 
+ 00012835  0x00001ebd fetcht  0x00000001 , 0x0000458e 
+ 00012836  0x00001ebe call  0x00003227 
+ 00012837  0x00001ebf storet  0x00000001 , 0x0000458e 
+ 00012838  0x00001ec0 rtn 
+ 00012839  0x00001ec3 bpatchx  0x00000077 , 0x0000402e 
+ 00012840  0x00001ec4 call  0x0000322c 
+ 00012841  0x00001ec5 increase  0x00000001 , 0x00000002 
+ 00012842  0x00001ec6 and_into  0x00000003 , 0x00000002 
+ 00012843  0x00001ec7 rtn 
+ 00012844  0x00001eca bpatchx  0x00000078 , 0x0000402f 
+ 00012845  0x00001ecb fetch  0x00000001 , 0x0000458f 
+ 00012846  0x00001ecc and_into  0x00000003 , 0x0000003f 
+ 00012847  0x00001ecd mul32  0x0000003f , 0x00000004 , 0x00000011 
+ 00012848  0x00001ece setarg  0x00004593 
+ 00012849  0x00001ecf iadd  0x00000011 , 0x0000003f 
+ 00012850  0x00001ed0 iadd  0x00000002 , 0x00000006 
+ 00012851  0x00001ed1 ifetch  0x00000001 , 0x00000006 
+ 00012852  0x00001ed2 store  0x00000001 , 0x0000458d 
+ 00012853  0x00001ed3 rtn 
+ 00012854  0x00001ed7 store  0x00000004 , 0x0000458f 
+ 00012855  0x00001ed9 bpatchx  0x00000079 , 0x0000402f 
+ 00012856  0x00001edb arg  0x00000000 , 0x00000011 
+ 00012857  0x00001edc arg  0x00000004 , 0x00000039 
+ 00012858  0x00001edd arg  0x0000458f , 0x00000006 
+ 00012859  0x00001edf ifetch  0x00000001 , 0x00000006 
+ 00012860  0x00001ee0 iadd  0x00000011 , 0x00000011 
+ 00012861  0x00001ee1 loop  0x0000323b 
+ 00012862  0x00001ee2 copy  0x00000011 , 0x0000003f 
+ 00012863  0x00001ee3 store  0x00000002 , 0x000045aa 
+ 00012864  0x00001ee4 fetch  0x00000001 , 0x000045aa 
+ 00012865  0x00001ee5 fetcht  0x00000001 , 0x000045ab 
+ 00012866  0x00001ee6 iadd  0x00000002 , 0x0000003f 
+ 00012867  0x00001ee7 store  0x00000001 , 0x000045ac 
+ 00012868  0x00001ee8 rtn 
+ 00012869  0x00001eec bpatchx  0x0000007a , 0x0000402f 
+ 00012870  0x00001eed call  0x00007dbc 
+ 00012871  0x00001eee fetcht  0x00000004 , 0x000045a3 
+ 00012872  0x00001eef copy  0x00000022 , 0x0000003f 
+ 00012873  0x00001ef0 isub  0x00000002 , 0x0000003e 
+ 00012874  0x00001ef1 ncall  0x00003255 , 0x00000002 
+ 00012875  0x00001ef2 copy  0x0000003f , 0x00000012 
+ 00012876  0x00001ef3 fetch  0x00000004 , 0x000045a3 
+ 00012877  0x00001ef4 fetcht  0x00000001 , 0x000045a7 
+ 00012878  0x00001ef5 iadd  0x00000002 , 0x00000002 
+ 00012879  0x00001ef6 copy  0x00000012 , 0x0000003f 
+ 00012880  0x00001ef7 isub  0x00000002 , 0x0000003e 
+ 00012881  0x00001ef8 nrtn  0x00000002 
+ 00012882  0x00001ef9 set0  0x0000001c , 0x0000003f 
+ 00012883  0x00001efa store  0x00000004 , 0x000045a3 
+ 00012884  0x00001efb branch  0x00007dba 
+ 00012885  0x00001efe rtn  0x00000005 
+ 00012886  0x00001eff set1  0x0000001c , 0x0000003f 
+ 00012887  0x00001f00 rtn 
+ 00012888  0x00001f03 setarg  0x00000000 
+ 00012889  0x00001f04 store  0x00000004 , 0x000045a3 
+ 00012890  0x00001f05 rtn 
+ 00012891  0x00001f0e bpatchx  0x0000007b , 0x0000402f 
+ 00012892  0x00001f0f setsect  0x00000000 , 0x00001300 
+ 00012893  0x00001f10 setsect  0x00000001 , 0x0001908b 
+ 00012894  0x00001f11 setsect  0x00000002 , 0x00036150 
+ 00012895  0x00001f12 setsect  0x00000003 , 0x00003d20 
+ 00012896  0x00001f13 store  0x00000009 , 0x00004593 
+ 00012897  0x00001f14 setsect  0x00000000 , 0x00003a1a 
+ 00012898  0x00001f15 setsect  0x00000001 , 0x0000c453 
+ 00012899  0x00001f16 setsect  0x00000002 , 0x0000d312 
+ 00012900  0x00001f17 setsect  0x00000003 , 0x00000001 
+ 00012901  0x00001f18 istore  0x00000007 , 0x00000005 
+ 00012902  0x00001f19 fetch  0x00000001 , 0x000045b9 
+ 00012903  0x00001f1a rtn  0x00000034 
+ 00012904  0x00001f1b arg  0x000045ba , 0x00000006 
+ 00012905  0x00001f1c arg  0x00004593 , 0x00000005 
+ 00012906  0x00001f1d branch  0x00007c8f 
+ 00012907  0x00001f26 bpatchx  0x0000007c , 0x0000402f 
+ 00012908  0x00001f27 setarg  0x004e001e 
+ 00012909  0x00001f28 store  0x00000003 , 0x000045bb 
+ 00012910  0x00001f29 setarg  0x00032303 
+ 00012911  0x00001f2a istore  0x00000003 , 0x00000005 
+ 00012912  0x00001f2b setarg  0x00250642 
+ 00012913  0x00001f2c istore  0x00000003 , 0x00000005 
+ 00012914  0x00001f2d setarg  0x00094c06 
+ 00012915  0x00001f2e istore  0x00000003 , 0x00000005 
+ 00012916  0x00001f2f setarg  0x003c0927 
+ 00012917  0x00001f30 istore  0x00000003 , 0x00000005 
+ 00012918  0x00001f31 jam  0x00000001 , 0x000045b9 
+ 00012919  0x00001f32 rtn 
+ 00012920  0x00001f36 bpatchx  0x0000007d , 0x0000402f 
+ 00012921  0x00001f37 arg  0x00006978 , 0x00000002 
+ 00012922  0x00001f38 bmark1  0x00000027 , 0x0000327f 
+ 00012923  0x00001f39 arg  0x000012c0 , 0x00000002 
+ 00012924  0x00001f3a fetch  0x00000001 , 0x000045b7 
+ 00012925  0x00001f3b bbit0  0x00000002 , 0x0000327f 
+ 00012926  0x00001f3c arg  0x00002ee0 , 0x00000002 
+ 00012927  0x00001f3e storet  0x00000002 , 0x0000458b 
+ 00012928  0x00001f3f rtn 
+ 00012929  0x00001f42 jam  0x00000001 , 0x000045b7 
+ 00012930  0x00001f43 jam  0x00000001 , 0x000045b8 
+ 00012931  0x00001f44 rtn 
+ 00012932  0x00001f47 jam  0x00000002 , 0x000045b7 
+ 00012933  0x00001f48 jam  0x00000002 , 0x000045b8 
+ 00012934  0x00001f49 rtn 
+ 00012935  0x00001f62 bpatchx  0x0000007e , 0x0000402f 
+ 00012936  0x00001f63 jam  0x0000004e , 0x000045d0 
+ 00012937  0x00001f64 setarg  0x00101520 
+ 00012938  0x00001f65 store  0x00000003 , 0x000045cc 
+ 00012939  0x00001f66 setarg  0x00000005 
+ 00012940  0x00001f67 istore  0x00000001 , 0x00000005 
+ 00012941  0x00001f68 rtn 
+ 00012942  0x00001f6f arg  0x000045d8 , 0x00000013 
+ 00012943  0x00001f70 arg  0x0000367a , 0x00000012 
+ 00012944  0x00001f71 branch  0x000042e7 
+ 00012945  0x00001f74 set1  0x00000026 , 0x00000000 
+ 00012946  0x00001f75 fetch  0x00000001 , 0x000045fc 
+ 00012947  0x00001f76 set0  0x00000002 , 0x0000003f 
+ 00012948  0x00001f77 set1  0x00000001 , 0x0000003f 
+ 00012949  0x00001f78 store  0x00000001 , 0x000045fc 
+ 00012950  0x00001f79 setarg  0x00000000 
+ 00012951  0x00001f7a store  0x00000002 , 0x000045de 
+ 00012952  0x00001f7b fetch  0x00000002 , 0x000045d6 
+ 00012953  0x00001f7c store  0x00000002 , 0x000045d8 
+ 00012954  0x00001f7d jam  0x00000000 , 0x000045d5 
+ 00012955  0x00001f7e call  0x000032d6 
+ 00012956  0x00001f80 jam  0x00000000 , 0x0000457e 
+ 00012957  0x00001f81 fetch  0x00000001 , 0x000045d0 
+ 00012958  0x00001f82 store  0x00000001 , 0x0000458d 
+ 00012959  0x00001f83 fetch  0x00000001 , 0x000045d1 
+ 00012960  0x00001f84 store  0x00000001 , 0x00004141 
+ 00012961  0x00001f85 fetch  0x00000004 , 0x000045cc 
+ 00012962  0x00001f86 branch  0x00003236 
+ 00012963  0x00001f8a bpatchx  0x0000007f , 0x0000402f 
+ 00012964  0x00001f8b jam  0x00000000 , 0x000045e2 
+ 00012965  0x00001f8c fetch  0x00000002 , 0x000045da 
+ 00012966  0x00001f8d increase  0x00000001 , 0x0000003f 
+ 00012967  0x00001f8e store  0x00000002 , 0x000045da 
+ 00012968  0x00001f8f fetch  0x00000001 , 0x000045da 
+ 00012969  0x00001f90 and  0x0000003f , 0x000000ff , 0x0000003f 
+ 00012970  0x00001f91 nrtn  0x00000034 
+ 00012971  0x00001f92 fetch  0x00000001 , 0x000045d4 
+ 00012972  0x00001f93 beq  0x000000ff , 0x000032f8 
+ 00012973  0x00001f94 beq  0x00000001 , 0x000032b2 
+ 00012974  0x00001f95 beq  0x00000002 , 0x000032b4 
+ 00012975  0x00001f96 beq  0x00000003 , 0x000032ba 
+ 00012976  0x00001f97 beq  0x00000004 , 0x000032c0 
+ 00012977  0x00001f98 rtn 
+ 00012978  0x00001f9b jam  0x000000ff , 0x00004519 
+ 00012979  0x00001f9c branch  0x000032c1 
+ 00012980  0x00001f9f fetch  0x00000001 , 0x000045ae 
+ 00012981  0x00001fa0 branch  0x000032b8 , 0x00000034 
+ 00012982  0x00001fa1 fetch  0x00000004 , 0x00004604 
+ 00012983  0x00001fa2 call  0x00003236 
+ 00012984  0x00001fa4 jam  0x000000aa , 0x00004519 
+ 00012985  0x00001fa5 branch  0x000032c1 
+ 00012986  0x00001fa8 jam  0x00000055 , 0x00004519 
+ 00012987  0x00001fa9 fetch  0x00000001 , 0x000045ae 
+ 00012988  0x00001faa branch  0x000032c1 , 0x00000034 
+ 00012989  0x00001fab fetch  0x00000004 , 0x000045e8 
+ 00012990  0x00001fac store  0x00000004 , 0x0000451b 
+ 00012991  0x00001fad branch  0x000032c3 
+ 00012992  0x00001fb0 jam  0x00000022 , 0x00004519 
+ 00012993  0x00001fb2 fetch  0x00000004 , 0x00004604 
+ 00012994  0x00001fb3 store  0x00000004 , 0x0000451b 
+ 00012995  0x00001fb5 fetch  0x00000001 , 0x00004589 
+ 00012996  0x00001fb6 and_into  0x00000007 , 0x0000003f 
+ 00012997  0x00001fb7 store  0x00000001 , 0x0000451a 
+ 00012998  0x00001fb8 jam  0x00000000 , 0x0000451f 
+ 00012999  0x00001fb9 jam  0x00000007 , 0x00004588 
+ 00013000  0x00001fba call  0x000031e5 
+ 00013001  0x00001fbb call  0x00003651 
+ 00013002  0x00001fbc nrtn  0x00000018 
+ 00013003  0x00001fbd nrtn  0x0000002f 
+ 00013004  0x00001fbe call  0x0000357b 
+ 00013005  0x00001fbf call  0x0000366e 
+ 00013006  0x00001fc0 bpatchx  0x00000080 , 0x00004030 
+ 00013007  0x00001fc1 fetch  0x00000001 , 0x000045d4 
+ 00013008  0x00001fc2 rtneq  0x000000ff 
+ 00013009  0x00001fc3 beq  0x00000001 , 0x000032db 
+ 00013010  0x00001fc4 beq  0x00000002 , 0x000032dd 
+ 00013011  0x00001fc5 beq  0x00000003 , 0x000032e3 
+ 00013012  0x00001fc6 beq  0x00000004 , 0x000032eb 
+ 00013013  0x00001fc7 rtn 
+ 00013014  0x00001fca jam  0x00000002 , 0x000045d4 
+ 00013015  0x00001fcb fetch  0x00000001 , 0x000045ae 
+ 00013016  0x00001fcc rtn  0x00000034 
+ 00013017  0x00001fcd jam  0x00000001 , 0x000045d4 
+ 00013018  0x00001fce rtn 
+ 00013019  0x00001fd1 jam  0x00000002 , 0x000045d4 
+ 00013020  0x00001fd2 branch  0x0000364c 
+ 00013021  0x00001fd5 fetch  0x00000001 , 0x000045ae 
+ 00013022  0x00001fd6 branch  0x000032e1 , 0x00000034 
+ 00013023  0x00001fd7 fetch  0x00000004 , 0x0000455f 
+ 00013024  0x00001fd8 store  0x00000004 , 0x000045e8 
+ 00013025  0x00001fda jam  0x00000003 , 0x000045d4 
+ 00013026  0x00001fdb branch  0x0000364c 
+ 00013027  0x00001fde fetch  0x00000001 , 0x000045ae 
+ 00013028  0x00001fdf branch  0x000032e9 , 0x00000034 
+ 00013029  0x00001fe0 fetch  0x00000004 , 0x0000455f 
+ 00013030  0x00001fe1 fetcht  0x00000004 , 0x00004604 
+ 00013031  0x00001fe2 isub  0x00000002 , 0x0000003e 
+ 00013032  0x00001fe3 nrtn  0x00000005 
+ 00013033  0x00001fe5 jam  0x00000004 , 0x000045d4 
+ 00013034  0x00001fe6 branch  0x0000364c 
+ 00013035  0x00001fe9 fetch  0x00000001 , 0x000045ae 
+ 00013036  0x00001fea branch  0x000032f1 , 0x00000034 
+ 00013037  0x00001feb fetch  0x00000004 , 0x0000455f 
+ 00013038  0x00001fec fetcht  0x00000004 , 0x000045e8 
+ 00013039  0x00001fed isub  0x00000002 , 0x0000003e 
+ 00013040  0x00001fee nrtn  0x00000005 
+ 00013041  0x00001ff0 jam  0x000000ff , 0x000045d4 
+ 00013042  0x00001ff1 jam  0x00000039 , 0x0000066f 
+ 00013043  0x00001ff2 call  0x0000782b 
+ 00013044  0x00001ff3 setarg  0x00000000 
+ 00013045  0x00001ff4 store  0x00000002 , 0x000045d8 
+ 00013046  0x00001ff5 fetch  0x00000004 , 0x0000455f 
+ 00013047  0x00001ff6 call  0x00003236 
+ 00013048  0x00001ff8 fetch  0x00000001 , 0x000045fc 
+ 00013049  0x00001ff9 set0  0x00000001 , 0x0000003f 
+ 00013050  0x00001ffa store  0x00000001 , 0x000045fc 
+ 00013051  0x00001ffb branch  0x0000364c 
+ 00013052  0x00002016 jam  0x00000001 , 0x00004616 
+ 00013053  0x00002017 jam  0x00000000 , 0x00004615 
+ 00013054  0x00002018 rtn 
+ 00013055  0x0000201b fetch  0x00000001 , 0x00004615 
+ 00013056  0x0000201c rtnbit1  0x00000001 
+ 00013057  0x0000201d set1  0x00000001 , 0x0000003f 
+ 00013058  0x0000201e store  0x00000001 , 0x00004615 
+ 00013059  0x0000201f setarg  0x00000000 
+ 00013060  0x00002020 store  0x00000003 , 0x000045d3 
+ 00013061  0x00002021 store  0x00000001 , 0x000045de 
+ 00013062  0x00002022 store  0x00000001 , 0x000045df 
+ 00013063  0x00002023 store  0x00000004 , 0x0000462c 
+ 00013064  0x00002024 jam  0x00000001 , 0x00004611 
+ 00013065  0x00002025 branch  0x0000329c 
+ 00013066  0x00002029 jam  0x00000001 , 0x00004611 
+ 00013067  0x0000202a jam  0x00000008 , 0x00004588 
+ 00013068  0x0000202b arg  0x000045d6 , 0x00000006 
+ 00013069  0x0000202c arg  0x00004519 , 0x00000005 
+ 00013070  0x0000202d branch  0x00007c89 
+ 00013071  0x00002031 bpatchx  0x00000081 , 0x00004030 
+ 00013072  0x00002032 call  0x000033be 
+ 00013073  0x00002033 call  0x00003119 
+ 00013074  0x00002034 nbranch  0x000033be , 0x0000002f 
+ 00013075  0x00002035 call  0x0000331e 
+ 00013076  0x00002036 call  0x000033f4 
+ 00013077  0x00002037 call  0x00003399 
+ 00013078  0x00002038 call  0x0000493d 
+ 00013079  0x00002039 fetch  0x00000001 , 0x000045ae 
+ 00013080  0x0000203a rtn  0x00000034 
+ 00013081  0x0000203b fetch  0x00000004 , 0x0000462c 
+ 00013082  0x0000203c rtn  0x00000034 
+ 00013083  0x0000203d branch  0x00003236 
+ 00013084  0x00002040 call  0x000033be 
+ 00013085  0x00002041 branch  0x00003183 
+ 00013086  0x00002044 jam  0x00000005 , 0x00004622 
+ 00013087  0x00002045 arg  0x000044f7 , 0x00000006 
+ 00013088  0x00002046 arg  0x000045e8 , 0x00000005 
+ 00013089  0x00002047 call  0x00007c89 
+ 00013090  0x00002048 bpatchx  0x00000082 , 0x00004030 
+ 00013091  0x00002049 fetch  0x00000001 , 0x000045ea 
+ 00013092  0x0000204a beq  0x000000aa , 0x00003329 
+ 00013093  0x0000204b beq  0x00000055 , 0x0000333a 
+ 00013094  0x0000204c beq  0x00000022 , 0x0000335b 
+ 00013095  0x0000204d beq  0x000000ff , 0x0000359b 
+ 00013096  0x0000204e rtn 
+ 00013097  0x00002052 fetch  0x00000001 , 0x000045eb 
+ 00013098  0x00002053 beq  0x00000001 , 0x0000332d 
+ 00013099  0x00002054 beq  0x00000002 , 0x00003335 
+ 00013100  0x00002055 rtn 
+ 00013101  0x00002058 fetch  0x00000001 , 0x000045de 
+ 00013102  0x00002059 nrtn  0x00000034 
+ 00013103  0x0000205a jam  0x00000001 , 0x000045d3 
+ 00013104  0x0000205c jam  0x00000001 , 0x000045d6 
+ 00013105  0x0000205e jam  0x00000080 , 0x000045d7 
+ 00013106  0x0000205f fetch  0x00000006 , 0x000044f1 
+ 00013107  0x00002060 store  0x00000006 , 0x000045d8 
+ 00013108  0x00002061 rtn 
+ 00013109  0x00002064 fetch  0x00000001 , 0x000045df 
+ 00013110  0x00002065 nrtn  0x00000034 
+ 00013111  0x00002066 jam  0x00000001 , 0x000045d4 
+ 00013112  0x00002068 jam  0x00000002 , 0x000045d6 
+ 00013113  0x00002069 branch  0x00003331 
+ 00013114  0x0000206d fetch  0x00000001 , 0x000045ae 
+ 00013115  0x0000206e branch  0x00003340 , 0x00000034 
+ 00013116  0x0000206f fetch  0x00000004 , 0x000045ec 
+ 00013117  0x00002070 fetcht  0x00000004 , 0x000044f1 
+ 00013118  0x00002071 isub  0x00000002 , 0x0000003e 
+ 00013119  0x00002072 nrtn  0x00000005 
+ 00013120  0x00002074 fetch  0x00000001 , 0x000045eb 
+ 00013121  0x00002075 beq  0x00000001 , 0x00003344 
+ 00013122  0x00002076 beq  0x00000002 , 0x00003351 
+ 00013123  0x00002077 rtn 
+ 00013124  0x0000207a fetch  0x00000001 , 0x000045de 
+ 00013125  0x0000207b nrtn  0x00000034 
+ 00013126  0x0000207c fetch  0x00000001 , 0x000045d3 
+ 00013127  0x0000207d beq  0x00000001 , 0x00003349 
+ 00013128  0x0000207e rtn 
+ 00013129  0x00002080 jam  0x00000002 , 0x000045d3 
+ 00013130  0x00002081 fetch  0x00000001 , 0x000045ae 
+ 00013131  0x00002082 branch  0x00003330 , 0x00000034 
+ 00013132  0x00002084 jam  0x00000001 , 0x000045d6 
+ 00013133  0x00002086 jam  0x00000080 , 0x000045d7 
+ 00013134  0x00002087 fetch  0x00000004 , 0x0000462c 
+ 00013135  0x00002088 store  0x00000004 , 0x000045d8 
+ 00013136  0x00002089 branch  0x00007dba 
+ 00013137  0x0000208c fetch  0x00000001 , 0x000045df 
+ 00013138  0x0000208d nrtn  0x00000034 
+ 00013139  0x0000208e fetch  0x00000001 , 0x000045d4 
+ 00013140  0x0000208f beq  0x00000001 , 0x00003356 
+ 00013141  0x00002090 rtn 
+ 00013142  0x00002092 jam  0x00000002 , 0x000045d4 
+ 00013143  0x00002093 fetch  0x00000001 , 0x000045ae 
+ 00013144  0x00002094 branch  0x00003338 , 0x00000034 
+ 00013145  0x00002095 jam  0x00000002 , 0x000045d6 
+ 00013146  0x00002096 branch  0x0000334d 
+ 00013147  0x0000209a fetch  0x00000001 , 0x000045ae 
+ 00013148  0x0000209b branch  0x00003361 , 0x00000034 
+ 00013149  0x0000209c fetch  0x00000004 , 0x000045ec 
+ 00013150  0x0000209d fetcht  0x00000004 , 0x0000462c 
+ 00013151  0x0000209e isub  0x00000002 , 0x0000003e 
+ 00013152  0x0000209f nrtn  0x00000005 
+ 00013153  0x000020a1 fetch  0x00000001 , 0x000045eb 
+ 00013154  0x000020a2 beq  0x00000001 , 0x00003365 
+ 00013155  0x000020a3 beq  0x00000002 , 0x00003372 
+ 00013156  0x000020a4 rtn 
+ 00013157  0x000020a7 fetch  0x00000001 , 0x000045de 
+ 00013158  0x000020a8 nrtn  0x00000034 
+ 00013159  0x000020a9 fetch  0x00000001 , 0x000045d3 
+ 00013160  0x000020aa beq  0x00000002 , 0x0000336a 
+ 00013161  0x000020ab rtn 
+ 00013162  0x000020ad jam  0x00000001 , 0x000045de 
+ 00013163  0x000020af call  0x00003330 
+ 00013164  0x000020b0 fetch  0x00000001 , 0x000045d5 
+ 00013165  0x000020b1 or_into  0x00000001 , 0x0000003f 
+ 00013166  0x000020b2 store  0x00000001 , 0x000045d5 
+ 00013167  0x000020b4 setarg  0x00000000 
+ 00013168  0x000020b5 store  0x00000002 , 0x000045d3 
+ 00013169  0x000020b6 rtn 
+ 00013170  0x000020b9 fetch  0x00000001 , 0x000045df 
+ 00013171  0x000020ba nrtn  0x00000034 
+ 00013172  0x000020bb fetch  0x00000001 , 0x000045d4 
+ 00013173  0x000020bc bne  0x00000000 , 0x00003377 
+ 00013174  0x000020bd rtn 
+ 00013175  0x000020bf jam  0x00000001 , 0x000045df 
+ 00013176  0x000020c1 call  0x00003338 
+ 00013177  0x000020c2 fetch  0x00000001 , 0x000045d5 
+ 00013178  0x000020c3 or_into  0x00000002 , 0x0000003f 
+ 00013179  0x000020c4 store  0x00000001 , 0x000045d5 
+ 00013180  0x000020c5 call  0x0000336f 
+ 00013181  0x000020c6 branch  0x00004937 
+ 00013182  0x000020c9 fetch  0x00000001 , 0x00004616 
+ 00013183  0x000020ca rtnne  0x00000001 
+ 00013184  0x000020cb fetch  0x00000001 , 0x00004610 
+ 00013185  0x000020cc nrtn  0x00000034 
+ 00013186  0x000020cd fetch  0x00000001 , 0x000044fa 
+ 00013187  0x000020ce beq  0x00000001 , 0x00003386 
+ 00013188  0x000020cf beq  0x00000002 , 0x0000338a 
+ 00013189  0x000020d0 rtn 
+ 00013190  0x000020d2 fetch  0x00000001 , 0x0000462b 
+ 00013191  0x000020d3 rtnbit0  0x00000000 
+ 00013192  0x000020d5 disable  0x0000002f 
+ 00013193  0x000020d6 rtn 
+ 00013194  0x000020d8 fetch  0x00000001 , 0x0000462b 
+ 00013195  0x000020d9 rtnbit0  0x00000001 
+ 00013196  0x000020da branch  0x00003388 
+ 00013197  0x000020dd fetch  0x00000001 , 0x00004610 
+ 00013198  0x000020de nrtn  0x00000034 
+ 00013199  0x000020df fetch  0x00000001 , 0x0000462b 
+ 00013200  0x000020e0 or_into  0x00000001 , 0x0000003f 
+ 00013201  0x000020e1 store  0x00000001 , 0x0000462b 
+ 00013202  0x000020e2 rtn 
+ 00013203  0x000020e5 fetch  0x00000001 , 0x00004610 
+ 00013204  0x000020e6 nrtn  0x00000034 
+ 00013205  0x000020e7 fetch  0x00000001 , 0x0000462b 
+ 00013206  0x000020e8 or_into  0x00000002 , 0x0000003f 
+ 00013207  0x000020e9 store  0x00000001 , 0x0000462b 
+ 00013208  0x000020ea rtn 
+ 00013209  0x000020ee fetch  0x00000001 , 0x000045d5 
+ 00013210  0x000020ef rtn  0x00000034 
+ 00013211  0x000020f1 fetch  0x00000001 , 0x000045eb 
+ 00013212  0x000020f2 beq  0x00000001 , 0x0000338d 
+ 00013213  0x000020f3 beq  0x00000002 , 0x00003393 
+ 00013214  0x000020f4 rtn 
+ 00013215  0x00002108 set1  0x00000027 , 0x00000000 
+ 00013216  0x00002109 fetch  0x00000001 , 0x00004141 
+ 00013217  0x0000210a store  0x00000001 , 0x00004623 
+ 00013218  0x0000210b branch  0x000035d6 
+ 00013219  0x0000210e fetch  0x00000002 , 0x000045e0 
+ 00013220  0x0000210f branch  0x00007d79 
+ 00013221  0x00002112 bpatchx  0x00000083 , 0x00004030 
+ 00013222  0x00002113 jam  0x00000000 , 0x00004588 
+ 00013223  0x00002114 fetch  0x00000001 , 0x00004611 
+ 00013224  0x00002115 rtn  0x00000034 
+ 00013225  0x00002116 fetch  0x00000002 , 0x000045e2 
+ 00013226  0x00002117 branch  0x00007d79 
+ 00013227  0x0000211b call  0x000033f1 
+ 00013228  0x0000211c nbranch  0x000033be , 0x0000002f 
+ 00013229  0x0000211e call  0x000033e3 
+ 00013230  0x0000211f nbranch  0x000033be , 0x00000028 
+ 00013231  0x00002120 fetch  0x00000001 , 0x0000457d 
+ 00013232  0x00002121 branch  0x000033be , 0x00000034 
+ 00013233  0x00002122 increase  0x00000002 , 0x0000003f 
+ 00013234  0x00002123 iforce  0x00000039 
+ 00013235  0x00002124 arg  0x000044f7 , 0x00000006 
+ 00013236  0x00002125 arg  0x000045e8 , 0x00000005 
+ 00013237  0x00002126 call  0x00007cda 
+ 00013238  0x00002127 jam  0x00000000 , 0x00004613 
+ 00013239  0x00002128 fetch  0x00000001 , 0x00004610 
+ 00013240  0x00002129 call  0x000033fe , 0x00000034 
+ 00013241  0x0000212a bpatchx  0x00000084 , 0x00004030 
+ 00013242  0x0000212b fetch  0x00000001 , 0x000045ea 
+ 00013243  0x0000212c beq  0x00000001 , 0x000033c4 
+ 00013244  0x0000212d beq  0x00000002 , 0x000033d3 
+ 00013245  0x0000212e beq  0x000000ff , 0x000033c2 
+ 00013246  0x00002130 bpatchx  0x00000085 , 0x00004030 
+ 00013247  0x00002131 arg  0x000044f7 , 0x00000005 
+ 00013248  0x00002132 arg  0x00000042 , 0x00000039 
+ 00013249  0x00002133 branch  0x00007ca1 
+ 00013250  0x00002136 call  0x0000339b 
+ 00013251  0x00002137 branch  0x0000359b 
+ 00013252  0x0000213a call  0x0000338d 
+ 00013253  0x0000213b call  0x0000352e 
+ 00013254  0x0000213c fetch  0x00000001 , 0x0000460a 
+ 00013255  0x0000213d fetcht  0x00000001 , 0x000045e8 
+ 00013256  0x0000213e isolate1  0x00000003 , 0x00000002 
+ 00013257  0x0000213f setflag  0x00000001 , 0x00000000 , 0x0000003f 
+ 00013258  0x00002140 store  0x00000001 , 0x0000460a 
+ 00013259  0x00002141 beq  0x00000001 , 0x000033d9 
+ 00013260  0x00002142 fetch  0x00000001 , 0x00004612 
+ 00013261  0x00002143 fetcht  0x00000001 , 0x000045e8 
+ 00013262  0x00002144 isolate1  0x00000004 , 0x00000002 
+ 00013263  0x00002145 setflag  0x00000001 , 0x00000000 , 0x0000003f 
+ 00013264  0x00002146 store  0x00000001 , 0x00004612 
+ 00013265  0x00002147 fetch  0x00000002 , 0x000045e4 
+ 00013266  0x00002148 branch  0x00007d79 
+ 00013267  0x0000214b call  0x00003393 
+ 00013268  0x0000214c fetcht  0x00000001 , 0x000045e8 
+ 00013269  0x0000214d isolate1  0x00000003 , 0x00000002 
+ 00013270  0x0000214e branch  0x000033e1 , 0x00000001 
+ 00013271  0x0000214f fetch  0x00000002 , 0x000045e6 
+ 00013272  0x00002150 branch  0x00007d79 
+ 00013273  0x00002153 fetch  0x00000001 , 0x000043cb 
+ 00013274  0x00002154 sub  0x0000003f , 0x0000000e , 0x0000003e 
+ 00013275  0x00002155 call  0x00004469 , 0x00000005 
+ 00013276  0x00002156 fetch  0x00000001 , 0x000045de 
+ 00013277  0x00002157 nrtn  0x00000034 
+ 00013278  0x00002158 jam  0x00000001 , 0x000045de 
+ 00013279  0x00002159 fetch  0x00000004 , 0x000045f2 
+ 00013280  0x0000215a branch  0x000035a3 
+ 00013281  0x0000215c fetch  0x00000004 , 0x000045f2 
+ 00013282  0x0000215d branch  0x000035a9 
+ 00013283  0x00002161 call  0x00007dbc 
+ 00013284  0x00002162 fetch  0x00000001 , 0x00004586 
+ 00013285  0x00002163 fetcht  0x00000001 , 0x00004587 
+ 00013286  0x00002164 isub  0x00000002 , 0x0000003e 
+ 00013287  0x00002165 ncall  0x00007dba , 0x00000005 
+ 00013288  0x00002166 fetch  0x00000001 , 0x00004586 
+ 00013289  0x00002167 store  0x00000001 , 0x00004587 
+ 00013290  0x00002168 fetch  0x00000003 , 0x00004580 
+ 00013291  0x00002169 fetcht  0x00000003 , 0x00004583 
+ 00013292  0x0000216a isub  0x00000002 , 0x0000003e 
+ 00013293  0x0000216b ncall  0x00007dba , 0x00000005 
+ 00013294  0x0000216c fetch  0x00000003 , 0x00004580 
+ 00013295  0x0000216d store  0x00000003 , 0x00004583 
+ 00013296  0x0000216e rtn 
+ 00013297  0x00002171 call  0x000033be 
+ 00013298  0x00002172 call  0x00003119 
+ 00013299  0x00002173 nrtn  0x0000002f 
+ 00013300  0x00002176 fetch  0x00000001 , 0x000044f7 
+ 00013301  0x00002177 store  0x00000001 , 0x00004589 
+ 00013302  0x00002179 call  0x00003214 
+ 00013303  0x0000217b fetch  0x00000001 , 0x000044f8 
+ 00013304  0x0000217c isolate1  0x00000000 , 0x0000003f 
+ 00013305  0x0000217d branch  0x000033fd , 0x00000001 
+ 00013306  0x0000217f call  0x000033a5 
+ 00013307  0x00002180 call  0x000031e5 
+ 00013308  0x00002181 call  0x00003195 
+ 00013309  0x00002183 branch  0x00003183 
+ 00013310  0x00002187 jam  0x00000001 , 0x00004614 
+ 00013311  0x00002189 setarg  0x00000280 
+ 00013312  0x0000218a arg  0x00000008 , 0x00000007 
+ 00013313  0x0000218b branch  0x00007ce1 
+ 00013314  0x00002192 bpatchx  0x00000086 , 0x00004030 
+ 00013315  0x00002193 jam  0x00000001 , 0x00004613 
+ 00013316  0x00002194 jam  0x00000000 , 0x00004617 
+ 00013317  0x00002195 jam  0x000000ff , 0x000045a7 
+ 00013318  0x00002196 branch  0x00003258 
+ 00013319  0x00002199 bpatchx  0x00000087 , 0x00004030 
+ 00013320  0x0000219a fetch  0x00000001 , 0x00004613 
+ 00013321  0x0000219b rtn  0x00000034 
+ 00013322  0x0000219c call  0x00003245 
+ 00013323  0x0000219d nrtn  0x00000028 
+ 00013324  0x0000219e call  0x00003414 
+ 00013325  0x0000219f fetch  0x00000001 , 0x00004617 
+ 00013326  0x000021a0 increase  0x00000001 , 0x0000003f 
+ 00013327  0x000021a1 and_into  0x00000001 , 0x0000003f 
+ 00013328  0x000021a2 store  0x00000001 , 0x00004617 
+ 00013329  0x000021a3 beq  0x00000000 , 0x00003419 
+ 00013330  0x000021a4 beq  0x00000001 , 0x0000341c 
+ 00013331  0x000021a5 rtn 
+ 00013332  0x000021a8 fetch  0x00000001 , 0x00004622 
+ 00013333  0x000021a9 rtn  0x00000034 
+ 00013334  0x000021aa increase  0xffffffff , 0x0000003f 
+ 00013335  0x000021ab store  0x00000001 , 0x00004622 
+ 00013336  0x000021ac rtn 
+ 00013337  0x000021af fetch  0x00000001 , 0x00004622 
+ 00013338  0x000021b0 nrtn  0x00000034 
+ 00013339  0x000021b1 branch  0x00003460 
+ 00013340  0x000021b4 fetch  0x00000001 , 0x00004622 
+ 00013341  0x000021b5 nrtn  0x00000034 
+ 00013342  0x000021b6 branch  0x000032fc 
+ 00013343  0x000021ba fetch  0x00000001 , 0x0000462a 
+ 00013344  0x000021bb nrtn  0x00000034 
+ 00013345  0x000021bc fetch  0x00000001 , 0x00004628 
+ 00013346  0x000021bd call  0x0000344f , 0x00000034 
+ 00013347  0x000021be fetch  0x00000001 , 0x00004625 
+ 00013348  0x000021bf rtnbit1  0x00000000 
+ 00013349  0x000021c0 set1  0x00000000 , 0x0000003f 
+ 00013350  0x000021c1 store  0x00000001 , 0x00004625 
+ 00013351  0x000021c2 jam  0x00000001 , 0x00004624 
+ 00013352  0x000021c3 jam  0x00000000 , 0x00004629 
+ 00013353  0x000021c4 setarg  0x00000000 
+ 00013354  0x000021c5 store  0x00000002 , 0x00004626 
+ 00013355  0x000021c6 jam  0x00000060 , 0x000045a7 
+ 00013356  0x000021c7 branch  0x00003258 
+ 00013357  0x000021ca bpatchx  0x00000088 , 0x00004031 
+ 00013358  0x000021cb fetch  0x00000001 , 0x00004616 
+ 00013359  0x000021cc rtneq  0x00000000 
+ 00013360  0x000021cd fetch  0x00000001 , 0x0000462a 
+ 00013361  0x000021ce nrtn  0x00000034 
+ 00013362  0x000021cf fetch  0x00000001 , 0x00004628 
+ 00013363  0x000021d0 nrtn  0x00000034 
+ 00013364  0x000021d1 fetch  0x00000001 , 0x00004624 
+ 00013365  0x000021d2 rtn  0x00000034 
+ 00013366  0x000021d3 fetch  0x00000001 , 0x0000462b 
+ 00013367  0x000021d4 compare  0x00000003 , 0x0000003f , 0x00000003 
+ 00013368  0x000021d5 branch  0x0000344b , 0x00000001 
+ 00013369  0x000021d6 call  0x00003245 
+ 00013370  0x000021d7 nrtn  0x00000028 
+ 00013371  0x000021d8 fetch  0x00000002 , 0x00004626 
+ 00013372  0x000021d9 increase  0x00000001 , 0x0000003f 
+ 00013373  0x000021da store  0x00000002 , 0x00004626 
+ 00013374  0x000021db arg  0x000007d0 , 0x00000002 
+ 00013375  0x000021dc isub  0x00000002 , 0x0000003e 
+ 00013376  0x000021dd branch  0x0000344b , 0x00000002 
+ 00013377  0x000021de fetch  0x00000001 , 0x00004629 
+ 00013378  0x000021df increase  0x00000001 , 0x0000003f 
+ 00013379  0x000021e0 and_into  0x00000001 , 0x0000003f 
+ 00013380  0x000021e1 store  0x00000001 , 0x00004629 
+ 00013381  0x000021e2 beq  0x00000000 , 0x00003514 
+ 00013382  0x000021e3 beq  0x00000001 , 0x000032fc 
+ 00013383  0x000021e4 rtn 
+ 00013384  0x000021e7 fetch  0x00000001 , 0x00004622 
+ 00013385  0x000021e8 nbranch  0x000032fc , 0x00000034 
+ 00013386  0x000021e9 branch  0x00003514 
+ 00013387  0x000021ec jam  0x00000001 , 0x00004628 
+ 00013388  0x000021ed branch  0x00003514 
+ 00013389  0x000021f0 jam  0x00000000 , 0x00004624 
+ 00013390  0x000021f1 rtn 
+ 00013391  0x000021f3 jam  0x00000001 , 0x00004624 
+ 00013392  0x000021f4 rtn 
+ 00013393  0x00002200 bpatchx  0x00000089 , 0x00004031 
+ 00013394  0x00002201 fetch  0x00000001 , 0x00004615 
+ 00013395  0x00002202 rtnbit1  0x00000000 
+ 00013396  0x00002203 set1  0x00000000 , 0x0000003f 
+ 00013397  0x00002204 store  0x00000001 , 0x00004615 
+ 00013398  0x00002205 fetch  0x00000001 , 0x00004623 
+ 00013399  0x00002206 store  0x00000001 , 0x00004141 
+ 00013400  0x00002207 jam  0x00000000 , 0x00004611 
+ 00013401  0x00002208 jam  0x00000000 , 0x0000090d 
+ 00013402  0x00002209 jam  0x00000001 , 0x0000460a 
+ 00013403  0x0000220a jam  0x00000000 , 0x0000457e 
+ 00013404  0x0000220b fetch  0x00000004 , 0x000044f1 
+ 00013405  0x0000220c call  0x00003236 
+ 00013406  0x0000220d call  0x00003222 
+ 00013407  0x0000220e branch  0x000033be 
+ 00013408  0x00002212 jam  0x00000000 , 0x00004611 
+ 00013409  0x00002214 jam  0x00000000 , 0x00004616 
+ 00013410  0x00002215 jam  0x00000000 , 0x00004615 
+ 00013411  0x00002216 rtn 
+ 00013412  0x0000221a fetch  0x00000001 , 0x00004616 
+ 00013413  0x0000221b rtnne  0x00000000 
+ 00013414  0x0000221c call  0x00003451 
+ 00013415  0x0000221d call  0x00003518 
+ 00013416  0x0000221e branch  0x000033ab 
+ 00013417  0x0000222c bpatchx  0x0000008a , 0x00004031 
+ 00013418  0x0000222d fetch  0x00000001 , 0x00004616 
+ 00013419  0x0000222e rtnne  0x00000001 
+ 00013420  0x0000222f call  0x000032ff 
+ 00013421  0x00002230 call  0x0000330f 
+ 00013422  0x00002231 fetch  0x00000001 , 0x00004610 
+ 00013423  0x00002232 nrtn  0x00000034 
+ 00013424  0x00002233 fetch  0x00000001 , 0x000045d5 
+ 00013425  0x00002234 rtn  0x00000034 
+ 00013426  0x00002235 jam  0x00000000 , 0x00004613 
+ 00013427  0x00002236 call  0x00003460 
+ 00013428  0x00002237 call  0x000033fe 
+ 00013429  0x00002238 branch  0x00003258 
+ 00013430  0x00002245 fetch  0x00000001 , 0x00004615 
+ 00013431  0x00002246 rtnbit1  0x00000007 
+ 00013432  0x00002247 set1  0x00000007 , 0x0000003f 
+ 00013433  0x00002248 store  0x00000001 , 0x00004615 
+ 00013434  0x00002249 fetch  0x00000001 , 0x00004623 
+ 00013435  0x0000224a store  0x00000001 , 0x00004141 
+ 00013436  0x0000224c jam  0x00000000 , 0x00004617 
+ 00013437  0x0000224d jam  0x00000001 , 0x00004611 
+ 00013438  0x0000224e setarg  0x00000000 
+ 00013439  0x0000224f store  0x00000003 , 0x0000463d 
+ 00013440  0x00002250 store  0x00000007 , 0x0000461a 
+ 00013441  0x00002251 call  0x00003506 
+ 00013442  0x00002252 nrtn  0x00000005 
+ 00013443  0x00002253 fetch  0x00000001 , 0x0000458e 
+ 00013444  0x00002254 store  0x00000001 , 0x00004619 
+ 00013445  0x00002255 fetch  0x00000001 , 0x0000458d 
+ 00013446  0x00002256 store  0x00000001 , 0x00004618 
+ 00013447  0x00002257 rtn 
+ 00013448  0x0000225b bpatchx  0x0000008b , 0x00004031 
+ 00013449  0x0000225c fetch  0x00000001 , 0x00004616 
+ 00013450  0x0000225d rtnne  0x00000007 
+ 00013451  0x0000225e call  0x00003476 
+ 00013452  0x0000225f call  0x000034ae 
+ 00013453  0x00002260 call  0x000033f1 
+ 00013454  0x00002261 nbranch  0x000033be , 0x0000002f 
+ 00013455  0x00002263 call  0x00003506 
+ 00013456  0x00002264 call  0x000033ad , 0x00000005 
+ 00013457  0x00002266 fetch  0x00000001 , 0x0000460a 
+ 00013458  0x00002267 call  0x0000344d , 0x00000034 
+ 00013459  0x0000226a jam  0x00000000 , 0x00004616 
+ 00013460  0x0000226b fetch  0x00000001 , 0x00004615 
+ 00013461  0x0000226c set1  0x00000000 , 0x0000003f 
+ 00013462  0x0000226d store  0x00000001 , 0x00004615 
+ 00013463  0x0000226f fetch  0x00000001 , 0x00004611 
+ 00013464  0x00002270 sub  0x0000003f , 0x00000002 , 0x0000003e 
+ 00013465  0x00002271 ncall  0x00003504 , 0x00000005 
+ 00013466  0x00002273 call  0x000033be 
+ 00013467  0x00002274 call  0x000033fe 
+ 00013468  0x00002275 call  0x00003506 
+ 00013469  0x00002276 branch  0x000034a7 , 0x00000005 
+ 00013470  0x00002277 fetch  0x00000004 , 0x0000458f 
+ 00013471  0x00002278 fetcht  0x00000004 , 0x00004634 
+ 00013472  0x00002279 isub  0x00000002 , 0x0000003e 
+ 00013473  0x0000227a branch  0x000034aa , 0x00000005 
+ 00013474  0x0000227b fetch  0x00000004 , 0x0000458f 
+ 00013475  0x0000227c fetcht  0x00000004 , 0x00004630 
+ 00013476  0x0000227d isub  0x00000002 , 0x0000003e 
+ 00013477  0x0000227e branch  0x000034ac , 0x00000005 
+ 00013478  0x0000227f rtn 
+ 00013479  0x00002283 fetch  0x00000001 , 0x00004619 
+ 00013480  0x00002285 store  0x00000001 , 0x0000458e 
+ 00013481  0x00002286 rtn 
+ 00013482  0x00002289 fetch  0x00000001 , 0x0000461f 
+ 00013483  0x0000228a branch  0x000034a8 
+ 00013484  0x0000228d fetch  0x00000001 , 0x0000461c 
+ 00013485  0x0000228e branch  0x000034a8 
+ 00013486  0x00002292 bpatchx  0x0000008c , 0x00004031 
+ 00013487  0x00002293 fetch  0x00000001 , 0x00004617 
+ 00013488  0x00002294 increase  0x00000001 , 0x0000003f 
+ 00013489  0x00002295 and_into  0x00000003 , 0x0000003f 
+ 00013490  0x00002296 store  0x00000001 , 0x00004617 
+ 00013491  0x00002298 beq  0x00000000 , 0x000034d2 
+ 00013492  0x00002299 beq  0x00000001 , 0x000034ec 
+ 00013493  0x0000229a beq  0x00000002 , 0x000034b8 
+ 00013494  0x0000229b beq  0x00000003 , 0x000034ec 
+ 00013495  0x0000229c rtn 
+ 00013496  0x0000229f call  0x00003330 
+ 00013497  0x000022a0 fetch  0x00000004 , 0x00004630 
+ 00013498  0x000022a1 branch  0x000034ae , 0x00000034 
+ 00013499  0x000022a2 call  0x00003236 
+ 00013500  0x000022a3 fetch  0x00000001 , 0x0000461d 
+ 00013501  0x000022a4 call  0x000034cd , 0x00000034 
+ 00013502  0x000022a5 fetch  0x00000001 , 0x0000461b 
+ 00013503  0x000022a6 store  0x00000001 , 0x0000458d 
+ 00013504  0x000022a7 fetcht  0x00000001 , 0x0000463e 
+ 00013505  0x000022a8 fetchr  0x00000011 , 0x00000002 , 0x00004644 
+ 00013506  0x000022a9 call  0x000035ab 
+ 00013507  0x000022aa storet  0x00000001 , 0x0000463e 
+ 00013508  0x000022ab call  0x000035b4 
+ 00013509  0x000022ac storet  0x00000001 , 0x0000463b 
+ 00013510  0x000022ad sub  0x00000002 , 0x00000050 , 0x0000003e 
+ 00013511  0x000022ae nrtn  0x00000002 
+ 00013512  0x000022af fetcht  0x00000001 , 0x0000461c 
+ 00013513  0x000022b0 call  0x00003227 
+ 00013514  0x000022b1 storet  0x00000001 , 0x0000461c 
+ 00013515  0x000022b2 store  0x00000001 , 0x0000461b 
+ 00013516  0x000022b3 rtn 
+ 00013517  0x000022b6 jam  0x00000001 , 0x0000461d 
+ 00013518  0x000022b7 arg  0x00000000 , 0x00000002 
+ 00013519  0x000022b8 call  0x0000322c 
+ 00013520  0x000022b9 store  0x00000001 , 0x0000461b 
+ 00013521  0x000022ba rtn 
+ 00013522  0x000022bd call  0x00003338 
+ 00013523  0x000022be fetch  0x00000004 , 0x00004634 
+ 00013524  0x000022bf branch  0x000034ae , 0x00000034 
+ 00013525  0x000022c0 call  0x00003236 
+ 00013526  0x000022c1 fetch  0x00000001 , 0x00004620 
+ 00013527  0x000022c2 call  0x000034e7 , 0x00000034 
+ 00013528  0x000022c3 fetch  0x00000001 , 0x0000461e 
+ 00013529  0x000022c4 store  0x00000001 , 0x0000458d 
+ 00013530  0x000022c5 fetcht  0x00000001 , 0x0000463f 
+ 00013531  0x000022c6 fetchr  0x00000011 , 0x00000002 , 0x00004646 
+ 00013532  0x000022c7 call  0x000035ab 
+ 00013533  0x000022c8 storet  0x00000001 , 0x0000463f 
+ 00013534  0x000022c9 call  0x000035b4 
+ 00013535  0x000022ca storet  0x00000001 , 0x0000463c 
+ 00013536  0x000022cb sub  0x00000002 , 0x00000050 , 0x0000003e 
+ 00013537  0x000022cc nrtn  0x00000002 
+ 00013538  0x000022cd fetcht  0x00000001 , 0x0000461f 
+ 00013539  0x000022ce call  0x00003227 
+ 00013540  0x000022cf storet  0x00000001 , 0x0000461f 
+ 00013541  0x000022d0 store  0x00000001 , 0x0000461e 
+ 00013542  0x000022d1 rtn 
+ 00013543  0x000022d4 jam  0x00000001 , 0x00004620 
+ 00013544  0x000022d5 arg  0x00000000 , 0x00000002 
+ 00013545  0x000022d6 call  0x0000322c 
+ 00013546  0x000022d7 store  0x00000001 , 0x0000461e 
+ 00013547  0x000022d8 rtn 
+ 00013548  0x000022db call  0x00003330 
+ 00013549  0x000022dc fetch  0x00000004 , 0x000044f1 
+ 00013550  0x000022dd call  0x00003236 
+ 00013551  0x000022de fetch  0x00000001 , 0x0000461a 
+ 00013552  0x000022df call  0x00003500 , 0x00000034 
+ 00013553  0x000022e0 fetch  0x00000001 , 0x00004618 
+ 00013554  0x000022e1 store  0x00000001 , 0x0000458d 
+ 00013555  0x000022e2 fetcht  0x00000001 , 0x0000463d 
+ 00013556  0x000022e3 fetchr  0x00000011 , 0x00000002 , 0x00004642 
+ 00013557  0x000022e4 call  0x000035ab 
+ 00013558  0x000022e5 storet  0x00000001 , 0x0000463d 
+ 00013559  0x000022e6 call  0x000035b4 
+ 00013560  0x000022e7 storet  0x00000001 , 0x0000463a 
+ 00013561  0x000022e8 sub  0x00000002 , 0x00000050 , 0x0000003e 
+ 00013562  0x000022e9 nrtn  0x00000002 
+ 00013563  0x000022ea fetcht  0x00000001 , 0x00004619 
+ 00013564  0x000022eb call  0x00003227 
+ 00013565  0x000022ec storet  0x00000001 , 0x00004619 
+ 00013566  0x000022ed store  0x00000001 , 0x00004618 
+ 00013567  0x000022ee rtn 
+ 00013568  0x000022f1 jam  0x00000001 , 0x0000461a 
+ 00013569  0x000022f2 fetch  0x00000001 , 0x00004618 
+ 00013570  0x000022f3 store  0x00000001 , 0x0000458d 
+ 00013571  0x000022f4 rtn 
+ 00013572  0x000022f8 jam  0x00000000 , 0x00004611 
+ 00013573  0x000022f9 rtn 
+ 00013574  0x000022fd fetch  0x00000004 , 0x0000458f 
+ 00013575  0x000022fe fetcht  0x00000004 , 0x000044f1 
+ 00013576  0x000022ff isub  0x00000002 , 0x0000003e 
+ 00013577  0x00002300 rtn 
+ 00013578  0x0000230d fetch  0x00000001 , 0x00004611 
+ 00013579  0x0000230e rtneq  0x00000002 
+ 00013580  0x0000230f fetch  0x00000001 , 0x00004614 
+ 00013581  0x00002310 rtn  0x00000034 
+ 00013582  0x00002311 arg  0x00000008 , 0x00000007 
+ 00013583  0x00002312 call  0x00007cef 
+ 00013584  0x00002313 nrtn  0x00000034 
+ 00013585  0x00002314 jam  0x00000000 , 0x00004614 
+ 00013586  0x00002315 jam  0x00000000 , 0x00004622 
+ 00013587  0x00002316 call  0x0000341f 
+ 00013588  0x00002319 bpatchx  0x0000008d , 0x00004031 
+ 00013589  0x0000231a jam  0x00000007 , 0x00004616 
+ 00013590  0x0000231b jam  0x00000000 , 0x00004615 
+ 00013591  0x0000231c branch  0x000033be 
+ 00013592  0x00002323 bpatchx  0x0000008e , 0x00004031 
+ 00013593  0x00002324 fetch  0x00000001 , 0x0000460a 
+ 00013594  0x00002325 beq  0x00000001 , 0x000035ea 
+ 00013595  0x00002326 fetch  0x00000001 , 0x00004612 
+ 00013596  0x00002327 beq  0x00000001 , 0x0000352c 
+ 00013597  0x00002328 fetcht  0x00000004 , 0x0000460b 
+ 00013598  0x00002329 copy  0x00000022 , 0x0000003f 
+ 00013599  0x0000232a isub  0x00000002 , 0x0000003e 
+ 00013600  0x0000232b ncall  0x00003255 , 0x00000002 
+ 00013601  0x0000232c copy  0x0000003f , 0x00000012 
+ 00013602  0x0000232d fetch  0x00000004 , 0x0000460b 
+ 00013603  0x0000232e fetcht  0x00000001 , 0x0000460f 
+ 00013604  0x0000232f iadd  0x00000002 , 0x00000002 
+ 00013605  0x00002330 copy  0x00000012 , 0x0000003f 
+ 00013606  0x00002331 isub  0x00000002 , 0x0000003e 
+ 00013607  0x00002332 nrtn  0x00000002 
+ 00013608  0x00002333 set0  0x0000001c , 0x0000003f 
+ 00013609  0x00002334 store  0x00000004 , 0x0000460b 
+ 00013610  0x00002335 jam  0x00000001 , 0x0000460a 
+ 00013611  0x00002336 branch  0x00003222 
+ 00013612  0x00002339 jam  0x00000000 , 0x00004612 
+ 00013613  0x0000233a branch  0x00003222 
+ 00013614  0x0000233d copy  0x00000022 , 0x0000003f 
+ 00013615  0x0000233e store  0x00000004 , 0x0000460b 
+ 00013616  0x0000233f rtn 
+ 00013617  0x00002345 arg  0x000045de , 0x00000013 
+ 00013618  0x00002346 arg  0x0000367a , 0x00000012 
+ 00013619  0x00002347 branch  0x000042e7 
+ 00013620  0x0000234b bpatchx  0x0000008f , 0x00004031 
+ 00013621  0x0000234c set1  0x00000026 , 0x00000000 
+ 00013622  0x0000234d fetch  0x00000001 , 0x000045fc 
+ 00013623  0x0000234e set0  0x00000001 , 0x0000003f 
+ 00013624  0x0000234f set1  0x00000002 , 0x0000003f 
+ 00013625  0x00002350 store  0x00000001 , 0x000045fc 
+ 00013626  0x00002351 fetch  0x00000001 , 0x000045e3 
+ 00013627  0x00002352 branch  0x00003549 , 0x00000034 
+ 00013628  0x00002353 fetch  0x00000001 , 0x000045e2 
+ 00013629  0x00002354 beq  0x00000001 , 0x00003541 
+ 00013630  0x00002355 beq  0x00000002 , 0x00003541 
+ 00013631  0x00002356 beq  0x00000003 , 0x00003550 
+ 00013632  0x00002357 beq  0x00000004 , 0x00003550 
+ 00013633  0x00002359 fetch  0x00000001 , 0x000045d1 
+ 00013634  0x0000235a store  0x00000001 , 0x00004141 
+ 00013635  0x0000235b fetcht  0x00000001 , 0x000045ec 
+ 00013636  0x0000235c storet  0x00000001 , 0x0000458e 
+ 00013637  0x0000235d fetch  0x00000004 , 0x000045e4 
+ 00013638  0x0000235e call  0x0000355a 
+ 00013639  0x0000235f storet  0x00000001 , 0x000045ec 
+ 00013640  0x00002360 rtn 
+ 00013641  0x00002363 jam  0x00000003 , 0x00004141 
+ 00013642  0x00002364 fetcht  0x00000001 , 0x000045ed 
+ 00013643  0x00002365 storet  0x00000001 , 0x0000458e 
+ 00013644  0x00002366 fetch  0x00000004 , 0x000045e8 
+ 00013645  0x00002367 call  0x0000355a 
+ 00013646  0x00002368 storet  0x00000001 , 0x000045ed 
+ 00013647  0x00002369 rtn 
+ 00013648  0x0000236c jam  0x00000003 , 0x00004141 
+ 00013649  0x0000236d fetcht  0x00000001 , 0x000045ee 
+ 00013650  0x0000236e storet  0x00000001 , 0x0000458e 
+ 00013651  0x0000236f fetch  0x00000004 , 0x00004604 
+ 00013652  0x00002370 call  0x0000355a 
+ 00013653  0x00002371 storet  0x00000001 , 0x000045ee 
+ 00013654  0x00002372 rtn 
+ 00013655  0x00002375 fetch  0x00000004 , 0x0000455f 
+ 00013656  0x00002376 rtn  0x00000034 
+ 00013657  0x00002377 store  0x00000004 , 0x000045e8 
+ 00013658  0x00002379 call  0x00003236 
+ 00013659  0x0000237a branch  0x00003222 
+ 00013660  0x0000237e bpatchx  0x00000090 , 0x00004032 
+ 00013661  0x0000237f fetch  0x00000002 , 0x000045e0 
+ 00013662  0x00002380 arg  0x000001f8 , 0x00000002 
+ 00013663  0x00002381 iand  0x00000002 , 0x0000003f 
+ 00013664  0x00002382 branch  0x00003565 , 0x00000034 
+ 00013665  0x00002383 fetch  0x00000002 , 0x000045e0 
+ 00013666  0x00002384 increase  0x00000001 , 0x0000003f 
+ 00013667  0x00002385 store  0x00000002 , 0x000045e0 
+ 00013668  0x00002386 rtn 
+ 00013669  0x00002389 call  0x0000357f 
+ 00013670  0x0000238a call  0x00003651 
+ 00013671  0x0000238b nbranch  0x00003586 , 0x00000018 
+ 00013672  0x0000238c nbranch  0x00003586 , 0x0000002f 
+ 00013673  0x0000238d call  0x0000366e 
+ 00013674  0x0000238e fetch  0x00000004 , 0x000045cc 
+ 00013675  0x0000238f fetcht  0x00000004 , 0x0000458f 
+ 00013676  0x00002390 isub  0x00000002 , 0x0000003e 
+ 00013677  0x00002391 branch  0x00003291 , 0x00000005 
+ 00013678  0x00002392 fetch  0x00000004 , 0x00004604 
+ 00013679  0x00002393 fetcht  0x00000004 , 0x0000458f 
+ 00013680  0x00002394 isub  0x00000002 , 0x0000003e 
+ 00013681  0x00002395 call  0x00003557 , 0x00000005 
+ 00013682  0x00002396 fetch  0x00000001 , 0x000045fc 
+ 00013683  0x00002397 set0  0x00000002 , 0x0000003f 
+ 00013684  0x00002398 store  0x00000001 , 0x000045fc 
+ 00013685  0x00002399 setarg  0x00000000 
+ 00013686  0x0000239a store  0x00000002 , 0x000045d8 
+ 00013687  0x0000239b store  0x00000002 , 0x000045e0 
+ 00013688  0x0000239c store  0x00000002 , 0x000045de 
+ 00013689  0x0000239d jam  0x0000003c , 0x0000066f 
+ 00013690  0x0000239e call  0x0000782b 
+ 00013691  0x000023a0 bpatchx  0x00000091 , 0x00004032 
+ 00013692  0x000023a1 arg  0x00000020 , 0x00000039 
+ 00013693  0x000023a2 arg  0x00004519 , 0x00000005 
+ 00013694  0x000023a3 branch  0x00007ca3 
+ 00013695  0x000023a6 jam  0x000000ff , 0x00004519 
+ 00013696  0x000023a7 fetch  0x00000001 , 0x00004589 
+ 00013697  0x000023a8 store  0x00000001 , 0x0000451a 
+ 00013698  0x000023a9 fetch  0x00000004 , 0x00004604 
+ 00013699  0x000023aa store  0x00000004 , 0x0000451b 
+ 00013700  0x000023ab jam  0x00000006 , 0x00004588 
+ 00013701  0x000023ac branch  0x000031e5 
+ 00013702  0x000023af bpatchx  0x00000092 , 0x00004032 
+ 00013703  0x000023b0 fetch  0x00000001 , 0x000045e3 
+ 00013704  0x000023b1 branch  0x00003222 , 0x00000034 
+ 00013705  0x000023b2 fetch  0x00000002 , 0x000045e0 
+ 00013706  0x000023b3 increase  0x00000001 , 0x0000003f 
+ 00013707  0x000023b4 store  0x00000002 , 0x000045e0 
+ 00013708  0x000023b5 isolate1  0x00000009 , 0x0000003f 
+ 00013709  0x000023b6 fetch  0x00000001 , 0x000045e2 
+ 00013710  0x000023b7 beq  0x00000001 , 0x00003593 
+ 00013711  0x000023b8 beq  0x00000002 , 0x00003595 
+ 00013712  0x000023b9 beq  0x00000003 , 0x00003597 
+ 00013713  0x000023ba beq  0x00000004 , 0x00003599 
+ 00013714  0x000023bb branch  0x00003549 
+ 00013715  0x000023bf branch  0x00003549 , 0x00000001 
+ 00013716  0x000023c0 branch  0x00003541 
+ 00013717  0x000023c3 branch  0x00003550 , 0x00000001 
+ 00013718  0x000023c4 branch  0x00003541 
+ 00013719  0x000023c7 branch  0x00003550 , 0x00000001 
+ 00013720  0x000023c8 branch  0x00003549 
+ 00013721  0x000023cb branch  0x00003550 , 0x00000001 
+ 00013722  0x000023cc branch  0x0000329c 
+ 00013723  0x000023d7 fetch  0x00000001 , 0x000045eb 
+ 00013724  0x000023d8 beq  0x00000001 , 0x0000359f 
+ 00013725  0x000023d9 beq  0x00000002 , 0x000035a5 
+ 00013726  0x000023da rtn 
+ 00013727  0x000023dc fetch  0x00000001 , 0x000045de 
+ 00013728  0x000023dd nrtn  0x00000034 
+ 00013729  0x000023de fetch  0x00000004 , 0x000045ec 
+ 00013730  0x000023df store  0x00000004 , 0x0000462c 
+ 00013731  0x000023e1 store  0x00000004 , 0x00004630 
+ 00013732  0x000023e2 rtn 
+ 00013733  0x000023e4 fetch  0x00000001 , 0x000045df 
+ 00013734  0x000023e5 nrtn  0x00000034 
+ 00013735  0x000023e6 fetch  0x00000004 , 0x000045ec 
+ 00013736  0x000023e7 store  0x00000004 , 0x0000462c 
+ 00013737  0x000023e9 store  0x00000004 , 0x00004634 
+ 00013738  0x000023ea rtn 
+ 00013739  0x000023f5 bpatchx  0x00000093 , 0x00004032 
+ 00013740  0x000023f6 copy  0x00000011 , 0x0000003f 
+ 00013741  0x000023f7 iadd  0x00000002 , 0x00000005 
+ 00013742  0x000023f8 fetch  0x00000001 , 0x00000009 
+ 00013743  0x000023f9 istore  0x00000001 , 0x00000005 
+ 00013744  0x000023fa increase  0x00000001 , 0x00000002 
+ 00013745  0x000023fb fetch  0x00000001 , 0x000045d2 
+ 00013746  0x000023fc iand  0x00000002 , 0x00000002 
+ 00013747  0x000023fd rtn 
+ 00013748  0x00002400 bpatchx  0x00000094 , 0x00004032 
+ 00013749  0x00002401 fetch  0x00000001 , 0x000045d2 
+ 00013750  0x00002402 increase  0x00000001 , 0x0000003f 
+ 00013751  0x00002403 store  0x00000002 , 0x0000069b 
+ 00013752  0x00002404 copy  0x0000003f , 0x00000039 
+ 00013753  0x00002405 copy  0x00000011 , 0x00000006 
+ 00013754  0x00002406 arg  0x00000000 , 0x0000003f 
+ 00013755  0x00002408 ifetcht  0x00000001 , 0x00000006 
+ 00013756  0x00002409 iadd  0x00000002 , 0x0000003f 
+ 00013757  0x0000240a loop  0x000035bb 
+ 00013758  0x0000240b fetcht  0x00000002 , 0x0000069b 
+ 00013759  0x0000240c idiv  0x00000002 
+ 00013760  0x0000240d call  0x00007d62 
+ 00013761  0x0000240e quotient  0x00000002 
+ 00013762  0x0000240f rtnmark1  0x00000027 
+ 00013763  0x00002410 copy  0x00000002 , 0x0000003f 
+ 00013764  0x00002411 rtnmark0  0x00000026 
+ 00013765  0x00002412 call  0x00002308 
+ 00013766  0x00002413 copy  0x0000003f , 0x00000002 
+ 00013767  0x00002414 rtn 
+ 00013768  0x00002417 branch  0x000022e9 
+ 00013769  0x00002422 fetch  0x00000002 , 0x000045f0 
+ 00013770  0x00002423 branch  0x000035dd 
+ 00013771  0x00002426 copy  0x0000003f , 0x00000011 
+ 00013772  0x00002427 fetcht  0x00000001 , 0x000045ef 
+ 00013773  0x00002428 fetch  0x00000002 , 0x000045f0 
+ 00013774  0x00002429 iadd  0x00000002 , 0x00000005 
+ 00013775  0x0000242a copy  0x00000011 , 0x0000003f 
+ 00013776  0x0000242b istore  0x00000001 , 0x00000005 
+ 00013777  0x0000242c increase  0x00000001 , 0x00000002 
+ 00013778  0x0000242d fetch  0x00000001 , 0x000045d2 
+ 00013779  0x0000242e iand  0x00000002 , 0x00000002 
+ 00013780  0x0000242f storet  0x00000001 , 0x000045ef 
+ 00013781  0x00002430 rtn 
+ 00013782  0x0000243b fetch  0x00000002 , 0x00004640 
+ 00013783  0x0000243c call  0x000035dd 
+ 00013784  0x0000243d fetch  0x00000002 , 0x00004642 
+ 00013785  0x0000243e call  0x000035dd 
+ 00013786  0x0000243f fetch  0x00000002 , 0x00004644 
+ 00013787  0x00002440 call  0x000035dd 
+ 00013788  0x00002441 fetch  0x00000002 , 0x00004646 
+ 00013789  0x00002443 rtn  0x00000034 
+ 00013790  0x00002444 copy  0x0000003f , 0x00000005 
+ 00013791  0x00002445 fetch  0x00000001 , 0x000045d2 
+ 00013792  0x00002446 increase  0x00000001 , 0x0000003f 
+ 00013793  0x00002447 copy  0x0000003f , 0x00000039 
+ 00013794  0x00002448 branch  0x00007ca1 
+ 00013795  0x0000244c call  0x000035c8 
+ 00013796  0x0000244d rtn  0x00000034 
+ 00013797  0x0000244e fetcht  0x00000001 , 0x00004639 
+ 00013798  0x0000244f fetchr  0x00000011 , 0x00000002 , 0x00004640 
+ 00013799  0x00002450 call  0x000035ab 
+ 00013800  0x00002451 storet  0x00000001 , 0x00004639 
+ 00013801  0x00002452 rtn 
+ 00013802  0x00002456 fetchr  0x00000011 , 0x00000002 , 0x00004640 
+ 00013803  0x00002457 call  0x000035b4 
+ 00013804  0x00002458 storet  0x00000001 , 0x00004638 
+ 00013805  0x00002459 sub  0x00000002 , 0x00000050 , 0x0000003e 
+ 00013806  0x0000245a nrtn  0x00000002 
+ 00013807  0x0000245b branch  0x00003222 
+ 00013808  0x00002464 fetch  0x00000004 , 0x000044f1 
+ 00013809  0x00002465 store  0x00000004 , 0x00004604 
+ 00013810  0x00002466 branch  0x000035c9 
+ 00013811  0x00002469 setarg  0x00002fb2 
+ 00013812  0x0000246a store  0x00000003 , 0x00004608 
+ 00013813  0x0000246b setarg  0x00100c0c 
+ 00013814  0x0000246c store  0x00000003 , 0x000045a7 
+ 00013815  0x0000246d setarg  0x0000bb80 
+ 00013816  0x0000246e store  0x00000003 , 0x0000460b 
+ 00013817  0x0000246f jam  0x00000005 , 0x00004621 
+ 00013818  0x00002470 rtn 
+ 00013819  0x00002473 setarg  0x0000f80c 
+ 00013820  0x00002474 store  0x00000003 , 0x00004608 
+ 00013821  0x00002475 setarg  0x001c1919 
+ 00013822  0x00002476 store  0x00000003 , 0x000045a7 
+ 00013823  0x00002477 setarg  0x00017700 
+ 00013824  0x00002478 store  0x00000003 , 0x0000460b 
+ 00013825  0x00002479 jam  0x0000000b , 0x00004621 
+ 00013826  0x0000247a rtn 
+ 00013827  0x0000247e rtnmark0  0x00000026 
+ 00013828  0x0000247f fetch  0x00000001 , 0x000045fc 
+ 00013829  0x00002480 bbit1  0x00000001 , 0x000032a3 
+ 00013830  0x00002481 bbit1  0x00000002 , 0x0000355c 
+ 00013831  0x00002482 fetch  0x00000001 , 0x00004618 
+ 00013832  0x00002483 beq  0x00000001 , 0x000036c0 
+ 00013833  0x00002485 bpatchx  0x00000095 , 0x00004032 
+ 00013834  0x00002486 call  0x00003625 
+ 00013835  0x00002487 nbranch  0x0000369f , 0x00000028 
+ 00013836  0x00002489 call  0x0000363a 
+ 00013837  0x0000248a call  0x000036e8 
+ 00013838  0x0000248b fetch  0x00000001 , 0x000043cb 
+ 00013839  0x0000248c beq  0x00000008 , 0x0000600a 
+ 00013840  0x0000248e fetch  0x00000008 , 0x0000460b 
+ 00013841  0x0000248f store  0x00000008 , 0x000045af 
+ 00013842  0x00002490 fetch  0x00000002 , 0x0000461d 
+ 00013843  0x00002491 store  0x00000002 , 0x0000461f 
+ 00013844  0x00002492 fetch  0x00000002 , 0x000045f8 
+ 00013845  0x00002493 branch  0x00007d79 
+ 00013846  0x00002496 bpatchx  0x00000096 , 0x00004032 
+ 00013847  0x00002497 call  0x000036b4 
+ 00013848  0x00002498 nrtn  0x00000028 
+ 00013849  0x00002499 call  0x000036be 
+ 00013850  0x0000249a call  0x00007de2 
+ 00013851  0x0000249b fetch  0x00000003 , 0x00004608 
+ 00013852  0x0000249c branch  0x00003622 
+ 00013853  0x0000249f bpatchx  0x00000097 , 0x00004032 
+ 00013854  0x000024a0 call  0x000036b4 
+ 00013855  0x000024a1 nrtn  0x00000028 
+ 00013856  0x000024a2 call  0x000036be 
+ 00013857  0x000024a3 fetch  0x00000008 , 0x000045af 
+ 00013858  0x000024a5 call  0x00007d25 
+ 00013859  0x000024a6 storet  0x00000004 , 0x000040a9 
+ 00013860  0x000024a7 branch  0x0000241e 
+ 00013861  0x000024ac call  0x00003628 
+ 00013862  0x000024ad nrtn  0x00000028 
+ 00013863  0x000024ae branch  0x000031e5 
+ 00013864  0x000024b2 fetch  0x00000002 , 0x000045f2 
+ 00013865  0x000024b3 call  0x00007d79 
+ 00013866  0x000024b4 branch  0x0000362e , 0x00000028 
+ 00013867  0x000024b5 fetch  0x00000007 , 0x0000451a 
+ 00013868  0x000024b6 rtn  0x00000034 
+ 00013869  0x000024b7 branch  0x00007dba 
+ 00013870  0x000024ba jam  0x00000000 , 0x00004602 
+ 00013871  0x000024bb add  0x00000011 , 0x00000001 , 0x0000003f 
+ 00013872  0x000024bc store  0x00000001 , 0x00004588 
+ 00013873  0x000024bd call  0x00003636 
+ 00013874  0x000024be store  0x00000001 , 0x00004519 
+ 00013875  0x000024bf copy  0x00000012 , 0x00000006 
+ 00013876  0x000024c0 copy  0x00000011 , 0x00000039 
+ 00013877  0x000024c1 branch  0x00007cda 
+ 00013878  0x000024c4 fetch  0x00000001 , 0x00004589 
+ 00013879  0x000024c5 and_into  0x00000007 , 0x0000003f 
+ 00013880  0x000024c6 store  0x00000001 , 0x00004589 
+ 00013881  0x000024c7 rtn 
+ 00013882  0x000024d1 setarg  0x00000000 
+ 00013883  0x000024d2 store  0x00000001 , 0x00004601 
+ 00013884  0x000024d3 store  0x00000002 , 0x00004622 
+ 00013885  0x000024d5 call  0x00003651 
+ 00013886  0x000024d6 fetch  0x00000001 , 0x0000457f 
+ 00013887  0x000024d7 beq  0x00000001 , 0x00003646 
+ 00013888  0x000024d8 nbranch  0x0000365f , 0x00000018 
+ 00013889  0x000024d9 nbranch  0x0000365f , 0x0000002f 
+ 00013890  0x000024da call  0x0000366e 
+ 00013891  0x000024db fetch  0x00000001 , 0x000043cb 
+ 00013892  0x000024dc sub  0x0000003f , 0x00000008 , 0x0000003e 
+ 00013893  0x000024dd call  0x00006262 , 0x00000005 
+ 00013894  0x000024df call  0x0000371a 
+ 00013895  0x000024e1 call  0x0000357b 
+ 00013896  0x000024e2 fetch  0x00000001 , 0x0000457e 
+ 00013897  0x000024e3 increase  0x00000001 , 0x0000003f 
+ 00013898  0x000024e4 store  0x00000001 , 0x0000457e 
+ 00013899  0x000024e5 call  0x00003692 
+ 00013900  0x000024e7 bpatchx  0x00000098 , 0x00004033 
+ 00013901  0x000024e8 setarg  0x00000000 
+ 00013902  0x000024e9 store  0x00000001 , 0x000045fd 
+ 00013903  0x000024ea store  0x00000002 , 0x000045fe 
+ 00013904  0x000024eb rtn 
+ 00013905  0x000024ee bpatchx  0x00000099 , 0x00004033 
+ 00013906  0x000024ef disable  0x0000002f 
+ 00013907  0x000024f0 call  0x00003195 
+ 00013908  0x000024f1 fetch  0x00000001 , 0x0000457f 
+ 00013909  0x000024f2 beq  0x00000001 , 0x00003183 
+ 00013910  0x000024f3 force  0x00000000 , 0x00000015 
+ 00013911  0x000024f4 fetch  0x00000004 , 0x0000458f 
+ 00013912  0x000024f5 iforce  0x00000009 
+ 00013913  0x000024f6 fetcht  0x00000001 , 0x00000008 
+ 00013914  0x000024f7 call  0x0000216f 
+ 00013915  0x000024f8 call  0x000021a6 
+ 00013916  0x000024f9 call  0x00003121 
+ 00013917  0x000024fa call  0x00003183 , 0x0000002f 
+ 00013918  0x000024fb rtn 
+ 00013919  0x000024fe bpatchx  0x0000009a , 0x00004033 
+ 00013920  0x000024ff fetch  0x00000001 , 0x000043cb 
+ 00013921  0x00002500 beq  0x00000008 , 0x000060f9 
+ 00013922  0x00002502 fetch  0x00000001 , 0x00004602 
+ 00013923  0x00002503 nrtn  0x00000034 
+ 00013924  0x00002504 fetch  0x00000002 , 0x000045fe 
+ 00013925  0x00002505 increase  0x00000001 , 0x0000003f 
+ 00013926  0x00002506 store  0x00000002 , 0x000045fe 
+ 00013927  0x00002507 fetch  0x00000001 , 0x000045ff 
+ 00013928  0x00002508 bbit1  0x00000004 , 0x00003676 
+ 00013929  0x00002509 call  0x0000367c 
+ 00013930  0x0000250a fetch  0x00000002 , 0x00004622 
+ 00013931  0x0000250b increase  0x00000001 , 0x0000003f 
+ 00013932  0x0000250c store  0x00000002 , 0x00004622 
+ 00013933  0x0000250d branch  0x0000363d 
+ 00013934  0x00002510 bpatchx  0x0000009b , 0x00004033 
+ 00013935  0x00002511 call  0x00003214 
+ 00013936  0x00002512 fetch  0x00000001 , 0x0000457d 
+ 00013937  0x00002513 rtn  0x00000034 
+ 00013938  0x00002514 iforce  0x00000039 
+ 00013939  0x00002515 arg  0x000044f9 , 0x00000006 
+ 00013940  0x00002516 arg  0x0000455d , 0x00000005 
+ 00013941  0x00002517 branch  0x00007cda 
+ 00013942  0x0000251b bpatchx  0x0000009c , 0x00004033 
+ 00013943  0x0000251c setarg  0x00000000 
+ 00013944  0x0000251d store  0x00000002 , 0x000045fe 
+ 00013945  0x0000251e jam  0x00000001 , 0x00004600 
+ 00013946  0x00002520 jam  0x0000003a , 0x0000066f 
+ 00013947  0x00002521 branch  0x0000782b 
+ 00013948  0x0000252c bpatchx  0x0000009d , 0x00004033 
+ 00013949  0x0000252d fetcht  0x00000001 , 0x00004601 
+ 00013950  0x0000252e fetch  0x00000001 , 0x00004621 
+ 00013951  0x0000252f isub  0x00000002 , 0x0000003e 
+ 00013952  0x00002530 nbranch  0x0000369a , 0x00000002 
+ 00013953  0x00002531 increase  0x00000001 , 0x00000002 
+ 00013954  0x00002532 storet  0x00000001 , 0x00004601 
+ 00013955  0x00002533 fetch  0x00000001 , 0x00004621 
+ 00013956  0x00002534 beq  0x00000005 , 0x00003689 
+ 00013957  0x00002535 fetch  0x00000001 , 0x00004601 
+ 00013958  0x00002536 beq  0x00000006 , 0x00003694 
+ 00013959  0x00002537 beq  0x0000000c , 0x00003694 
+ 00013960  0x00002538 rtn 
+ 00013961  0x0000253c fetch  0x00000001 , 0x00004601 
+ 00013962  0x0000253d beq  0x00000003 , 0x00003694 
+ 00013963  0x0000253e beq  0x00000006 , 0x00003694 
+ 00013964  0x0000253f rtn 
+ 00013965  0x00002549 bmark1  0x0000002f , 0x00003690 
+ 00013966  0x0000254a store  0x00000001 , 0x0000453a 
+ 00013967  0x0000254b rtn 
+ 00013968  0x0000254d store  0x00000001 , 0x0000453b 
+ 00013969  0x0000254e rtn 
+ 00013970  0x00002551 fetch  0x00000001 , 0x00004589 
+ 00013971  0x00002552 rtnbit0  0x00000004 
+ 00013972  0x00002554 fetch  0x00000001 , 0x00004589 
+ 00013973  0x00002555 set0  0x00000004 , 0x0000003f 
+ 00013974  0x00002556 store  0x00000001 , 0x00004589 
+ 00013975  0x00002557 call  0x0000368d 
+ 00013976  0x00002558 call  0x0000371e 
+ 00013977  0x00002559 branch  0x00003222 
+ 00013978  0x0000255c call  0x0000370e 
+ 00013979  0x0000255d call  0x0000371e 
+ 00013980  0x0000255e branch  0x00003222 
+ 00013981  0x00002571 fetch  0x00000002 , 0x000045f4 
+ 00013982  0x00002572 branch  0x00007d79 
+ 00013983  0x00002575 fetch  0x00000001 , 0x00004602 
+ 00013984  0x00002576 call  0x000036a6 , 0x00000034 
+ 00013985  0x00002577 fetch  0x00000001 , 0x00004618 
+ 00013986  0x00002578 rtneq  0x00000001 
+ 00013987  0x00002579 call  0x0000369d 
+ 00013988  0x0000257a fetch  0x00000002 , 0x000045fa 
+ 00013989  0x0000257b branch  0x00007d79 
+ 00013990  0x0000257e jam  0x00000001 , 0x00004589 
+ 00013991  0x0000257f jam  0x00000001 , 0x00004602 
+ 00013992  0x00002580 call  0x00003636 
+ 00013993  0x00002581 store  0x00000001 , 0x00004519 
+ 00013994  0x00002582 setarg  0x00000000 
+ 00013995  0x00002583 store  0x00000007 , 0x0000451a 
+ 00013996  0x00002584 fetch  0x00000004 , 0x00004604 
+ 00013997  0x00002585 store  0x00000004 , 0x00004521 
+ 00013998  0x00002586 jam  0x0000000c , 0x00004588 
+ 00013999  0x00002587 fetch  0x00000001 , 0x00004589 
+ 00014000  0x00002588 set1  0x00000003 , 0x0000003f 
+ 00014001  0x00002589 store  0x00000001 , 0x00004589 
+ 00014002  0x0000258a call  0x000031e5 
+ 00014003  0x0000258b branch  0x0000360c 
+ 00014004  0x00002590 bpatchx  0x0000009e , 0x00004033 
+ 00014005  0x00002591 enable  0x00000028 
+ 00014006  0x00002592 call  0x00002408 
+ 00014007  0x00002593 fetch  0x00000003 , 0x000040bd 
+ 00014008  0x00002594 branch  0x00007dbc , 0x00000034 
+ 00014009  0x00002595 fetch  0x00000001 , 0x00004094 
+ 00014010  0x00002596 branch  0x00007dbc , 0x00000034 
+ 00014011  0x00002597 fetch  0x00000001 , 0x00004618 
+ 00014012  0x00002598 beq  0x00000001 , 0x00007dbc 
+ 00014013  0x00002599 rtn 
+ 00014014  0x0000259c fetch  0x00000002 , 0x000045f6 
+ 00014015  0x0000259d branch  0x00007d79 
+ 00014016  0x000025ab call  0x00003245 
+ 00014017  0x000025ac nrtn  0x00000028 
+ 00014018  0x000025ad call  0x000036d5 
+ 00014019  0x000025ae fetch  0x00000002 , 0x00004619 
+ 00014020  0x000025af increase  0x00000001 , 0x0000003f 
+ 00014021  0x000025b0 store  0x00000002 , 0x00004619 
+ 00014022  0x000025b1 fetcht  0x00000002 , 0x0000461b 
+ 00014023  0x000025b2 isub  0x00000002 , 0x0000003e 
+ 00014024  0x000025b3 call  0x000036ca , 0x00000005 
+ 00014025  0x000025b4 branch  0x00003609 
+ 00014026  0x000025b8 jam  0x00000000 , 0x00004618 
+ 00014027  0x000025b9 setarg  0x00000000 
+ 00014028  0x000025ba store  0x00000002 , 0x00004619 
+ 00014029  0x000025bb setarg  0x00000064 
+ 00014030  0x000025bc store  0x00000002 , 0x0000461b 
+ 00014031  0x000025be jam  0x00000000 , 0x00004617 
+ 00014032  0x000025bf fetch  0x00000001 , 0x000045a8 
+ 00014033  0x000025c1 store  0x00000001 , 0x000045a7 
+ 00014034  0x000025c2 rtn 
+ 00014035  0x000025c4 fetch  0x00000001 , 0x000045a9 
+ 00014036  0x000025c5 branch  0x000036d1 
+ 00014037  0x000025c8 fetch  0x00000001 , 0x00004617 
+ 00014038  0x000025c9 increase  0x00000001 , 0x0000003f 
+ 00014039  0x000025ca store  0x00000001 , 0x00004617 
+ 00014040  0x000025cb beq  0x00000004 , 0x000036d3 
+ 00014041  0x000025cc beq  0x00000005 , 0x000036cf 
+ 00014042  0x000025cd rtn 
+ 00014043  0x000025d0 jam  0x00000001 , 0x00004618 
+ 00014044  0x000025d1 setarg  0x00000000 
+ 00014045  0x000025d2 store  0x00000002 , 0x00004619 
+ 00014046  0x000025d3 rtn 
+ 00014047  0x000025de arg  0x00000002 , 0x00000039 
+ 00014048  0x000025df arg  0x0000458f , 0x00000006 
+ 00014049  0x000025e1 call  0x00007dba 
+ 00014050  0x000025e2 setarg  0x0000ffff 
+ 00014051  0x000025e4 ifetcht  0x00000002 , 0x00000006 
+ 00014052  0x000025e5 isub  0x00000002 , 0x0000003e 
+ 00014053  0x000025e6 ncall  0x00007dbc , 0x00000005 
+ 00014054  0x000025e7 loop  0x000036e3 
+ 00014055  0x000025e8 rtn 
+ 00014056  0x000025f3 bpatchx  0x0000009f , 0x00004033 
+ 00014057  0x000025f4 fetch  0x00000001 , 0x00004437 
+ 00014058  0x000025f5 nrtn  0x00000034 
+ 00014059  0x000025f6 fetch  0x00000002 , 0x000044e9 
+ 00014060  0x000025f7 rtnbit1  0x0000000b 
+ 00014061  0x000025fa fetchr  0x00000011 , 0x00000002 , 0x000045f0 
+ 00014062  0x000025fb call  0x000035b4 
+ 00014063  0x000025fc storet  0x00000001 , 0x00004624 
+ 00014064  0x000025fd fetch  0x00000001 , 0x00004629 
+ 00014065  0x000025fe bmark1  0x00000026 , 0x000036f3 
+ 00014066  0x000025ff fetch  0x00000001 , 0x0000462c 
+ 00014067  0x00002601 isub  0x00000002 , 0x0000003e 
+ 00014068  0x00002602 nbranch  0x0000370d , 0x00000002 
+ 00014069  0x00002603 fetch  0x00000001 , 0x00004626 
+ 00014070  0x00002604 sub  0x0000003f , 0x00000002 , 0x0000003e 
+ 00014071  0x00002605 nbranch  0x000036fb , 0x00000002 
+ 00014072  0x00002606 fetch  0x00000001 , 0x00004626 
+ 00014073  0x00002607 beq  0x00000000 , 0x0000370e 
+ 00014074  0x00002608 rtn 
+ 00014075  0x0000260b fetch  0x00000001 , 0x00004626 
+ 00014076  0x0000260c fetcht  0x00000001 , 0x00004627 
+ 00014077  0x0000260d isub  0x00000002 , 0x0000003e 
+ 00014078  0x0000260e nrtn  0x00000005 
+ 00014079  0x0000260f jam  0x00000000 , 0x00004626 
+ 00014080  0x00002611 fetcht  0x00000001 , 0x00004624 
+ 00014081  0x00002612 fetch  0x00000001 , 0x00004628 
+ 00014082  0x00002613 bmark1  0x00000026 , 0x00003704 
+ 00014083  0x00002614 fetch  0x00000001 , 0x0000462b 
+ 00014084  0x00002616 isub  0x00000002 , 0x0000003e 
+ 00014085  0x00002617 nrtn  0x00000002 
+ 00014086  0x00002618 fetch  0x00000001 , 0x00004625 
+ 00014087  0x00002619 beq  0x00000000 , 0x00003715 
+ 00014088  0x0000261a increase  0xffffffff , 0x0000003f 
+ 00014089  0x0000261b store  0x00000001 , 0x00004625 
+ 00014090  0x0000261c beq  0x00000000 , 0x00003715 
+ 00014091  0x0000261f jam  0x00000000 , 0x00004141 
+ 00014092  0x00002620 rtn 
+ 00014093  0x00002623 jam  0x00000000 , 0x00004626 
+ 00014094  0x00002625 fetch  0x00000001 , 0x00004625 
+ 00014095  0x00002626 beq  0x00000002 , 0x00003713 
+ 00014096  0x00002627 increase  0x00000001 , 0x0000003f 
+ 00014097  0x00002628 store  0x00000001 , 0x00004625 
+ 00014098  0x00002629 beq  0x00000001 , 0x0000370b 
+ 00014099  0x0000262b jam  0x00000006 , 0x00004141 
+ 00014100  0x0000262c rtn 
+ 00014101  0x0000262f jam  0x00000085 , 0x00004141 
+ 00014102  0x00002630 rtn 
+ 00014103  0x00002633 jam  0x00000001 , 0x00004625 
+ 00014104  0x00002634 jam  0x00000000 , 0x00004626 
+ 00014105  0x00002635 rtn 
+ 00014106  0x00002638 fetch  0x00000001 , 0x00004626 
+ 00014107  0x00002639 increase  0x00000001 , 0x0000003f 
+ 00014108  0x0000263a store  0x00000001 , 0x00004626 
+ 00014109  0x0000263b rtn 
+ 00014110  0x0000263e fetch  0x00000001 , 0x00004626 
+ 00014111  0x0000263f sub  0x0000003f , 0x00000002 , 0x0000003e 
+ 00014112  0x00002640 ncall  0x00003726 , 0x00000002 
+ 00014113  0x00002641 fetch  0x00000001 , 0x00004626 
+ 00014114  0x00002642 rtneq  0x00000000 
+ 00014115  0x00002643 increase  0xffffffff , 0x0000003f 
+ 00014116  0x00002644 store  0x00000001 , 0x00004626 
+ 00014117  0x00002645 rtn 
+ 00014118  0x00002648 jam  0x00000003 , 0x00004626 
+ 00014119  0x00002649 rtn 
+ 00014120  0x00002654 fetch  0x00000001 , 0x000008f3 
+ 00014121  0x00002655 store  0x00000001 , 0x00000709 
+ 00014122  0x00002656 copy  0x00000030 , 0x00000006 
+ 00014123  0x00002657 call  0x00007c8e 
+ 00014124  0x00002658 fetch  0x00000002 , 0x00004826 
+ 00014125  0x00002659 branch  0x00007d79 
+ 00014126  0x0000265c jam  0x0000001e , 0x000049b8 
+ 00014127  0x0000265d call  0x0000378c 
+ 00014128  0x00002660 fetch  0x00000001 , 0x0000070a 
+ 00014129  0x00002661 beq  0x00000000 , 0x00003739 
+ 00014130  0x00002662 beq  0x00000080 , 0x00003d67 
+ 00014131  0x00002663 beq  0x00000082 , 0x00003ed4 
+ 00014132  0x00002664 beq  0x000000d1 , 0x00003799 
+ 00014133  0x00002665 beq  0x000000d0 , 0x000037ba 
+ 00014134  0x00002666 beq  0x000000d2 , 0x00003799 
+ 00014135  0x00002667 beq  0x000000d5 , 0x000037bb 
+ 00014136  0x00002668 rtn 
+ 00014137  0x0000266c arg  0x0000070e , 0x00000006 
+ 00014138  0x0000266d arg  0x00004959 , 0x00000005 
+ 00014139  0x0000266e call  0x00007c8f 
+ 00014140  0x0000266f jam  0x00000000 , 0x000047e4 
+ 00014141  0x00002670 call  0x00003bbf 
+ 00014142  0x00002671 call  0x00003bb1 
+ 00014143  0x00002672 call  0x0000375e 
+ 00014144  0x00002673 call  0x0000374f 
+ 00014145  0x00002674 call  0x00003754 
+ 00014146  0x00002675 jam  0x00000000 , 0x000047e4 
+ 00014147  0x00002676 fetch  0x00000002 , 0x00004828 
+ 00014148  0x00002677 branch  0x00007d79 
+ 00014149  0x0000267a setarg  0x00000000 
+ 00014150  0x0000267b store  0x00000002 , 0x00004806 
+ 00014151  0x0000267d random  0x0000003f 
+ 00014152  0x0000267e and  0x0000003f , 0x0000001f , 0x0000003f 
+ 00014153  0x0000267f add  0x0000003f , 0x0000001e , 0x0000003f 
+ 00014154  0x00002680 store  0x00000001 , 0x00004804 
+ 00014155  0x00002681 add  0x0000003f , 0x00000005 , 0x0000003f 
+ 00014156  0x00002682 store  0x00000001 , 0x00004803 
+ 00014157  0x00002683 call  0x00003e53 
+ 00014158  0x00002684 branch  0x00003a71 
+ 00014159  0x00002687 fetch  0x00000001 , 0x00000951 
+ 00014160  0x00002688 jam  0x00000004 , 0x000047e4 
+ 00014161  0x00002689 rtneq  0x00000001 
+ 00014162  0x0000268a jam  0x00000000 , 0x000047e4 
+ 00014163  0x0000268b rtn 
+ 00014164  0x0000268e setarg  0x00000080 
+ 00014165  0x0000268f store  0x00000001 , 0x00000723 
+ 00014166  0x00002690 setarg  0x00000003 
+ 00014167  0x00002691 istore  0x00000001 , 0x00000005 
+ 00014168  0x00002692 setarg  0x00000000 
+ 00014169  0x00002693 istore  0x00000001 , 0x00000005 
+ 00014170  0x00002694 fetch  0x00000003 , 0x0000070b 
+ 00014171  0x00002695 istore  0x00000003 , 0x00000005 
+ 00014172  0x00002696 jam  0x00000006 , 0x00000722 
+ 00014173  0x00002697 branch  0x000041b5 
+ 00014174  0x0000269b fetch  0x00000002 , 0x0000484c 
+ 00014175  0x0000269c rtnbit1  0x00000002 
+ 00014176  0x0000269d call  0x00003e3e 
+ 00014177  0x0000269f add  0x00000011 , 0x00000006 , 0x00000013 
+ 00014178  0x000026a0 setarg  0xffffffff 
+ 00014179  0x000026a1 istore  0x00000008 , 0x00000013 
+ 00014180  0x000026a2 istore  0x00000008 , 0x00000005 
+ 00014181  0x000026a3 ifetch  0x00000002 , 0x00000011 
+ 00014182  0x000026a4 istore  0x00000002 , 0x00000013 
+ 00014183  0x000026a5 copy  0x00000012 , 0x0000003f 
+ 00014184  0x000026a6 iadd  0x00000011 , 0x00000011 
+ 00014185  0x000026a7 loop  0x00003761 
+ 00014186  0x000026a8 fetch  0x00000002 , 0x00004848 
+ 00014187  0x000026a9 branch  0x00007d79 
+ 00014188  0x000026ad setarg  0x00000082 
+ 00014189  0x000026ae store  0x00000001 , 0x00000723 
+ 00014190  0x000026af setarg  0x00000004 
+ 00014191  0x000026b0 istore  0x00000001 , 0x00000005 
+ 00014192  0x000026b1 fetch  0x00000001 , 0x0000070c 
+ 00014193  0x000026b2 istore  0x00000001 , 0x00000005 
+ 00014194  0x000026b3 jam  0x00000003 , 0x00000722 
+ 00014195  0x000026b4 branch  0x000041b5 
+ 00014196  0x000026b8 setarg  0x00000082 
+ 00014197  0x000026b9 store  0x00000001 , 0x00000723 
+ 00014198  0x000026ba setarg  0x0000004e 
+ 00014199  0x000026bb istore  0x00000001 , 0x00000005 
+ 00014200  0x000026bc fetch  0x00000002 , 0x0000070c 
+ 00014201  0x000026bd istore  0x00000002 , 0x00000005 
+ 00014202  0x000026be jam  0x00000004 , 0x00000722 
+ 00014203  0x000026bf branch  0x000041b5 
+ 00014204  0x000026c3 setarg  0x00000082 
+ 00014205  0x000026c4 store  0x00000001 , 0x00000723 
+ 00014206  0x000026c5 setarg  0x00000060 
+ 00014207  0x000026c6 istore  0x00000001 , 0x00000005 
+ 00014208  0x000026c7 fetch  0x00000004 , 0x0000070c 
+ 00014209  0x000026c8 istore  0x00000004 , 0x00000005 
+ 00014210  0x000026c9 jam  0x00000006 , 0x00000722 
+ 00014211  0x000026ca branch  0x000041b5 
+ 00014212  0x000026cf setarg  0x0000005e 
+ 00014213  0x000026d0 store  0x00000001 , 0x00000723 
+ 00014214  0x000026d1 setarg  0x00000000 
+ 00014215  0x000026d2 istore  0x00000001 , 0x00000005 
+ 00014216  0x000026d3 fetch  0x00000002 , 0x0000070c 
+ 00014217  0x000026d4 istore  0x00000002 , 0x00000005 
+ 00014218  0x000026d5 jam  0x00000004 , 0x00000722 
+ 00014219  0x000026d6 branch  0x000041b5 
+ 00014220  0x000026dc fetch  0x00000001 , 0x00004804 
+ 00014221  0x000026dd rtn  0x00000034 
+ 00014222  0x000026de pincrease  0x0000001e 
+ 00014223  0x000026df store  0x00000001 , 0x00004804 
+ 00014224  0x000026e0 rtn 
+ 00014225  0x000026e3 arg  0x00004803 , 0x00000013 
+ 00014226  0x000026e4 arg  0x000037e4 , 0x00000012 
+ 00014227  0x000026e5 branch  0x000042e0 
+ 00014228  0x000026e8 arg  0x00004804 , 0x00000013 
+ 00014229  0x000026e9 arg  0x00003797 , 0x00000012 
+ 00014230  0x000026ea branch  0x000042e0 
+ 00014231  0x000026ed fetch  0x00000002 , 0x00004855 
+ 00014232  0x000026ee branch  0x00007d79 
+ 00014233  0x000026f6 call  0x000037c4 
+ 00014234  0x000026f7 nrtn  0x00000028 
+ 00014235  0x000026f8 bpatchx  0x000000a0 , 0x00004034 
+ 00014236  0x000026f9 fetch  0x00000002 , 0x0000070e 
+ 00014237  0x000026fa arg  0x0000f01f , 0x00000002 
+ 00014238  0x000026fb isub  0x00000002 , 0x0000003e 
+ 00014239  0x000026fc branch  0x000037d8 , 0x00000005 
+ 00014240  0x000026fe arg  0x0000f014 , 0x00000002 
+ 00014241  0x000026ff isub  0x00000002 , 0x0000003e 
+ 00014242  0x00002700 branch  0x0000391c , 0x00000005 
+ 00014243  0x00002702 arg  0x0000f013 , 0x00000002 
+ 00014244  0x00002703 isub  0x00000002 , 0x0000003e 
+ 00014245  0x00002704 branch  0x00003907 , 0x00000005 
+ 00014246  0x00002706 arg  0x0000f017 , 0x00000002 
+ 00014247  0x00002707 isub  0x00000002 , 0x0000003e 
+ 00014248  0x00002708 branch  0x00003819 , 0x00000005 
+ 00014249  0x00002709 arg  0x0000f018 , 0x00000002 
+ 00014250  0x0000270a isub  0x00000002 , 0x0000003e 
+ 00014251  0x0000270b branch  0x00003845 , 0x00000005 
+ 00014252  0x0000270c arg  0x0000f016 , 0x00000002 
+ 00014253  0x0000270d isub  0x00000002 , 0x0000003e 
+ 00014254  0x0000270e branch  0x0000386a , 0x00000005 
+ 00014255  0x00002711 arg  0x00000534 , 0x00000002 
+ 00014256  0x00002712 isub  0x00000002 , 0x0000003e 
+ 00014257  0x00002713 branch  0x000037cf , 0x00000005 
+ 00014258  0x00002714 arg  0x00000533 , 0x00000002 
+ 00014259  0x00002715 isub  0x00000002 , 0x0000003e 
+ 00014260  0x00002716 branch  0x000037d2 , 0x00000005 
+ 00014261  0x00002717 arg  0x00000123 , 0x00000002 
+ 00014262  0x00002718 isub  0x00000002 , 0x0000003e 
+ 00014263  0x00002719 branch  0x000037d5 , 0x00000005 
+ 00014264  0x0000271a fetch  0x00000002 , 0x0000482c 
+ 00014265  0x0000271b branch  0x00007d79 
+ 00014266  0x0000271e rtn 
+ 00014267  0x00002720 ifetch  0x00000002 , 0x00000006 
+ 00014268  0x00002721 arg  0x000001a8 , 0x00000002 
+ 00014269  0x00002722 isub  0x00000002 , 0x0000003e 
+ 00014270  0x00002723 nrtn  0x00000005 
+ 00014271  0x00002724 ifetch  0x00000001 , 0x00000006 
+ 00014272  0x00002725 fetcht  0x00000001 , 0x000049b6 
+ 00014273  0x00002726 isub  0x00000002 , 0x0000003e 
+ 00014274  0x00002727 nrtn  0x00000005 
+ 00014275  0x00002728 branch  0x00003b2a 
+ 00014276  0x0000272b call  0x00007dbc 
+ 00014277  0x0000272c fetch  0x00000002 , 0x0000070b 
+ 00014278  0x0000272d arg  0x000001a8 , 0x00000002 
+ 00014279  0x0000272e isub  0x00000002 , 0x0000003e 
+ 00014280  0x0000272f nrtn  0x00000005 
+ 00014281  0x00002730 fetcht  0x00000001 , 0x000044f1 
+ 00014282  0x00002731 fetch  0x00000001 , 0x0000070d 
+ 00014283  0x00002732 isub  0x00000002 , 0x0000003e 
+ 00014284  0x00002733 rtn  0x00000005 
+ 00014285  0x00002734 store  0x00000001 , 0x000044f1 
+ 00014286  0x00002735 branch  0x00007dba 
+ 00014287  0x00002738 call  0x000037f4 
+ 00014288  0x00002739 fetch  0x00000002 , 0x0000483c 
+ 00014289  0x0000273a branch  0x00007d79 
+ 00014290  0x0000273e call  0x000037f4 
+ 00014291  0x0000273f fetch  0x00000002 , 0x0000483e 
+ 00014292  0x00002740 branch  0x00007d79 
+ 00014293  0x00002743 call  0x000037ee 
+ 00014294  0x00002744 fetch  0x00000002 , 0x00004840 
+ 00014295  0x00002745 branch  0x00007d79 
+ 00014296  0x00002749 call  0x000037f0 
+ 00014297  0x0000274b fetch  0x00000004 , 0x00000710 
+ 00014298  0x0000274c store  0x00000004 , 0x000044f3 
+ 00014299  0x0000274d branch  0x00003889 
+ 00014300  0x00002752 setarg  0x000000d3 
+ 00014301  0x00002753 store  0x00000001 , 0x00000723 
+ 00014302  0x00002754 setarg  0x000001a8 
+ 00014303  0x00002755 istore  0x00000002 , 0x00000005 
+ 00014304  0x00002756 fetch  0x00000001 , 0x000044f1 
+ 00014305  0x00002757 istore  0x00000001 , 0x00000005 
+ 00014306  0x00002758 istoret  0x00000002 , 0x00000005 
+ 00014307  0x00002759 rtn 
+ 00014308  0x0000275d arg  0x00000000 , 0x00000007 
+ 00014309  0x0000275e arg  0x00000003 , 0x00000002 
+ 00014310  0x0000275f arg  0x0000f009 , 0x00000011 
+ 00014311  0x00002760 branch  0x000037fc 
+ 00014312  0x0000276c arg  0x00000100 , 0x00000011 
+ 00014313  0x0000276d branch  0x000037fc 
+ 00014314  0x00002772 arg  0x00000008 , 0x00000039 
+ 00014315  0x00002773 branch  0x000037f6 
+ 00014316  0x00002776 arg  0x00000008 , 0x00000039 
+ 00014317  0x00002777 branch  0x000037f6 
+ 00014318  0x0000277a arg  0x00000006 , 0x00000039 
+ 00014319  0x0000277b branch  0x000037f6 
+ 00014320  0x0000277e arg  0x00000004 , 0x00000039 
+ 00014321  0x0000277f branch  0x000037f6 
+ 00014322  0x00002782 arg  0x00000002 , 0x00000039 
+ 00014323  0x00002783 branch  0x000037f6 
+ 00014324  0x00002786 arg  0x00000001 , 0x00000039 
+ 00014325  0x00002787 branch  0x000037f6 
+ 00014326  0x0000278b add  0x00000039 , 0x00000006 , 0x0000003f 
+ 00014327  0x0000278c store  0x00000001 , 0x00000722 
+ 00014328  0x0000278d call  0x000037dc 
+ 00014329  0x0000278e arg  0x00000710 , 0x00000006 
+ 00014330  0x0000278f call  0x00007cda 
+ 00014331  0x00002790 branch  0x000041b5 
+ 00014332  0x00002798 call  0x00003808 
+ 00014333  0x00002799 istorer  0x00000011 , 0x00000002 , 0x00000005 
+ 00014334  0x0000279a istoret  0x00000001 , 0x00000005 
+ 00014335  0x0000279b jam  0x00000007 , 0x00000722 
+ 00014336  0x0000279c branch  0x00003806 
+ 00014337  0x000027a3 call  0x00003808 
+ 00014338  0x000027a4 istorer  0x00000011 , 0x00000002 , 0x00000005 
+ 00014339  0x000027a5 istoret  0x00000002 , 0x00000005 
+ 00014340  0x000027a6 jam  0x00000008 , 0x00000722 
+ 00014341  0x000027a7 branch  0x00003806 
+ 00014342  0x000027ac call  0x00003f6e 
+ 00014343  0x000027ad branch  0x000041b5 
+ 00014344  0x000027b1 fetch  0x00000001 , 0x000047ae 
+ 00014345  0x000027b2 store  0x00000001 , 0x0000092b 
+ 00014346  0x000027b3 setarg  0x000000f0 
+ 00014347  0x000027b4 store  0x00000002 , 0x0000094c 
+ 00014348  0x000027b5 fetch  0x00000001 , 0x000044f2 
+ 00014349  0x000027b6 pincrease  0x00000001 
+ 00014350  0x000027b7 store  0x00000001 , 0x000044f2 
+ 00014351  0x000027b8 beq  0x000000c0 , 0x00003817 
+ 00014352  0x000027b9 setarg  0x000000d4 
+ 00014353  0x000027ba store  0x00000001 , 0x00000723 
+ 00014354  0x000027bb setarg  0x000001a8 
+ 00014355  0x000027bc istore  0x00000002 , 0x00000005 
+ 00014356  0x000027bd fetch  0x00000001 , 0x000044f2 
+ 00014357  0x000027be istore  0x00000001 , 0x00000005 
+ 00014358  0x000027bf rtn 
+ 00014359  0x000027c2 jam  0x00000080 , 0x000044f2 
+ 00014360  0x000027c3 rtn 
+ 00014361  0x000027c7 copy  0x00000006 , 0x00000011 
+ 00014362  0x000027c8 fetch  0x00000001 , 0x00000709 
+ 00014363  0x000027c9 arg  0x00000006 , 0x00000002 
+ 00014364  0x000027ca isub  0x00000002 , 0x0000003f 
+ 00014365  0x000027cb store  0x00000001 , 0x00004608 
+ 00014366  0x000027cc copy  0x0000003f , 0x00000039 
+ 00014367  0x000027cd copy  0x00000011 , 0x00000006 
+ 00014368  0x000027ce arg  0x00004609 , 0x00000005 
+ 00014369  0x000027cf call  0x00007cda 
+ 00014370  0x000027d0 arg  0x00000000 , 0x00000012 
+ 00014371  0x000027d2 arg  0x00004609 , 0x0000003f 
+ 00014372  0x000027d3 iadd  0x00000012 , 0x00000002 
+ 00014373  0x000027d4 ifetch  0x00000001 , 0x00000002 
+ 00014374  0x000027d5 beq  0x000000ff , 0x0000383f 
+ 00014375  0x000027d6 and  0x0000003f , 0x0000007f , 0x0000003f 
+ 00014376  0x000027d7 call  0x00003837 
+ 00014377  0x000027d8 increase  0x00000001 , 0x00000012 
+ 00014378  0x000027d9 fetch  0x00000001 , 0x00004608 
+ 00014379  0x000027da isub  0x00000012 , 0x0000003e 
+ 00014380  0x000027db branch  0x00003823 , 0x00000002 
+ 00014381  0x000027dc call  0x0000394a 
+ 00014382  0x000027de arg  0x0000f017 , 0x00000002 
+ 00014383  0x000027df call  0x000037dc 
+ 00014384  0x000027e0 arg  0x00000000 , 0x00000002 
+ 00014385  0x000027e1 istoret  0x00000001 , 0x00000005 
+ 00014386  0x000027e2 copy  0x00000005 , 0x00000002 
+ 00014387  0x000027e3 call  0x0000393b 
+ 00014388  0x000027e4 pincrease  0x00000007 
+ 00014389  0x000027e5 store  0x00000001 , 0x00000722 
+ 00014390  0x000027e6 branch  0x000041b5 
+ 00014391  0x000027e9 rtn  0x00000034 
+ 00014392  0x000027ea pincrease  0xffffffff 
+ 00014393  0x000027eb mul32  0x0000003f , 0x00000012 , 0x0000003f 
+ 00014394  0x000027ec arg  0x00004503 , 0x00000011 
+ 00014395  0x000027ed iadd  0x00000011 , 0x00000011 
+ 00014396  0x000027ee setarg  0x00000000 
+ 00014397  0x000027ef istore  0x00000001 , 0x00000011 
+ 00014398  0x000027f0 rtn 
+ 00014399  0x000027f3 arg  0x00000012 , 0x00000039 
+ 00014400  0x000027f4 mul32  0x00000039 , 0x0000000d , 0x00000039 
+ 00014401  0x000027f5 arg  0x00004503 , 0x00000005 
+ 00014402  0x000027f6 call  0x00007ca1 
+ 00014403  0x000027f7 call  0x0000394a 
+ 00014404  0x000027f8 branch  0x0000382e 
+ 00014405  0x000027fb ifetch  0x00000001 , 0x00000006 
+ 00014406  0x000027fc beq  0x000000ff , 0x0000385e 
+ 00014407  0x000027fd store  0x00000001 , 0x000045ff 
+ 00014408  0x000027fe ifetch  0x00000001 , 0x00000006 
+ 00014409  0x000027ff pincrease  0xffffffff 
+ 00014410  0x00002800 mul32  0x0000003f , 0x00000012 , 0x0000003f 
+ 00014411  0x00002801 arg  0x00004503 , 0x00000006 
+ 00014412  0x00002802 iadd  0x00000006 , 0x00000006 
+ 00014413  0x00002803 arg  0x000045ed , 0x00000005 
+ 00014414  0x00002804 arg  0x00000012 , 0x00000039 
+ 00014415  0x00002805 call  0x00007cda 
+ 00014416  0x00002806 arg  0x0000f018 , 0x00000002 
+ 00014417  0x00002807 call  0x000037dc 
+ 00014418  0x00002808 fetch  0x00000001 , 0x000045ed 
+ 00014419  0x00002809 branch  0x00003867 , 0x00000034 
+ 00014420  0x0000280a arg  0x00000000 , 0x00000002 
+ 00014421  0x0000280b istoret  0x00000001 , 0x00000005 
+ 00014422  0x0000280d fetch  0x00000001 , 0x000045ff 
+ 00014423  0x0000280e istore  0x00000001 , 0x00000005 
+ 00014424  0x0000280f fetch  0x00000001 , 0x000045ed 
+ 00014425  0x00002810 istore  0x00000001 , 0x00000005 
+ 00014426  0x00002811 fetch  0x00000008 , 0x000045ee 
+ 00014427  0x00002812 istore  0x00000008 , 0x00000005 
+ 00014428  0x00002813 jam  0x00000011 , 0x00000722 
+ 00014429  0x00002814 branch  0x000041b5 
+ 00014430  0x00002818 arg  0x0000f018 , 0x00000002 
+ 00014431  0x00002819 call  0x000037dc 
+ 00014432  0x0000281a arg  0x000000ff , 0x00000002 
+ 00014433  0x0000281b istoret  0x00000002 , 0x00000005 
+ 00014434  0x0000281e copy  0x00000005 , 0x00000002 
+ 00014435  0x0000281f call  0x0000393b 
+ 00014436  0x00002820 pincrease  0x00000008 
+ 00014437  0x00002821 store  0x00000001 , 0x00000722 
+ 00014438  0x00002822 branch  0x000041b5 
+ 00014439  0x00002828 arg  0x00000080 , 0x00000002 
+ 00014440  0x00002829 istore  0x00000001 , 0x00000005 
+ 00014441  0x0000282a branch  0x00003856 
+ 00014442  0x0000282d ifetch  0x00000001 , 0x00000006 
+ 00014443  0x0000282e store  0x00000001 , 0x000045ff 
+ 00014444  0x0000282f and  0x0000003f , 0x0000007f , 0x0000003f 
+ 00014445  0x00002830 pincrease  0xffffffff 
+ 00014446  0x00002831 mul32  0x0000003f , 0x00000012 , 0x0000003f 
+ 00014447  0x00002832 arg  0x00004503 , 0x00000005 
+ 00014448  0x00002833 iadd  0x00000005 , 0x00000005 
+ 00014449  0x00002834 fetch  0x00000001 , 0x000045ff 
+ 00014450  0x00002835 istore  0x00000001 , 0x00000005 
+ 00014451  0x00002836 call  0x0000394a 
+ 00014452  0x00002837 arg  0x0000f016 , 0x00000002 
+ 00014453  0x00002838 call  0x000037dc 
+ 00014454  0x00002839 setarg  0x00000000 
+ 00014455  0x0000283a istore  0x00000001 , 0x00000005 
+ 00014456  0x0000283b copy  0x00000005 , 0x00000002 
+ 00014457  0x0000283c call  0x0000393b 
+ 00014458  0x0000283d pincrease  0x00000007 
+ 00014459  0x0000283e store  0x00000001 , 0x00000722 
+ 00014460  0x0000283f branch  0x000041b5 
+ 00014461  0x00002845 copy  0x00000022 , 0x00000002 
+ 00014462  0x00002846 fetch  0x00000004 , 0x000044f7 
+ 00014463  0x00002847 isub  0x00000002 , 0x0000003e 
+ 00014464  0x00002848 call  0x0000388f , 0x00000002 
+ 00014465  0x00002849 call  0x00003896 
+ 00014466  0x0000284a isub  0x00000002 , 0x0000003e 
+ 00014467  0x0000284b rtn  0x00000002 
+ 00014468  0x0000284c call  0x0000388a 
+ 00014469  0x0000284d fetch  0x00000004 , 0x000044f3 
+ 00014470  0x0000284e pincrease  0x00000001 
+ 00014471  0x0000284f store  0x00000004 , 0x000044f3 
+ 00014472  0x00002850 branch  0x0000389a 
+ 00014473  0x00002854 copy  0x00000022 , 0x0000003f 
+ 00014474  0x00002856 store  0x00000004 , 0x000044f7 
+ 00014475  0x00002857 fetch  0x00000001 , 0x000044fa 
+ 00014476  0x00002858 and_into  0x0000000f , 0x0000003f 
+ 00014477  0x00002859 store  0x00000001 , 0x000044fa 
+ 00014478  0x0000285a rtn 
+ 00014479  0x0000285d rtn  0x00000005 
+ 00014480  0x0000285e copy  0x0000003f , 0x00000012 
+ 00014481  0x0000285f setarg  0x00100000 
+ 00014482  0x00002860 lshift8  0x0000003f , 0x0000003f 
+ 00014483  0x00002861 iadd  0x00000002 , 0x00000002 
+ 00014484  0x00002862 copy  0x00000012 , 0x0000003f 
+ 00014485  0x00002863 rtn 
+ 00014486  0x00002866 arg  0x00000014 , 0x00000039 
+ 00014487  0x00002868 pincrease  0x000000a0 
+ 00014488  0x00002869 loop  0x00003897 
+ 00014489  0x0000286a rtn 
+ 00014490  0x0000286d setarg  0x0000000d 
+ 00014491  0x0000286e store  0x00000001 , 0x00004602 
+ 00014492  0x0000286f pincrease  0xffffffff 
+ 00014493  0x00002870 mul32  0x0000003f , 0x00000012 , 0x0000003f 
+ 00014494  0x00002871 arg  0x00004503 , 0x00000030 
+ 00014495  0x00002872 iadd  0x00000030 , 0x00000030 
+ 00014496  0x00002874 ifetch  0x00000001 , 0x00000030 
+ 00014497  0x00002875 ncall  0x000038a8 , 0x00000034 
+ 00014498  0x00002876 increase  0xffffffee , 0x00000030 
+ 00014499  0x00002878 fetch  0x00000001 , 0x00004602 
+ 00014500  0x00002879 pincrease  0xffffffff 
+ 00014501  0x0000287a rtn  0x00000034 
+ 00014502  0x0000287b store  0x00000001 , 0x00004602 
+ 00014503  0x0000287c branch  0x000038a0 
+ 00014504  0x0000287f arg  0x00000007 , 0x00000007 
+ 00014505  0x00002880 qisolate0  0x0000003f 
+ 00014506  0x00002881 rtn  0x00000001 
+ 00014507  0x00002882 and  0x0000003f , 0x0000007f , 0x0000003f 
+ 00014508  0x00002883 arg  0x0000000d , 0x00000002 
+ 00014509  0x00002884 isub  0x00000002 , 0x0000003e 
+ 00014510  0x00002885 rtn  0x00000002 
+ 00014511  0x00002886 copy  0x00000030 , 0x00000006 
+ 00014512  0x00002887 arg  0x000045ed , 0x00000005 
+ 00014513  0x00002888 arg  0x00000012 , 0x00000039 
+ 00014514  0x00002889 call  0x00007cda 
+ 00014515  0x0000288a fetch  0x00000001 , 0x000045fe 
+ 00014516  0x0000288b beq  0x00000059 , 0x000038bf 
+ 00014517  0x0000288d fetcht  0x00000004 , 0x000044f3 
+ 00014518  0x0000288e fetch  0x00000004 , 0x000045ee 
+ 00014519  0x0000288f isub  0x00000002 , 0x0000003e 
+ 00014520  0x00002890 fetch  0x00000001 , 0x000045f5 
+ 00014521  0x00002891 branch  0x000038e3 , 0x00000005 
+ 00014522  0x00002892 nbranch  0x000038bc , 0x00000002 
+ 00014523  0x00002893 rtn 
+ 00014524  0x00002896 setarg  0x00000000 
+ 00014525  0x00002897 istore  0x00000001 , 0x00000030 
+ 00014526  0x00002898 rtn 
+ 00014527  0x0000289c fetch  0x00000004 , 0x000044f3 
+ 00014528  0x0000289d arg  0x0000003c , 0x00000002 
+ 00014529  0x0000289e idiv  0x00000002 
+ 00014530  0x0000289f call  0x00007d62 
+ 00014531  0x000028a0 remainder  0x0000003f 
+ 00014532  0x000028a1 nrtn  0x00000034 
+ 00014533  0x000028a3 fetch  0x00000004 , 0x000044f3 
+ 00014534  0x000028a4 arg  0x00054600 , 0x00000002 
+ 00014535  0x000028a5 isub  0x00000002 , 0x0000003f 
+ 00014536  0x000028a7 arg  0x00093a80 , 0x00000002 
+ 00014537  0x000028a8 idiv  0x00000002 
+ 00014538  0x000028a9 call  0x00007d62 
+ 00014539  0x000028aa remainder  0x0000003f 
+ 00014540  0x000028ab arg  0x00015180 , 0x00000002 
+ 00014541  0x000028ac idiv  0x00000002 
+ 00014542  0x000028ad call  0x00007d62 
+ 00014543  0x000028ae remainder  0x00000011 
+ 00014544  0x000028af quotient  0x00000007 
+ 00014545  0x000028b0 fetch  0x00000001 , 0x000045f2 
+ 00014546  0x000028b1 branch  0x000038d5 , 0x00000034 
+ 00014547  0x000028b2 qisolate1  0x0000003f 
+ 00014548  0x000028b3 nrtn  0x00000001 
+ 00014549  0x000028b6 deposit  0x00000011 
+ 00014550  0x000028b7 arg  0x0000003c , 0x00000002 
+ 00014551  0x000028b8 idiv  0x00000002 
+ 00014552  0x000028b9 call  0x00007d62 
+ 00014553  0x000028ba quotient  0x00000002 
+ 00014554  0x000028bb setarg  0x000001e0 
+ 00014555  0x000028bc iadd  0x00000002 , 0x00000002 
+ 00014556  0x000028bd fetch  0x00000002 , 0x000045ee 
+ 00014557  0x000028be arg  0x00000fff , 0x00000011 
+ 00014558  0x000028bf iand  0x00000011 , 0x0000003f 
+ 00014559  0x000028c0 isub  0x00000002 , 0x0000003e 
+ 00014560  0x000028c1 nrtn  0x00000005 
+ 00014561  0x000028c2 fetch  0x00000001 , 0x000045f6 
+ 00014562  0x000028c3 branch  0x000038e3 
+ 00014563  0x000028c6 store  0x00000001 , 0x0000070c 
+ 00014564  0x000028c7 jam  0x00000001 , 0x00004602 
+ 00014565  0x000028c9 copy  0x00000030 , 0x0000003f 
+ 00014566  0x000028ca store  0x00000002 , 0x0000091f 
+ 00014567  0x000028cc fetcht  0x00000001 , 0x0000070c 
+ 00014568  0x000028cd fetchr  0x00000007 , 0x00000001 , 0x00004869 
+ 00014569  0x000028ce call  0x000037e8 
+ 00014570  0x000028d0 fetch  0x00000002 , 0x0000091f 
+ 00014571  0x000028d1 copy  0x0000003f , 0x00000030 
+ 00014572  0x000028d2 add  0x00000030 , 0x00000011 , 0x00000006 
+ 00014573  0x000028d3 ifetch  0x00000001 , 0x00000006 
+ 00014574  0x000028d4 beq  0x00000059 , 0x000038f4 
+ 00014575  0x000028d6 setarg  0x00000000 
+ 00014576  0x000028d7 istore  0x00000001 , 0x00000030 
+ 00014577  0x000028d8 fetchr  0x00000007 , 0x00000001 , 0x00004869 
+ 00014578  0x000028d9 call  0x000038ff 
+ 00014579  0x000028da branch  0x0000394a 
+ 00014580  0x000028df fetch  0x00000001 , 0x000045f2 
+ 00014581  0x000028e0 branch  0x000038ef , 0x00000034 
+ 00014582  0x000028e1 arg  0x0000f009 , 0x00000002 
+ 00014583  0x000028e2 call  0x000037dc 
+ 00014584  0x000028e3 setarg  0x00000011 
+ 00014585  0x000028e4 istore  0x00000001 , 0x00000005 
+ 00014586  0x000028e5 ifetch  0x00000001 , 0x00000030 
+ 00014587  0x000028e6 or  0x0000003f , 0x00000080 , 0x0000003f 
+ 00014588  0x000028e7 istore  0x00000001 , 0x00000005 
+ 00014589  0x000028e8 jam  0x00000008 , 0x00000723 
+ 00014590  0x000028e9 branch  0x00003806 
+ 00014591  0x000028ec arg  0x0000f020 , 0x00000002 
+ 00014592  0x000028ed call  0x000037dc 
+ 00014593  0x000028ee copy  0x00000005 , 0x00000002 
+ 00014594  0x000028ef call  0x0000393b 
+ 00014595  0x000028f1 pincrease  0x00000006 
+ 00014596  0x000028f2 store  0x00000001 , 0x00000722 
+ 00014597  0x000028f3 jam  0x000000d3 , 0x00000723 
+ 00014598  0x000028f4 branch  0x00003806 
+ 00014599  0x000028f8 arg  0x000045ed , 0x00000005 
+ 00014600  0x000028f9 arg  0x00000010 , 0x00000039 
+ 00014601  0x000028fa call  0x00007cda 
+ 00014602  0x000028fb fetch  0x00000001 , 0x000045ed 
+ 00014603  0x000028fc and  0x0000003f , 0x0000007f , 0x0000003f 
+ 00014604  0x000028fd store  0x00000001 , 0x000045ff 
+ 00014605  0x000028fe sub  0x0000003f , 0x0000000d , 0x0000003e 
+ 00014606  0x000028ff nrtn  0x00000002 
+ 00014607  0x00002900 fetch  0x00000004 , 0x000045ee 
+ 00014608  0x00002901 arg  0x0000003c , 0x00000002 
+ 00014609  0x00002902 idiv  0x00000002 
+ 00014610  0x00002903 call  0x00007d62 
+ 00014611  0x00002904 remainder  0x00000002 
+ 00014612  0x00002905 isub  0x00000002 , 0x0000003f 
+ 00014613  0x00002906 store  0x00000004 , 0x000045ee 
+ 00014614  0x00002907 setarg  0x00000000 
+ 00014615  0x00002908 store  0x00000002 , 0x000045fd 
+ 00014616  0x00002909 arg  0x000045ed , 0x00000011 
+ 00014617  0x0000290a call  0x00003930 
+ 00014618  0x0000290b arg  0x0000f013 , 0x00000002 
+ 00014619  0x0000290c branch  0x00003928 
+ 00014620  0x00002913 arg  0x000045ed , 0x00000005 
+ 00014621  0x00002914 arg  0x00000011 , 0x00000039 
+ 00014622  0x00002915 call  0x00007cda 
+ 00014623  0x00002918 fetch  0x00000001 , 0x000045ed 
+ 00014624  0x00002919 and  0x0000003f , 0x0000007f , 0x0000003f 
+ 00014625  0x0000291a store  0x00000001 , 0x000045ff 
+ 00014626  0x0000291b sub  0x0000003f , 0x0000000d , 0x0000003e 
+ 00014627  0x0000291c nrtn  0x00000002 
+ 00014628  0x0000291e jam  0x00000059 , 0x000045fe 
+ 00014629  0x0000291f arg  0x000045ed , 0x00000011 
+ 00014630  0x00002920 call  0x00003930 
+ 00014631  0x00002921 arg  0x0000f014 , 0x00000002 
+ 00014632  0x00002926 call  0x000037dc 
+ 00014633  0x00002927 setarg  0x00000000 
+ 00014634  0x00002928 store  0x00000001 , 0x00000729 
+ 00014635  0x00002929 copy  0x00000005 , 0x00000002 
+ 00014636  0x0000292a call  0x0000393b 
+ 00014637  0x0000292b pincrease  0x00000007 
+ 00014638  0x0000292c store  0x00000001 , 0x00000722 
+ 00014639  0x0000292d branch  0x000041b5 
+ 00014640  0x00002931 call  0x00003937 
+ 00014641  0x00002932 copy  0x00000011 , 0x00000006 
+ 00014642  0x00002933 arg  0x00004503 , 0x00000005 
+ 00014643  0x00002934 iadd  0x00000005 , 0x00000005 
+ 00014644  0x00002935 arg  0x00000012 , 0x00000039 
+ 00014645  0x00002936 call  0x00007cda 
+ 00014646  0x00002937 branch  0x0000394a 
+ 00014647  0x0000293a fetch  0x00000001 , 0x000045ff 
+ 00014648  0x0000293b pincrease  0xffffffff 
+ 00014649  0x0000293c mul32  0x0000003f , 0x00000012 , 0x0000003f 
+ 00014650  0x0000293d rtn 
+ 00014651  0x00002940 arg  0x00004503 , 0x00000011 
+ 00014652  0x00002941 arg  0x00000000 , 0x00000012 
+ 00014653  0x00002942 copy  0x00000002 , 0x00000005 
+ 00014654  0x00002943 arg  0x0000000d , 0x00000039 
+ 00014655  0x00002944 increase  0xffffffff , 0x00000039 
+ 00014656  0x00002946 ifetch  0x00000001 , 0x00000011 
+ 00014657  0x00002947 beq  0x000000ff , 0x00003945 
+ 00014658  0x00002948 branch  0x00003945 , 0x00000034 
+ 00014659  0x00002949 increase  0x00000001 , 0x00000012 
+ 00014660  0x0000294a istore  0x00000001 , 0x00000005 
+ 00014661  0x0000294c setarg  0x00000012 
+ 00014662  0x0000294d iadd  0x00000011 , 0x00000011 
+ 00014663  0x0000294e loop  0x00003940 
+ 00014664  0x0000294f copy  0x00000012 , 0x0000003f 
+ 00014665  0x00002950 rtn 
+ 00014666  0x00002953 fetch  0x00000002 , 0x0000484a 
+ 00014667  0x00002954 branch  0x00007d79 
+ 00014668  0x0000295f bpatchx  0x000000a1 , 0x00004034 
+ 00014669  0x00002960 setarg  0x00004a5e 
+ 00014670  0x00002961 store  0x00000002 , 0x00004aed 
+ 00014671  0x00002962 setarg  0x00004aeb 
+ 00014672  0x00002963 store  0x00000002 , 0x00000919 
+ 00014673  0x00002964 jam  0x00000014 , 0x00000787 
+ 00014674  0x00002965 fetch  0x00000001 , 0x00004808 
+ 00014675  0x00002966 store  0x00000001 , 0x00000788 
+ 00014676  0x00002968 fetch  0x00000001 , 0x00000916 
+ 00014677  0x00002969 pincrease  0x0000000b 
+ 00014678  0x0000296a add  0x0000003f , 0xfffffffe , 0x00000039 
+ 00014679  0x00002973 store  0x00000001 , 0x00000789 
+ 00014680  0x00002974 pincrease  0xffffffff 
+ 00014681  0x00002977 istore  0x00000001 , 0x00000005 
+ 00014682  0x00002978 setarg  0x0000002a 
+ 00014683  0x00002979 istore  0x00000001 , 0x00000005 
+ 00014684  0x0000297a arg  0x00004998 , 0x00000006 
+ 00014685  0x0000297b call  0x00007ccc 
+ 00014686  0x0000297c fetchr  0x00000011 , 0x00000002 , 0x00000919 
+ 00014687  0x0000297d call  0x00003967 
+ 00014688  0x0000297e call  0x000078b2 
+ 00014689  0x00002980 fetch  0x00000002 , 0x000044e9 
+ 00014690  0x00002981 isolate1  0x00000009 , 0x0000003f 
+ 00014691  0x00002982 nrtn  0x00000001 
+ 00014692  0x00002984 call  0x00003e5e 
+ 00014693  0x00002985 arg  0x00000787 , 0x00000011 
+ 00014694  0x00002986 branch  0x000078b2 
+ 00014695  0x00002989 add  0x00000011 , 0x00000002 , 0x00000006 
+ 00014696  0x0000298a ifetch  0x00000002 , 0x00000006 
+ 00014697  0x0000298b store  0x00000002 , 0x000043fb 
+ 00014698  0x0000298c arg  0x00000787 , 0x00000011 
+ 00014699  0x0000298d rtn 
+ 00014700  0x00002991 setarg  0x00004a5e 
+ 00014701  0x00002992 store  0x00000002 , 0x000043fb 
+ 00014702  0x00002993 rtn 
+ 00014703  0x00002998 fetch  0x00000001 , 0x000049b5 
+ 00014704  0x00002999 rtnne  0x00000001 
+ 00014705  0x0000299a jam  0x00000002 , 0x000049b5 
+ 00014706  0x0000299b branch  0x00003ace 
+ 00014707  0x0000299e arg  0x0000078c , 0x00000011 
+ 00014708  0x0000299f arg  0x00000012 , 0x00000002 
+ 00014709  0x000029a0 setarg  0x00000021 
+ 00014710  0x000029a1 nrtn  0x00000001 
+ 00014711  0x000029a2 arg  0x0000079e , 0x00000011 
+ 00014712  0x000029a3 fetcht  0x00000001 , 0x00000789 
+ 00014713  0x000029a4 increase  0xffffffee , 0x00000002 
+ 00014714  0x000029a5 setarg  0x00000022 
+ 00014715  0x000029a6 rtn 
+ 00014716  0x000029af arg  0x0000462b , 0x00000005 
+ 00014717  0x000029b0 setarg  0x00000002 
+ 00014718  0x000029b1 istore  0x00000001 , 0x00000005 
+ 00014719  0x000029b2 setarg  0x00000001 
+ 00014720  0x000029b3 istore  0x00000001 , 0x00000005 
+ 00014721  0x000029b4 setarg  0x00000002 
+ 00014722  0x000029b5 istore  0x00000001 , 0x00000005 
+ 00014723  0x000029b6 rtn 
+ 00014724  0x000029bb arg  0x00001827 , 0x00000002 
+ 00014725  0x000029bc setarg  0x00000003 
+ 00014726  0x000029bd istore  0x00000001 , 0x00000005 
+ 00014727  0x000029be setarg  0x00000003 
+ 00014728  0x000029bf istore  0x00000001 , 0x00000005 
+ 00014729  0x000029c0 istoret  0x00000002 , 0x00000005 
+ 00014730  0x000029c1 rtn 
+ 00014731  0x000029c5 call  0x000025b8 
+ 00014732  0x000029c6 call  0x00002af5 
+ 00014733  0x000029c7 call  0x0000264e 
+ 00014734  0x000029c8 nrtn  0x0000002d 
+ 00014735  0x000029ca fetch  0x00000001 , 0x00000002 
+ 00014736  0x000029cb pincrease  0x00000001 
+ 00014737  0x000029cc store  0x00000001 , 0x00000002 
+ 00014738  0x000029cd fetch  0x00000002 , 0x00004824 
+ 00014739  0x000029ce call  0x00007d79 
+ 00014740  0x000029cf branch  0x000025bc 
+ 00014741  0x000029d2 call  0x000039a1 
+ 00014742  0x000029d3 rtn  0x00000028 
+ 00014743  0x000029d5 call  0x0000398b 
+ 00014744  0x000029d6 call  0x00002018 
+ 00014745  0x000029d7 fetcht  0x00000002 , 0x00004344 
+ 00014746  0x000029d8 arg  0x0000000a , 0x00000007 
+ 00014747  0x000029d9 call  0x000020dc 
+ 00014748  0x000029da rtn  0x00000028 
+ 00014749  0x000029db arg  0x0000000d , 0x00000007 
+ 00014750  0x000029dc call  0x00007cef 
+ 00014751  0x000029dd nbranch  0x00003997 , 0x00000034 
+ 00014752  0x000029de rtn 
+ 00014753  0x000029e1 fetcht  0x00000002 , 0x00004344 
+ 00014754  0x000029e2 arg  0x00000004 , 0x00000007 
+ 00014755  0x000029e3 call  0x000020dc 
+ 00014756  0x000029e4 rtn  0x00000028 
+ 00014757  0x000029e5 call  0x000039a9 
+ 00014758  0x000029e6 fetch  0x00000002 , 0x00004344 
+ 00014759  0x000029e7 arg  0x0000000d , 0x00000007 
+ 00014760  0x000029e8 branch  0x00007ce1 
+ 00014761  0x000029ec fetch  0x00000001 , 0x0000464a 
+ 00014762  0x000029ed pincrease  0x00000001 
+ 00014763  0x000029ee store  0x00000001 , 0x0000464a 
+ 00014764  0x000029ef store  0x00000001 , 0x00000007 
+ 00014765  0x000029f0 rtnne  0x00000028 
+ 00014766  0x000029f1 jam  0x00000025 , 0x0000464a 
+ 00014767  0x000029f2 jam  0x00000025 , 0x00000007 
+ 00014768  0x000029f3 rtn 
+ 00014769  0x000029f6 fetch  0x00000001 , 0x0000004c 
+ 00014770  0x000029f7 and  0x0000003f , 0x0000000f , 0x0000003f 
+ 00014771  0x000029f8 beq  0x00000000 , 0x000039b6 
+ 00014772  0x000029f9 beq  0x00000002 , 0x000039b6 
+ 00014773  0x000029fa rtn 
+ 00014774  0x000029fd ifetcht  0x00000001 , 0x00000006 
+ 00014775  0x000029fe sub  0x00000002 , 0x00000006 , 0x0000003e 
+ 00014776  0x000029ff rtn  0x00000002 
+ 00014777  0x00002a00 sub  0x00000002 , 0x00000025 , 0x0000003e 
+ 00014778  0x00002a01 nrtn  0x00000002 
+ 00014779  0x00002a02 add  0x00000002 , 0xfffffffa , 0x00000011 
+ 00014780  0x00002a03 add  0x00000006 , 0x00000006 , 0x00000012 
+ 00014781  0x00002a06 ifetcht  0x00000001 , 0x00000012 
+ 00014782  0x00002a07 sub  0x00000002 , 0x00000001 , 0x0000003e 
+ 00014783  0x00002a08 rtn  0x00000002 
+ 00014784  0x00002a09 sub  0x00000002 , 0x0000001e , 0x0000003e 
+ 00014785  0x00002a0a nrtn  0x00000002 
+ 00014786  0x00002a0b copy  0x00000002 , 0x0000003f 
+ 00014787  0x00002a0c rtn  0x00000034 
+ 00014788  0x00002a0d bpatchx  0x000000a2 , 0x00004034 
+ 00014789  0x00002a0e ifetch  0x00000001 , 0x00000006 
+ 00014790  0x00002a0f beq  0x000000ff , 0x000039d1 
+ 00014791  0x00002a10 beq  0x0000002a , 0x00003f7c 
+ 00014792  0x00002a13 add  0x00000002 , 0x00000001 , 0x0000003f 
+ 00014793  0x00002a14 isub  0x00000011 , 0x0000003e 
+ 00014794  0x00002a15 rtn  0x00000002 
+ 00014795  0x00002a16 iadd  0x00000012 , 0x00000012 
+ 00014796  0x00002a17 sub  0x00000002 , 0xffffffff , 0x0000003f 
+ 00014797  0x00002a18 iadd  0x00000011 , 0x00000011 
+ 00014798  0x00002a19 copy  0x00000011 , 0x0000003f 
+ 00014799  0x00002a1a rtn  0x00000034 
+ 00014800  0x00002a1b branch  0x000039bd 
+ 00014801  0x00002a1e jam  0x00000000 , 0x000007aa 
+ 00014802  0x00002a1f branch  0x00003cfa 
+ 00014803  0x00002a23 fetch  0x00000001 , 0x00000000 
+ 00014804  0x00002a24 pincrease  0x00000001 
+ 00014805  0x00002a25 store  0x00000001 , 0x00000000 
+ 00014806  0x00002a27 bpatchx  0x000000a3 , 0x00004034 
+ 00014807  0x00002a28 call  0x000025b8 
+ 00014808  0x00002a29 arg  0x00000027 , 0x00000039 
+ 00014809  0x00002a2a arg  0x00004169 , 0x00000006 
+ 00014810  0x00002a2b arg  0x000007aa , 0x00000005 
+ 00014811  0x00002a2c call  0x00007ccc 
+ 00014812  0x00002a2d jam  0x00000025 , 0x00000007 
+ 00014813  0x00002a2e arg  0x00000708 , 0x0000001b 
+ 00014814  0x00002a2f enable  0x00000010 
+ 00014815  0x00002a30 disable  0x0000002d 
+ 00014816  0x00002a33 call  0x00002af5 
+ 00014817  0x00002a34 call  0x000039f0 
+ 00014818  0x00002a35 random  0x0000003f 
+ 00014819  0x00002a36 arg  0x000001ff , 0x00000002 
+ 00014820  0x00002a37 iand  0x00000002 , 0x0000003f 
+ 00014821  0x00002a38 add  0x0000003f , 0x00000064 , 0x0000003f 
+ 00014822  0x00002a39 call  0x00007c91 
+ 00014823  0x00002a3a fetch  0x00000001 , 0x00000007 
+ 00014824  0x00002a3b pincrease  0x00000001 
+ 00014825  0x00002a3c store  0x00000001 , 0x00000007 
+ 00014826  0x00002a3d bne  0x00000028 , 0x000039e0 
+ 00014827  0x00002a3f arg  0x00000027 , 0x00000039 
+ 00014828  0x00002a40 arg  0x00004169 , 0x00000005 
+ 00014829  0x00002a41 arg  0x000007aa , 0x00000006 
+ 00014830  0x00002a42 call  0x00007ccc 
+ 00014831  0x00002a43 branch  0x000025bc 
+ 00014832  0x00002a46 arg  0x00000002 , 0x00000002 
+ 00014833  0x00002a47 storet  0x00000001 , 0x00004169 
+ 00014834  0x00002a48 fetcht  0x00000001 , 0x0000462a 
+ 00014835  0x00002a49 add  0x00000002 , 0x00000006 , 0x0000003f 
+ 00014836  0x00002a4a store  0x00000001 , 0x0000416a 
+ 00014837  0x00002a4b fetch  0x00000006 , 0x000042db 
+ 00014838  0x00002a4c store  0x00000006 , 0x0000416b 
+ 00014839  0x00002a4d copy  0x00000002 , 0x00000039 
+ 00014840  0x00002a4e arg  0x0000462b , 0x00000006 
+ 00014841  0x00002a4f call  0x00007ccc 
+ 00014842  0x00002a51 branch  0x0000273e 
+ 00014843  0x00002a5d bpatchx  0x000000a4 , 0x00004034 
+ 00014844  0x00002a5e fetcht  0x00000002 , 0x000008f4 
+ 00014845  0x00002a5f fetch  0x00000001 , 0x000008f3 
+ 00014846  0x00002a60 copy  0x00000002 , 0x00000006 
+ 00014847  0x00002a61 arg  0x0000476e , 0x00000011 
+ 00014848  0x00002a62 arg  0x0000477e , 0x00000030 
+ 00014849  0x00002a63 call  0x00003c5a 
+ 00014850  0x00002a64 call  0x00007dbc 
+ 00014851  0x00002a65 copy  0x00000013 , 0x0000003f 
+ 00014852  0x00002a66 iadd  0x00000030 , 0x00000006 
+ 00014853  0x00002a67 fetcht  0x00000004 , 0x0000477e 
+ 00014854  0x00002a68 fetch  0x00000002 , 0x00000910 
+ 00014855  0x00002a69 copy  0x0000003f , 0x00000011 
+ 00014856  0x00002a6b arg  0x0000000a , 0x00000039 
+ 00014857  0x00002a6d ifetch  0x00000004 , 0x00000011 
+ 00014858  0x00002a6e branch  0x00003a16 , 0x00000034 
+ 00014859  0x00002a6f isub  0x00000002 , 0x0000003e 
+ 00014860  0x00002a70 rtn  0x00000005 
+ 00014861  0x00002a71 increase  0x00000004 , 0x00000011 
+ 00014862  0x00002a72 loop  0x00003a09 
+ 00014863  0x00002a73 fetch  0x00000002 , 0x00000910 
+ 00014864  0x00002a74 copy  0x0000003f , 0x00000005 
+ 00014865  0x00002a75 add  0x0000003f , 0x00000004 , 0x00000006 
+ 00014866  0x00002a78 arg  0x00000024 , 0x00000039 
+ 00014867  0x00002a79 call  0x00007ccc 
+ 00014868  0x00002a7a istoret  0x00000004 , 0x00000005 
+ 00014869  0x00002a7b branch  0x00007dba 
+ 00014870  0x00002a7d istoret  0x00000004 , 0x00000011 
+ 00014871  0x00002a7e branch  0x00007dba 
+ 00014872  0x00002a81 fetch  0x00000001 , 0x00004857 
+ 00014873  0x00002a82 beq  0x00000001 , 0x00003a43 
+ 00014874  0x00002a84 call  0x00003a21 
+ 00014875  0x00002a85 call  0x00003a25 
+ 00014876  0x00002a86 call  0x00003a2c 
+ 00014877  0x00002a87 call  0x00003a30 
+ 00014878  0x00002a88 call  0x00003a34 
+ 00014879  0x00002a89 call  0x00003a35 
+ 00014880  0x00002a8a branch  0x00003a39 
+ 00014881  0x00002a8d arg  0x0000001a , 0x00000002 
+ 00014882  0x00002a8e arg  0x0000480a , 0x00000011 
+ 00014883  0x00002a8f setarg  0x0001ffa0 
+ 00014884  0x00002a90 branch  0x00006c4d 
+ 00014885  0x00002a92 arg  0x00000013 , 0x00000002 
+ 00014886  0x00002a93 arg  0x000047ef , 0x00000011 
+ 00014887  0x00002a94 setarg  0x0001e000 
+ 00014888  0x00002a95 call  0x00006c4d 
+ 00014889  0x00002a96 fetch  0x00000001 , 0x000047ff 
+ 00014890  0x00002a97 store  0x00000001 , 0x00004871 
+ 00014891  0x00002a98 rtn 
+ 00014892  0x00002a9a arg  0x00000010 , 0x00000002 
+ 00014893  0x00002a9b arg  0x00004959 , 0x00000011 
+ 00014894  0x00002a9c setarg  0x0001e100 
+ 00014895  0x00002a9d branch  0x00006c4d 
+ 00014896  0x00002a9f arg  0x00000010 , 0x00000002 
+ 00014897  0x00002aa0 arg  0x000046a0 , 0x00000011 
+ 00014898  0x00002aa1 setarg  0x0001e200 
+ 00014899  0x00002aa2 branch  0x00006c4d 
+ 00014900  0x00002aa4 rtn 
+ 00014901  0x00002aa6 arg  0x00000003 , 0x00000002 
+ 00014902  0x00002aa7 arg  0x00004992 , 0x00000011 
+ 00014903  0x00002aa8 setarg  0x0001f000 
+ 00014904  0x00002aa9 branch  0x00006c4d 
+ 00014905  0x00002aab fetch  0x00000002 , 0x0000484c 
+ 00014906  0x00002aac rtnbit1  0x00000002 
+ 00014907  0x00002aad arg  0x00000040 , 0x00000002 
+ 00014908  0x00002aae arg  0x000006a1 , 0x00000011 
+ 00014909  0x00002aaf setarg  0x0001e400 
+ 00014910  0x00002ab0 call  0x00006c4d 
+ 00014911  0x00002ab1 call  0x00003e3e 
+ 00014912  0x00002ab2 arg  0x000006a1 , 0x00000006 
+ 00014913  0x00002ab3 add  0x00000011 , 0x00000006 , 0x00000011 
+ 00014914  0x00002ab4 branch  0x00003a6b 
+ 00014915  0x00002ab8 call  0x00003a4a 
+ 00014916  0x00002ab9 call  0x00003a4e 
+ 00014917  0x00002aba call  0x00003a55 
+ 00014918  0x00002abb call  0x00003a59 
+ 00014919  0x00002abc call  0x00003a5d 
+ 00014920  0x00002abd call  0x00003a5e 
+ 00014921  0x00002abe branch  0x00003a62 
+ 00014922  0x00002ac1 arg  0x0000001a , 0x00000002 
+ 00014923  0x00002ac2 arg  0x0000480a , 0x00000011 
+ 00014924  0x00002ac3 arg  0x00000000 , 0x00000012 
+ 00014925  0x00002ac4 branch  0x00006ce1 
+ 00014926  0x00002ac7 arg  0x00000013 , 0x00000002 
+ 00014927  0x00002ac8 arg  0x000047ef , 0x00000011 
+ 00014928  0x00002ac9 arg  0x0000001a , 0x00000012 
+ 00014929  0x00002aca call  0x00006ce1 
+ 00014930  0x00002acb fetch  0x00000001 , 0x000047ff 
+ 00014931  0x00002acc store  0x00000001 , 0x00004871 
+ 00014932  0x00002acd rtn 
+ 00014933  0x00002ad0 arg  0x00000010 , 0x00000002 
+ 00014934  0x00002ad1 arg  0x00004959 , 0x00000011 
+ 00014935  0x00002ad2 arg  0x0000002d , 0x00000012 
+ 00014936  0x00002ad3 branch  0x00006ce1 
+ 00014937  0x00002ad6 arg  0x00000010 , 0x00000002 
+ 00014938  0x00002ad7 arg  0x000046a0 , 0x00000011 
+ 00014939  0x00002ad8 arg  0x0000003d , 0x00000012 
+ 00014940  0x00002ad9 branch  0x00006ce1 
+ 00014941  0x00002adc rtn 
+ 00014942  0x00002adf arg  0x00000003 , 0x00000002 
+ 00014943  0x00002ae0 arg  0x00004992 , 0x00000011 
+ 00014944  0x00002ae1 arg  0x0000004e , 0x00000012 
+ 00014945  0x00002ae2 branch  0x00006ce1 
+ 00014946  0x00002ae5 fetch  0x00000002 , 0x0000484c 
+ 00014947  0x00002ae6 rtnbit1  0x00000002 
+ 00014948  0x00002ae7 arg  0x00000040 , 0x00000002 
+ 00014949  0x00002ae8 arg  0x000006a1 , 0x00000011 
+ 00014950  0x00002ae9 arg  0x00000051 , 0x00000012 
+ 00014951  0x00002aea call  0x00006ce1 
+ 00014952  0x00002aeb call  0x00003e3e 
+ 00014953  0x00002aec arg  0x000006a1 , 0x00000006 
+ 00014954  0x00002aed add  0x00000011 , 0x00000006 , 0x00000011 
+ 00014955  0x00002aef copy  0x00000011 , 0x00000005 
+ 00014956  0x00002af0 call  0x00007c8f 
+ 00014957  0x00002af1 copy  0x00000012 , 0x0000003f 
+ 00014958  0x00002af2 iadd  0x00000011 , 0x00000011 
+ 00014959  0x00002af3 loop  0x00003a6b 
+ 00014960  0x00002af4 rtn 
+ 00014961  0x00002af7 fetch  0x00000001 , 0x00004857 
+ 00014962  0x00002af8 beq  0x00000001 , 0x00003a83 
+ 00014963  0x00002af9 beq  0x00000002 , 0x00003a74 
+ 00014964  0x00002afb call  0x00003a77 
+ 00014965  0x00002afc call  0x00003a7b 
+ 00014966  0x00002afd branch  0x00003a7f 
+ 00014967  0x00002aff arg  0x00000013 , 0x00000002 
+ 00014968  0x00002b00 arg  0x000047ef , 0x00000011 
+ 00014969  0x00002b01 setarg  0x0001e000 
+ 00014970  0x00002b02 branch  0x00006c33 
+ 00014971  0x00002b04 arg  0x00000010 , 0x00000002 
+ 00014972  0x00002b05 arg  0x00004959 , 0x00000011 
+ 00014973  0x00002b06 setarg  0x0001e100 
+ 00014974  0x00002b07 branch  0x00006c33 
+ 00014975  0x00002b09 arg  0x00000010 , 0x00000002 
+ 00014976  0x00002b0a arg  0x000046a0 , 0x00000011 
+ 00014977  0x00002b0b setarg  0x0001e200 
+ 00014978  0x00002b0c branch  0x00006c33 
+ 00014979  0x00002b0f call  0x00003a86 
+ 00014980  0x00002b10 call  0x00003a8a 
+ 00014981  0x00002b11 branch  0x00003a8e 
+ 00014982  0x00002b14 arg  0x00000013 , 0x00000002 
+ 00014983  0x00002b15 arg  0x000047ef , 0x00000011 
+ 00014984  0x00002b16 arg  0x0000001a , 0x00000012 
+ 00014985  0x00002b17 branch  0x00006cd3 
+ 00014986  0x00002b1a arg  0x00000010 , 0x00000002 
+ 00014987  0x00002b1b arg  0x00004959 , 0x00000011 
+ 00014988  0x00002b1c arg  0x0000002d , 0x00000012 
+ 00014989  0x00002b1d branch  0x00006cd3 
+ 00014990  0x00002b20 arg  0x00000010 , 0x00000002 
+ 00014991  0x00002b21 arg  0x000046a0 , 0x00000011 
+ 00014992  0x00002b22 arg  0x0000003d , 0x00000012 
+ 00014993  0x00002b23 branch  0x00006cd3 
+ 00014994  0x00002b26 fetch  0x00000003 , 0x00004992 
+ 00014995  0x00002b27 fetcht  0x00000003 , 0x00004c24 
+ 00014996  0x00002b28 isub  0x00000002 , 0x0000003e 
+ 00014997  0x00002b29 nrtn  0x00000002 
+ 00014998  0x00002b2a add  0x0000003f , 0x00000080 , 0x0000003f 
+ 00014999  0x00002b2b store  0x00000003 , 0x00004c24 
+ 00015000  0x00002b2c fetch  0x00000001 , 0x00004857 
+ 00015001  0x00002b2d beq  0x00000001 , 0x00003a9e 
+ 00015002  0x00002b2f arg  0x00000003 , 0x00000002 
+ 00015003  0x00002b30 arg  0x00004c24 , 0x00000011 
+ 00015004  0x00002b31 setarg  0x0001f000 
+ 00015005  0x00002b32 branch  0x00006c33 
+ 00015006  0x00002b34 arg  0x00000003 , 0x00000002 
+ 00015007  0x00002b35 arg  0x00004c24 , 0x00000011 
+ 00015008  0x00002b36 arg  0x0000004e , 0x00000012 
+ 00015009  0x00002b37 branch  0x00006cd3 
+ 00015010  0x00002b3a call  0x00003aad 
+ 00015011  0x00002b3b fetch  0x00000001 , 0x00004857 
+ 00015012  0x00002b3c beq  0x00000002 , 0x00003aa9 
+ 00015013  0x00002b3d arg  0x00000040 , 0x00000002 
+ 00015014  0x00002b3e arg  0x000006a1 , 0x00000011 
+ 00015015  0x00002b3f arg  0x00000051 , 0x00000012 
+ 00015016  0x00002b40 branch  0x00006cd3 
+ 00015017  0x00002b42 arg  0x00000040 , 0x00000002 
+ 00015018  0x00002b43 arg  0x000006a1 , 0x00000011 
+ 00015019  0x00002b44 setarg  0x0001e400 
+ 00015020  0x00002b45 branch  0x00006c33 
+ 00015021  0x00002b48 call  0x00003e3e 
+ 00015022  0x00002b49 arg  0x000006a1 , 0x00000005 
+ 00015023  0x00002b4a add  0x00000011 , 0x00000006 , 0x00000011 
+ 00015024  0x00002b4c copy  0x00000011 , 0x00000006 
+ 00015025  0x00002b4d call  0x00007c8f 
+ 00015026  0x00002b4e copy  0x00000012 , 0x0000003f 
+ 00015027  0x00002b4f iadd  0x00000011 , 0x00000011 
+ 00015028  0x00002b50 loop  0x00003ab0 
+ 00015029  0x00002b51 rtn 
+ 00015030  0x00002b54 fetch  0x00000001 , 0x00004857 
+ 00015031  0x00002b55 beq  0x00000001 , 0x00003abb 
+ 00015032  0x00002b57 setarg  0x0001e000 
+ 00015033  0x00002b58 store  0x00000003 , 0x00004419 
+ 00015034  0x00002b59 branch  0x00006bfa 
+ 00015035  0x00002b5b rtn 
+ 00015036  0x00002b5e fetch  0x00000001 , 0x00004857 
+ 00015037  0x00002b5f rtnne  0x00000002 
+ 00015038  0x00002b60 setarg  0x0001d000 
+ 00015039  0x00002b61 arg  0x00004503 , 0x00000011 
+ 00015040  0x00002b62 arg  0x0000000d , 0x00000002 
+ 00015041  0x00002b63 mul32  0x00000002 , 0x00000012 , 0x00000002 
+ 00015042  0x00002b64 branch  0x00006c33 
+ 00015043  0x00002b67 fetch  0x00000001 , 0x00004857 
+ 00015044  0x00002b68 rtnne  0x00000002 
+ 00015045  0x00002b69 arg  0x00004503 , 0x00000011 
+ 00015046  0x00002b6a arg  0x0000000d , 0x00000002 
+ 00015047  0x00002b6b mul32  0x00000002 , 0x00000012 , 0x00000002 
+ 00015048  0x00002b6c setarg  0x0001d000 
+ 00015049  0x00002b6d branch  0x00006c4d 
+ 00015050  0x00002b74 call  0x00004073 
+ 00015051  0x00002b75 branch  0x00003ad2 
+ 00015052  0x00002b7a call  0x00003b23 
+ 00015053  0x00002b7b branch  0x00003b19 
+ 00015054  0x00002b7f jam  0x00000001 , 0x0000464b 
+ 00015055  0x00002b80 rtn 
+ 00015056  0x00002b84 jam  0x00000000 , 0x0000464b 
+ 00015057  0x00002b85 rtn 
+ 00015058  0x00002b89 arg  0x00003ad6 , 0x00000012 
+ 00015059  0x00002b8a arg  0x0000001d , 0x00000011 
+ 00015060  0x00002b8b arg  0x0000000e , 0x00000007 
+ 00015061  0x00002b8c branch  0x00003b0e 
+ 00015062  0x00002b93 fetch  0x00000001 , 0x000047e4 
+ 00015063  0x00002b94 beq  0x00000001 , 0x00003afd 
+ 00015064  0x00002b95 beq  0x00000003 , 0x00003adc 
+ 00015065  0x00002b96 beq  0x00000002 , 0x00003b0d 
+ 00015066  0x00002b97 beq  0x00000000 , 0x00003ade 
+ 00015067  0x00002b98 branch  0x00003ade 
+ 00015068  0x00002b9b jam  0x00000000 , 0x00004388 
+ 00015069  0x00002b9c branch  0x00003ad0 
+ 00015070  0x00002b9f call  0x0000396c 
+ 00015071  0x00002ba0 arg  0x00000787 , 0x00000011 
+ 00015072  0x00002ba1 call  0x000078dc 
+ 00015073  0x00002ba2 nrtn  0x00000028 
+ 00015074  0x00002ba3 fetch  0x00000001 , 0x000049b7 
+ 00015075  0x00002ba4 bbit1  0x00000002 , 0x00003aef 
+ 00015076  0x00002ba5 fetch  0x00000001 , 0x00000787 
+ 00015077  0x00002ba6 pincrease  0xffffffff 
+ 00015078  0x00002ba7 istore  0x00000001 , 0x00000012 
+ 00015079  0x00002ba8 and  0x0000003f , 0x0000007f , 0x0000003f 
+ 00015080  0x00002ba9 call  0x00003af5 , 0x00000034 
+ 00015081  0x00002baa fetch  0x00000001 , 0x000049b7 
+ 00015082  0x00002bab rtnbit0  0x00000000 
+ 00015083  0x00002bac arg  0x0000462a , 0x00000005 
+ 00015084  0x00002bad arg  0x00000789 , 0x00000006 
+ 00015085  0x00002bae call  0x00007c8d 
+ 00015086  0x00002baf branch  0x000039d3 
+ 00015087  0x00002bb2 arg  0x00000787 , 0x00000011 
+ 00015088  0x00002bb3 call  0x000078ca 
+ 00015089  0x00002bb4 call  0x000078fa 
+ 00015090  0x00002bb5 nrtn  0x00000034 
+ 00015091  0x00002bb7 call  0x00003afb 
+ 00015092  0x00002bb8 branch  0x00003ad0 
+ 00015093  0x00002bbc arg  0x00000787 , 0x00000011 
+ 00015094  0x00002bbd call  0x000078ca 
+ 00015095  0x00002bbe call  0x000078fa 
+ 00015096  0x00002bbf nrtn  0x00000034 
+ 00015097  0x00002bc1 jam  0x00000004 , 0x0000464f 
+ 00015098  0x00002bc2 branch  0x00003ad0 
+ 00015099  0x00002bc5 jam  0x00000000 , 0x000049b5 
+ 00015100  0x00002bc6 rtn 
+ 00015101  0x00002bca call  0x00003ce0 
+ 00015102  0x00002bcb call  0x00003cec 
+ 00015103  0x00002bcc call  0x00003b05 
+ 00015104  0x00002bcd nrtn  0x00000005 
+ 00015105  0x00002bce fetch  0x00000001 , 0x000047e4 
+ 00015106  0x00002bcf beq  0x00000003 , 0x00003b09 
+ 00015107  0x00002bd0 beq  0x00000001 , 0x00003b0b 
+ 00015108  0x00002bd1 rtn 
+ 00015109  0x00002bd7 fetch  0x00000001 , 0x0000464e 
+ 00015110  0x00002bd8 add  0x0000003f , 0xffffffff , 0x0000003f 
+ 00015111  0x00002bd9 store  0x00000001 , 0x0000464e 
+ 00015112  0x00002bda rtn 
+ 00015113  0x00002bde jam  0x00000258 , 0x0000464f 
+ 00015114  0x00002bdf branch  0x00003ad0 
+ 00015115  0x00002be3 jam  0x00000006 , 0x0000464f 
+ 00015116  0x00002be4 branch  0x00003ad0 
+ 00015117  0x00002be8 branch  0x000039d3 
+ 00015118  0x00002beb fetch  0x00000001 , 0x0000464b 
+ 00015119  0x00002bec rtnne  0x00000001 
+ 00015120  0x00002bee random  0x0000003f 
+ 00015121  0x00002bef and  0x0000003f , 0x00000007 , 0x0000003f 
+ 00015122  0x00002bf0 iadd  0x00000011 , 0x00000011 
+ 00015123  0x00002bf5 call  0x00007cef 
+ 00015124  0x00002bf6 nrtn  0x00000034 
+ 00015125  0x00002bf7 copy  0x00000011 , 0x0000003f 
+ 00015126  0x00002bf8 call  0x00007ce1 
+ 00015127  0x00002bf9 copy  0x00000012 , 0x0000003f 
+ 00015128  0x00002bfa branch  0x00007d79 
+ 00015129  0x00002bff arg  0x0000464c , 0x00000013 
+ 00015130  0x00002c00 arg  0x00003b1c , 0x00000012 
+ 00015131  0x00002c01 branch  0x000042e7 
+ 00015132  0x00002c05 fetch  0x00000001 , 0x000047e4 
+ 00015133  0x00002c06 rtnne  0x00000001 
+ 00015134  0x00002c07 fetch  0x00000001 , 0x000047e7 
+ 00015135  0x00002c08 set1  0x00000000 , 0x0000003f 
+ 00015136  0x00002c09 store  0x00000001 , 0x000047e7 
+ 00015137  0x00002c0a jam  0x00000003 , 0x000047e4 
+ 00015138  0x00002c0b branch  0x00003b31 
+ 00015139  0x00002c11 arg  0x0000464f , 0x00000013 
+ 00015140  0x00002c12 arg  0x00003b26 , 0x00000012 
+ 00015141  0x00002c13 branch  0x000042e0 
+ 00015142  0x00002c19 fetch  0x00000001 , 0x000047e4 
+ 00015143  0x00002c1b beq  0x00000001 , 0x00003b2f 
+ 00015144  0x00002c1c beq  0x00000000 , 0x00003afb 
+ 00015145  0x00002c1d rtn 
+ 00015146  0x00002c20 call  0x00003e5a 
+ 00015147  0x00002c21 call  0x0000420b 
+ 00015148  0x00002c22 jam  0x00000000 , 0x0000464f 
+ 00015149  0x00002c23 call  0x00003ad0 
+ 00015150  0x00002c24 branch  0x00003afb 
+ 00015151  0x00002c28 jam  0x00000006 , 0x0000464e 
+ 00015152  0x00002c29 branch  0x00003ace 
+ 00015153  0x00002c2d jam  0x00000006 , 0x0000464e 
+ 00015154  0x00002c2e branch  0x00003ace 
+ 00015155  0x00002c31 arg  0x00003b37 , 0x00000012 
+ 00015156  0x00002c32 arg  0x00000020 , 0x00000011 
+ 00015157  0x00002c33 arg  0x0000000f , 0x00000007 
+ 00015158  0x00002c34 branch  0x00003b10 
+ 00015159  0x00002c37 fetch  0x00000001 , 0x000049b5 
+ 00015160  0x00002c38 nrtn  0x00000034 
+ 00015161  0x00002c39 call  0x0000406e 
+ 00015162  0x00002c3a arg  0x00000787 , 0x00000011 
+ 00015163  0x00002c3b call  0x000078dc 
+ 00015164  0x00002c3c nrtn  0x00000028 
+ 00015165  0x00002c3d fetch  0x00000001 , 0x00000787 
+ 00015166  0x00002c3e pincrease  0xffffffff 
+ 00015167  0x00002c3f istore  0x00000001 , 0x00000012 
+ 00015168  0x00002c40 call  0x000078ca , 0x00000034 
+ 00015169  0x00002c41 arg  0x0000462a , 0x00000005 
+ 00015170  0x00002c42 arg  0x00000789 , 0x00000006 
+ 00015171  0x00002c43 call  0x00007c8d 
+ 00015172  0x00002c44 branch  0x000039d3 
+ 00015173  0x00002c4c call  0x00003b4b 
+ 00015174  0x00002c4d call  0x00003b53 
+ 00015175  0x00002c4e call  0x00003b59 
+ 00015176  0x00002c4f call  0x00003b5f 
+ 00015177  0x00002c50 call  0x00003b67 
+ 00015178  0x00002c51 branch  0x00003b6b 
+ 00015179  0x00002c57 call  0x00003b78 
+ 00015180  0x00002c58 arg  0x000046c0 , 0x00000006 
+ 00015181  0x00002c59 arg  0x0000000f , 0x00000039 
+ 00015182  0x00002c5a call  0x00003be7 
+ 00015183  0x00002c5b call  0x00003c01 
+ 00015184  0x00002c5c arg  0x000001bd , 0x00000006 
+ 00015185  0x00002c5d arg  0x000046b0 , 0x00000005 
+ 00015186  0x00002c5e branch  0x00007c8f 
+ 00015187  0x00002c64 call  0x00003b7b 
+ 00015188  0x00002c65 call  0x00003b75 
+ 00015189  0x00002c66 call  0x00003c01 
+ 00015190  0x00002c67 arg  0x000001bd , 0x00000006 
+ 00015191  0x00002c68 arg  0x00004660 , 0x00000005 
+ 00015192  0x00002c69 branch  0x00007c8f 
+ 00015193  0x00002c6e call  0x00003b7b 
+ 00015194  0x00002c6f call  0x00003b78 
+ 00015195  0x00002c70 call  0x00003c01 
+ 00015196  0x00002c71 arg  0x000001bd , 0x00000006 
+ 00015197  0x00002c72 arg  0x00004690 , 0x00000005 
+ 00015198  0x00002c73 branch  0x00007c8f 
+ 00015199  0x00002c79 fetch  0x00000008 , 0x00004680 
+ 00015200  0x00002c7a store  0x00000008 , 0x00004658 
+ 00015201  0x00002c7b fetch  0x00000008 , 0x00004688 
+ 00015202  0x00002c7c store  0x00000008 , 0x00004650 
+ 00015203  0x00002c7e arg  0x00004650 , 0x00000006 
+ 00015204  0x00002c7f arg  0x000046b0 , 0x00000011 
+ 00015205  0x00002c80 arg  0x00004670 , 0x00000030 
+ 00015206  0x00002c81 branch  0x00003c48 
+ 00015207  0x00002c88 arg  0x00004680 , 0x00000006 
+ 00015208  0x00002c89 arg  0x000046b0 , 0x00000011 
+ 00015209  0x00002c8a arg  0x00004680 , 0x00000030 
+ 00015210  0x00002c8b branch  0x00003c48 
+ 00015211  0x00002c92 arg  0x00004670 , 0x00000006 
+ 00015212  0x00002c93 arg  0x00000010 , 0x00000039 
+ 00015213  0x00002c94 call  0x00003be4 
+ 00015214  0x00002c95 arg  0x000046d9 , 0x00000006 
+ 00015215  0x00002c96 arg  0x00000009 , 0x00000039 
+ 00015216  0x00002c97 call  0x00003be7 
+ 00015217  0x00002c98 call  0x00003c01 
+ 00015218  0x00002c99 arg  0x000001bd , 0x00000006 
+ 00015219  0x00002c9a arg  0x000046a0 , 0x00000005 
+ 00015220  0x00002c9b branch  0x00007c8f 
+ 00015221  0x00002c9f call  0x00003b79 
+ 00015222  0x00002ca1 arg  0x00004680 , 0x00000006 
+ 00015223  0x00002ca2 branch  0x00003be3 
+ 00015224  0x00002ca5 call  0x00003b76 
+ 00015225  0x00002ca7 arg  0x00004688 , 0x00000006 
+ 00015226  0x00002ca8 branch  0x00003be3 
+ 00015227  0x00002cac arg  0x0000480a , 0x00000006 
+ 00015228  0x00002cad arg  0x00000004 , 0x00000039 
+ 00015229  0x00002cae call  0x00003bea 
+ 00015230  0x00002caf arg  0x0000480e , 0x00000006 
+ 00015231  0x00002cb0 arg  0x00000006 , 0x00000039 
+ 00015232  0x00002cb1 call  0x00003bea 
+ 00015233  0x00002cb2 arg  0x00004814 , 0x00000006 
+ 00015234  0x00002cb3 arg  0x00000010 , 0x00000039 
+ 00015235  0x00002cb4 call  0x00003be4 
+ 00015236  0x00002cb5 call  0x00003bf1 
+ 00015237  0x00002cb6 branch  0x00003bec 
+ 00015238  0x00002cbc call  0x00003b92 
+ 00015239  0x00002cbf arg  0x000047ec , 0x00000011 
+ 00015240  0x00002cc0 arg  0x000001bd , 0x00000012 
+ 00015241  0x00002cc1 arg  0x0000000b , 0x00000039 
+ 00015242  0x00002cc3 ifetch  0x00000002 , 0x00000011 
+ 00015243  0x00002cc4 ifetcht  0x00000002 , 0x00000012 
+ 00015244  0x00002cc5 ixor  0x00000002 , 0x0000003f 
+ 00015245  0x00002cc6 istore  0x00000002 , 0x00000011 
+ 00015246  0x00002cc7 increase  0x00000002 , 0x00000011 
+ 00015247  0x00002cc8 increase  0x00000002 , 0x00000012 
+ 00015248  0x00002cc9 loop  0x00003b8a 
+ 00015249  0x00002cca rtn 
+ 00015250  0x00002cd1 arg  0x00004670 , 0x00000006 
+ 00015251  0x00002cd2 arg  0x00000010 , 0x00000039 
+ 00015252  0x00002cd3 call  0x00003be4 
+ 00015253  0x00002cd4 arg  0x000046cf , 0x00000006 
+ 00015254  0x00002cd5 arg  0x0000000a , 0x00000039 
+ 00015255  0x00002cd6 call  0x00003be7 
+ 00015256  0x00002cd7 branch  0x00003c01 
+ 00015257  0x00002cdc arg  0x000047ef , 0x00000006 
+ 00015258  0x00002cdd arg  0x0000470d , 0x00000005 
+ 00015259  0x00002cde call  0x00007c8f 
+ 00015260  0x00002ce4 arg  0x0000470d , 0x00000006 
+ 00015261  0x00002ce5 arg  0x0000471d , 0x00000011 
+ 00015262  0x00002ce6 arg  0x0000472d , 0x00000030 
+ 00015263  0x00002ce7 call  0x00003c4a 
+ 00015264  0x00002ce9 arg  0x0000473d , 0x00000030 
+ 00015265  0x00002cea arg  0x00000001 , 0x00000012 
+ 00015266  0x00002ceb setarg  0x00000000 
+ 00015267  0x00002cec call  0x00003c4c 
+ 00015268  0x00002ced fetch  0x00000001 , 0x0000474c 
+ 00015269  0x00002cee and  0x0000003f , 0x0000007f , 0x0000003f 
+ 00015270  0x00002cef store  0x00000001 , 0x0000474d 
+ 00015271  0x00002cf1 arg  0x0000475e , 0x00000030 
+ 00015272  0x00002cf2 arg  0x00000002 , 0x00000012 
+ 00015273  0x00002cf3 setarg  0x00000010 
+ 00015274  0x00002cf4 arg  0x0000473d , 0x00000011 
+ 00015275  0x00002cf5 call  0x00003c4c 
+ 00015276  0x00002cf7 arg  0x0000474e , 0x00000030 
+ 00015277  0x00002cf8 arg  0x00000003 , 0x00000012 
+ 00015278  0x00002cf9 setarg  0x00000010 
+ 00015279  0x00002cfa arg  0x0000475e , 0x00000011 
+ 00015280  0x00002cfb branch  0x00003c4c 
+ 00015281  0x00002cff arg  0x00004959 , 0x00000006 
+ 00015282  0x00002d00 arg  0x0000476e , 0x00000011 
+ 00015283  0x00002d01 arg  0x0000477e , 0x00000030 
+ 00015284  0x00002d02 call  0x00003c4a 
+ 00015285  0x00002d03 arg  0x0000478e , 0x00000006 
+ 00015286  0x00002d04 arg  0x0000477e , 0x00000011 
+ 00015287  0x00002d05 arg  0x0000479e , 0x00000030 
+ 00015288  0x00002d06 setarg  0x00000004 
+ 00015289  0x00002d07 call  0x00003c5a 
+ 00015290  0x00002d08 fetch  0x00000001 , 0x000047ad 
+ 00015291  0x00002d09 and  0x0000003f , 0x0000003f , 0x0000003f 
+ 00015292  0x00002d0a set1  0x00000006 , 0x0000003f 
+ 00015293  0x00002d0b store  0x00000001 , 0x000047ae 
+ 00015294  0x00002d0c rtn 
+ 00015295  0x00002d10 arg  0x000047ef , 0x00000006 
+ 00015296  0x00002d11 arg  0x000047af , 0x00000011 
+ 00015297  0x00002d12 arg  0x000047bf , 0x00000030 
+ 00015298  0x00002d13 call  0x00003c4a 
+ 00015299  0x00002d14 arg  0x000047cf , 0x00000006 
+ 00015300  0x00002d15 arg  0x000047bf , 0x00000011 
+ 00015301  0x00002d16 arg  0x000047d4 , 0x00000030 
+ 00015302  0x00002d17 setarg  0x00000005 
+ 00015303  0x00002d18 call  0x00003c5a 
+ 00015304  0x00002d1c fetch  0x00000002 , 0x000044e9 
+ 00015305  0x00002d1d rtnbit1  0x00000009 
+ 00015306  0x00002d1e jam  0x00000001 , 0x00004388 
+ 00015307  0x00002d1f rtn 
+ 00015308  0x00002d24 arg  0x00004999 , 0x00000011 
+ 00015309  0x00002d25 fetch  0x00000007 , 0x0000499f 
+ 00015310  0x00002d26 branch  0x00003bd1 
+ 00015311  0x00002d28 arg  0x00000923 , 0x00000011 
+ 00015312  0x00002d29 fetch  0x00000007 , 0x00000929 
+ 00015313  0x00002d2b store  0x00000007 , 0x000008da 
+ 00015314  0x00002d2c setarg  0x00000000 
+ 00015315  0x00002d2d store  0x00000005 , 0x000008d1 
+ 00015316  0x00002d2e call  0x00003bda 
+ 00015317  0x00002d2f fetch  0x00000006 , 0x000008e1 
+ 00015318  0x00002d30 ifetcht  0x00000006 , 0x00000011 
+ 00015319  0x00002d31 ixor  0x00000002 , 0x0000003f 
+ 00015320  0x00002d32 istore  0x00000006 , 0x00000011 
+ 00015321  0x00002d33 rtn 
+ 00015322  0x00002d37 fetch  0x00000004 , 0x0000486e 
+ 00015323  0x00002d38 store  0x00000004 , 0x000008d6 
+ 00015324  0x00002d3b arg  0x0000474e , 0x00000006 
+ 00015325  0x00002d3c call  0x0000735f 
+ 00015326  0x00002d3d arg  0x000008d1 , 0x00000006 
+ 00015327  0x00002d3e call  0x00007361 
+ 00015328  0x00002d3f call  0x000072d1 
+ 00015329  0x00002d40 arg  0x000008e1 , 0x00000005 
+ 00015330  0x00002d41 branch  0x00007375 
+ 00015331  0x00002d49 arg  0x00000008 , 0x00000039 
+ 00015332  0x00002d4f call  0x00003bf1 
+ 00015333  0x00002d50 call  0x00003c39 
+ 00015334  0x00002d51 branch  0x00003bee 
+ 00015335  0x00002d53 call  0x00003bf1 
+ 00015336  0x00002d54 call  0x00007cda 
+ 00015337  0x00002d55 branch  0x00003bee 
+ 00015338  0x00002d57 call  0x00003bf1 
+ 00015339  0x00002d58 call  0x00003c39 
+ 00015340  0x00002d59 setarg  0x0000002c 
+ 00015341  0x00002d5a istore  0x00000001 , 0x00000005 
+ 00015342  0x00002d5c copy  0x00000005 , 0x0000003f 
+ 00015343  0x00002d5d store  0x00000002 , 0x000046f3 
+ 00015344  0x00002d5e rtn 
+ 00015345  0x00002d60 copy  0x00000006 , 0x00000002 
+ 00015346  0x00002d61 copy  0x00000039 , 0x00000011 
+ 00015347  0x00002d62 fetch  0x00000002 , 0x000046f3 
+ 00015348  0x00002d63 copy  0x0000003f , 0x00000005 
+ 00015349  0x00002d64 fetch  0x00000001 , 0x000046e2 
+ 00015350  0x00002d65 call  0x00003bfa , 0x00000034 
+ 00015351  0x00002d66 copy  0x00000002 , 0x00000006 
+ 00015352  0x00002d67 copy  0x00000011 , 0x00000039 
+ 00015353  0x00002d68 rtn 
+ 00015354  0x00002d6a jam  0x00000001 , 0x000046e2 
+ 00015355  0x00002d6b call  0x00003bfe 
+ 00015356  0x00002d6c arg  0x000007d1 , 0x00000005 
+ 00015357  0x00002d6d rtn 
+ 00015358  0x00002d70 arg  0x00000100 , 0x00000039 
+ 00015359  0x00002d71 arg  0x000007d1 , 0x00000005 
+ 00015360  0x00002d72 branch  0x00007ca3 
+ 00015361  0x00002d77 call  0x00003c17 
+ 00015362  0x00002d78 call  0x00003c32 
+ 00015363  0x00002d7a setarg  0x000007d1 
+ 00015364  0x00002d7b store  0x00000002 , 0x000046fa 
+ 00015365  0x00002d7c call  0x00004134 
+ 00015366  0x00002d7f fetch  0x00000002 , 0x000046fa 
+ 00015367  0x00002d80 copy  0x0000003f , 0x00000006 
+ 00015368  0x00002d81 arg  0x00000231 , 0x00000005 
+ 00015369  0x00002d82 call  0x00007c81 
+ 00015370  0x00002d83 call  0x0000413b 
+ 00015371  0x00002d84 fetch  0x00000002 , 0x000046fa 
+ 00015372  0x00002d85 pincrease  0x00000040 
+ 00015373  0x00002d86 store  0x00000002 , 0x000046fa 
+ 00015374  0x00002d87 fetch  0x00000001 , 0x000046f7 
+ 00015375  0x00002d88 pincrease  0xffffffff 
+ 00015376  0x00002d89 store  0x00000001 , 0x000046f7 
+ 00015377  0x00002d8a nbranch  0x00003c06 , 0x00000034 
+ 00015378  0x00002d8b call  0x00004176 
+ 00015379  0x00002d8c arg  0x000001bd , 0x00000011 
+ 00015380  0x00002d8d arg  0x00000020 , 0x00000039 
+ 00015381  0x00002d8e call  0x00007cb1 
+ 00015382  0x00002d8f rtn 
+ 00015383  0x00002d93 jam  0x00000000 , 0x000046e2 
+ 00015384  0x00002d94 fetch  0x00000002 , 0x000046f3 
+ 00015385  0x00002d95 copy  0x0000003f , 0x00000005 
+ 00015386  0x00002d96 arg  0x00000080 , 0x00000002 
+ 00015387  0x00002d97 istoret  0x00000001 , 0x00000005 
+ 00015388  0x00002d98 arg  0x000007d1 , 0x00000002 
+ 00015389  0x00002d99 isub  0x00000002 , 0x0000003f 
+ 00015390  0x00002d9a store  0x00000008 , 0x000046e3 
+ 00015391  0x00002d9c lshift3  0x0000003f , 0x00000002 
+ 00015392  0x00002d9d storet  0x00000008 , 0x000046eb 
+ 00015393  0x00002d9e rshift4  0x0000003f , 0x00000013 
+ 00015394  0x00002d9f rshift2  0x00000013 , 0x00000013 
+ 00015395  0x00002da0 and  0x0000003f , 0x0000003f , 0x0000003f 
+ 00015396  0x00002da1 sub  0x0000003f , 0x00000037 , 0x0000003e 
+ 00015397  0x00002da3 ncall  0x00003c30 , 0x00000002 
+ 00015398  0x00002da4 add  0x00000013 , 0x00000001 , 0x0000003f 
+ 00015399  0x00002da5 store  0x00000001 , 0x000046f7 
+ 00015400  0x00002da6 mul32  0x0000003f , 0x00000040 , 0x00000011 
+ 00015401  0x00002da7 lshift4  0x0000003f , 0x00000013 
+ 00015402  0x00002da8 increase  0xffffffff , 0x00000013 
+ 00015403  0x00002da9 setarg  0x000007cd 
+ 00015404  0x00002daa iadd  0x00000011 , 0x00000011 
+ 00015405  0x00002dab fetch  0x00000004 , 0x000046eb 
+ 00015406  0x00002dac istore  0x00000004 , 0x00000011 
+ 00015407  0x00002dad rtn 
+ 00015408  0x00002db2 increase  0x00000001 , 0x00000013 
+ 00015409  0x00002db3 rtn 
+ 00015410  0x00002db6 arg  0x000007d1 , 0x00000011 
+ 00015411  0x00002dbc arg  0x00000004 , 0x00000039 
+ 00015412  0x00002dbd call  0x00007cb1 
+ 00015413  0x00002dbe increase  0x00000002 , 0x00000011 
+ 00015414  0x00002dbf add  0x00000013 , 0xffffffff , 0x00000013 
+ 00015415  0x00002dc0 nbranch  0x00003c33 , 0x00000005 
+ 00015416  0x00002dc1 rtn 
+ 00015417  0x00002dc9 ifetch  0x00000001 , 0x00000006 
+ 00015418  0x00002dca rshift4  0x0000003f , 0x00000002 
+ 00015419  0x00002dcb call  0x00003c42 
+ 00015420  0x00002dcc istoret  0x00000001 , 0x00000005 
+ 00015421  0x00002dcd and  0x0000003f , 0x0000000f , 0x00000002 
+ 00015422  0x00002dce call  0x00003c42 
+ 00015423  0x00002dcf istoret  0x00000001 , 0x00000005 
+ 00015424  0x00002dd0 loop  0x00003c39 
+ 00015425  0x00002dd1 rtn 
+ 00015426  0x00002dd3 sub  0x00000002 , 0x00000009 , 0x0000003e 
+ 00015427  0x00002dd4 branch  0x00003c46 , 0x00000002 
+ 00015428  0x00002dd5 add  0x00000002 , 0x00000057 , 0x00000002 
+ 00015429  0x00002dd6 rtn 
+ 00015430  0x00002dd8 add  0x00000002 , 0x00000030 , 0x00000002 
+ 00015431  0x00002dd9 rtn 
+ 00015432  0x00002ddd setarg  0x00000020 
+ 00015433  0x00002dde branch  0x00003c5a 
+ 00015434  0x00002de1 setarg  0x00000010 
+ 00015435  0x00002de2 branch  0x00003c5a 
+ 00015436  0x00002de8 fetcht  0x00000001 , 0x000046fc 
+ 00015437  0x00002de9 increase  0x00000001 , 0x00000002 
+ 00015438  0x00002dea iadd  0x00000002 , 0x00000002 
+ 00015439  0x00002deb storet  0x00000001 , 0x00000230 
+ 00015440  0x00002dec copy  0x00000011 , 0x00000006 
+ 00015441  0x00002ded copy  0x0000003f , 0x00000039 
+ 00015442  0x00002dee call  0x00007ccc 
+ 00015443  0x00002def fetcht  0x00000001 , 0x000046fc 
+ 00015444  0x00002df0 copy  0x00000002 , 0x00000039 
+ 00015445  0x00002df1 call  0x00007cda 
+ 00015446  0x00002df2 copy  0x00000012 , 0x0000003f 
+ 00015447  0x00002df3 istore  0x00000001 , 0x00000005 
+ 00015448  0x00002df4 arg  0x0000472d , 0x00000011 
+ 00015449  0x00002df5 branch  0x00003c5d 
+ 00015450  0x00002dff store  0x00000001 , 0x00000230 
+ 00015451  0x00002e00 copy  0x0000003f , 0x00000039 
+ 00015452  0x00002e01 call  0x00007ccc 
+ 00015453  0x00002e02 copy  0x00000011 , 0x00000006 
+ 00015454  0x00002e03 arg  0x000006a1 , 0x00000005 
+ 00015455  0x00002e04 call  0x00007c8f 
+ 00015456  0x00002e05 call  0x000071c1 
+ 00015457  0x00002e06 copy  0x00000030 , 0x00000005 
+ 00015458  0x00002e07 call  0x00007375 
+ 00015459  0x00002e08 rtn 
+ 00015460  0x00002e0d fetcht  0x00000001 , 0x000008fe 
+ 00015461  0x00002e0e branch  0x00003c67 
+ 00015462  0x00002e10 force  0x00000001 , 0x00000002 
+ 00015463  0x00002e12 force  0x00000000 , 0x00000038 
+ 00015464  0x00002e13 fetch  0x00000002 , 0x000008f1 
+ 00015465  0x00002e14 copy  0x0000003f , 0x00000006 
+ 00015466  0x00002e15 ifetch  0x00000003 , 0x00000006 
+ 00015467  0x00002e16 lshift8  0x0000003f , 0x0000003f 
+ 00015468  0x00002e17 ior  0x00000002 , 0x0000002f 
+ 00015469  0x00002e18 increase  0x00000001 , 0x00000038 
+ 00015470  0x00002e19 ifetch  0x00000004 , 0x00000006 
+ 00015471  0x00002e1a copy  0x0000003f , 0x0000002f 
+ 00015472  0x00002e1b increase  0x00000001 , 0x00000038 
+ 00015473  0x00002e1c ifetch  0x00000004 , 0x00000006 
+ 00015474  0x00002e1d copy  0x0000003f , 0x0000002f 
+ 00015475  0x00002e1e increase  0x00000001 , 0x00000038 
+ 00015476  0x00002e1f byteswap  0x00000011 , 0x0000002f 
+ 00015477  0x00002e20 lshift16  0x0000002f , 0x0000002f 
+ 00015478  0x00002e21 ifetch  0x00000002 , 0x00000006 
+ 00015479  0x00002e22 ior  0x0000002f , 0x0000002f 
+ 00015480  0x00002e23 rtn 
+ 00015481  0x00002e25 fetch  0x00000001 , 0x000008f3 
+ 00015482  0x00002e26 copy  0x0000003f , 0x00000011 
+ 00015483  0x00002e27 call  0x00003c64 
+ 00015484  0x00002e28 call  0x000072d1 
+ 00015485  0x00002e29 force  0x0000000c , 0x00000038 
+ 00015486  0x00002e2a deposit  0x0000002f 
+ 00015487  0x00002e2b copy  0x00000011 , 0x00000039 
+ 00015488  0x00002e2c fetcht  0x00000002 , 0x000008f4 
+ 00015489  0x00002e2d copy  0x00000002 , 0x00000006 
+ 00015490  0x00002e2e call  0x00007349 
+ 00015491  0x00002e2f branch  0x0000728c 
+ 00015492  0x00002e31 jam  0x00000019 , 0x000008fe 
+ 00015493  0x00002e32 branch  0x00003c88 
+ 00015494  0x00002e34 jam  0x00000009 , 0x000008fe 
+ 00015495  0x00002e35 branch  0x00003c88 
+ 00015496  0x00002e37 store  0x00000001 , 0x000008f3 
+ 00015497  0x00002e38 storet  0x00000002 , 0x000008f4 
+ 00015498  0x00002e39 bpatchx  0x000000a5 , 0x00004034 
+ 00015499  0x00002e3a call  0x00003c79 
+ 00015500  0x00002e3b force  0x00000008 , 0x00000038 
+ 00015501  0x00002e3c iforce  0x0000002f 
+ 00015502  0x00002e3d force  0x0000000d , 0x00000038 
+ 00015503  0x00002e3e copy  0x0000002f , 0x0000003f 
+ 00015504  0x00002e3f force  0x00000009 , 0x00000038 
+ 00015505  0x00002e40 iforce  0x0000002f 
+ 00015506  0x00002e41 force  0x00000000 , 0x00000011 
+ 00015507  0x00002e42 copy  0x00000002 , 0x00000013 
+ 00015508  0x00002e43 call  0x00003c66 
+ 00015509  0x00002e44 call  0x000072d7 
+ 00015510  0x00002e45 call  0x00003cc7 
+ 00015511  0x00002e46 storet  0x00000008 , 0x000008f6 
+ 00015512  0x00002e47 fetch  0x00000001 , 0x000008f3 
+ 00015513  0x00002e48 copy  0x0000003f , 0x00000012 
+ 00015514  0x00002e49 call  0x00003ccf 
+ 00015515  0x00002e4a fetcht  0x00000001 , 0x000008f3 
+ 00015516  0x00002e4b fetch  0x00000002 , 0x000008f4 
+ 00015517  0x00002e4c iadd  0x00000002 , 0x00000011 
+ 00015518  0x00002e4d fetcht  0x00000008 , 0x000008f6 
+ 00015519  0x00002e4e istoret  0x00000004 , 0x00000011 
+ 00015520  0x00002e4f fetch  0x00000001 , 0x000008fe 
+ 00015521  0x00002e50 sub  0x0000003f , 0x00000009 , 0x0000003f 
+ 00015522  0x00002e51 rtn  0x00000034 
+ 00015523  0x00002e52 istoret  0x00000008 , 0x00000011 
+ 00015524  0x00002e53 rtn 
+ 00015525  0x00002e55 jam  0x00000019 , 0x000008fe 
+ 00015526  0x00002e56 branch  0x00003ca9 
+ 00015527  0x00002e58 jam  0x00000009 , 0x000008fe 
+ 00015528  0x00002e59 branch  0x00003ca9 
+ 00015529  0x00002e5c store  0x00000001 , 0x000008f3 
+ 00015530  0x00002e5d storet  0x00000002 , 0x000008f4 
+ 00015531  0x00002e5e copy  0x00000002 , 0x00000013 
+ 00015532  0x00002e5f copy  0x0000003f , 0x00000012 
+ 00015533  0x00002e60 iadd  0x00000013 , 0x00000006 
+ 00015534  0x00002e61 bpatchx  0x000000a6 , 0x00004034 
+ 00015535  0x00002e62 ifetch  0x00000008 , 0x00000006 
+ 00015536  0x00002e63 force  0x00000008 , 0x00000038 
+ 00015537  0x00002e64 iforce  0x0000002f 
+ 00015538  0x00002e65 force  0x00000009 , 0x00000038 
+ 00015539  0x00002e66 rshift32  0x0000003f , 0x0000003f 
+ 00015540  0x00002e67 iforce  0x0000002f 
+ 00015541  0x00002e68 force  0x00000000 , 0x00000011 
+ 00015542  0x00002e69 call  0x00003c66 
+ 00015543  0x00002e6a call  0x000072d7 
+ 00015544  0x00002e6b call  0x00003cc7 
+ 00015545  0x00002e6c storet  0x00000008 , 0x000008f6 
+ 00015546  0x00002e6d call  0x00003ccf 
+ 00015547  0x00002e6e call  0x00003c79 
+ 00015548  0x00002e6f call  0x00003cc7 
+ 00015549  0x00002e70 fetch  0x00000001 , 0x000008fe 
+ 00015550  0x00002e71 beq  0x00000019 , 0x00003cc4 
+ 00015551  0x00002e72 storet  0x00000004 , 0x000008fa 
+ 00015552  0x00002e73 fetch  0x00000004 , 0x000008f6 
+ 00015553  0x00002e74 fetcht  0x00000004 , 0x000008fa 
+ 00015554  0x00002e75 isub  0x00000002 , 0x0000003f 
+ 00015555  0x00002e76 rtn 
+ 00015556  0x00002e79 fetch  0x00000008 , 0x000008f6 
+ 00015557  0x00002e7a isub  0x00000002 , 0x0000003f 
+ 00015558  0x00002e7b rtn 
+ 00015559  0x00002e7e force  0x0000000c , 0x00000038 
+ 00015560  0x00002e7f deposit  0x0000002f 
+ 00015561  0x00002e80 force  0x0000000d , 0x00000038 
+ 00015562  0x00002e81 copy  0x0000002f , 0x00000002 
+ 00015563  0x00002e82 lshift16  0x00000002 , 0x00000002 
+ 00015564  0x00002e83 lshift16  0x00000002 , 0x00000002 
+ 00015565  0x00002e84 ior  0x00000002 , 0x00000002 
+ 00015566  0x00002e85 rtn 
+ 00015567  0x00002e87 increase  0x00000001 , 0x00000011 
+ 00015568  0x00002e88 call  0x00003c66 
+ 00015569  0x00002e89 copy  0x00000013 , 0x00000006 
+ 00015570  0x00002e8a call  0x0000735d 
+ 00015571  0x00002e8b call  0x000072d7 
+ 00015572  0x00002e8c call  0x0000737c 
+ 00015573  0x00002e8d increase  0x00000010 , 0x00000013 
+ 00015574  0x00002e8e increase  0xfffffff0 , 0x00000012 
+ 00015575  0x00002e8f branch  0x00003ccf , 0x00000002 
+ 00015576  0x00002e90 rtn 
+ 00015577  0x00002e9b bpatchx  0x000000a7 , 0x00004034 
+ 00015578  0x00002e9c jam  0x00000001 , 0x000047e4 
+ 00015579  0x00002e9d jam  0x00000000 , 0x000047e5 
+ 00015580  0x00002e9e jam  0x00000001 , 0x0000464b 
+ 00015581  0x00002e9f setarg  0x00001770 
+ 00015582  0x00002ea0 store  0x00000002 , 0x0000464c 
+ 00015583  0x00002ea1 rtn 
+ 00015584  0x00002ea5 setarg  0x000001a8 
+ 00015585  0x00002ea6 store  0x00000002 , 0x000008ff 
+ 00015586  0x00002ea7 fetch  0x00000001 , 0x000047e6 
+ 00015587  0x00002ea8 istore  0x00000001 , 0x00000005 
+ 00015588  0x00002ea9 fetch  0x00000004 , 0x0000480a 
+ 00015589  0x00002eaa call  0x00007cc6 
+ 00015590  0x00002eab istore  0x00000004 , 0x00000005 
+ 00015591  0x00002eac fetch  0x00000006 , 0x000042db 
+ 00015592  0x00002ead istore  0x00000006 , 0x00000005 
+ 00015593  0x00002eae fetch  0x00000003 , 0x000047e7 
+ 00015594  0x00002eaf istore  0x00000003 , 0x00000005 
+ 00015595  0x00002eb0 rtn 
+ 00015596  0x00002eb3 call  0x00003cee 
+ 00015597  0x00002eb4 branch  0x000039d3 
+ 00015598  0x00002eb8 jam  0x00000015 , 0x0000462a 
+ 00015599  0x00002eb9 setarg  0x00000014 
+ 00015600  0x00002eba store  0x00000001 , 0x0000462b 
+ 00015601  0x00002ebb setarg  0x0000002b 
+ 00015602  0x00002ebc istore  0x00000001 , 0x00000005 
+ 00015603  0x00002ebd setarg  0x00000000 
+ 00015604  0x00002ebe istore  0x00000001 , 0x00000005 
+ 00015605  0x00002ec0 arg  0x000008ff , 0x00000006 
+ 00015606  0x00002ec1 call  0x00007c8f 
+ 00015607  0x00002ec2 fetch  0x00000002 , 0x000047ea 
+ 00015608  0x00002ec3 istore  0x00000002 , 0x00000005 
+ 00015609  0x00002ec4 rtn 
+ 00015610  0x00002ec8 call  0x00003d5a 
+ 00015611  0x00002ec9 nrtn  0x00000028 
+ 00015612  0x00002eca ifetch  0x00000001 , 0x00000006 
+ 00015613  0x00002ecb beq  0x00000000 , 0x00003d01 
+ 00015614  0x00002ecc beq  0x00000002 , 0x00003d1c 
+ 00015615  0x00002ecd bpatchx  0x000000a8 , 0x00004035 
+ 00015616  0x00002ece rtn 
+ 00015617  0x00002ed3 call  0x00003d0f 
+ 00015618  0x00002ed4 nrtn  0x00000028 
+ 00015619  0x00002ed6 call  0x00003b45 
+ 00015620  0x00002ed8 call  0x00003d07 
+ 00015621  0x00002ed9 call  0x000040fa 
+ 00015622  0x00002eda rtn 
+ 00015623  0x00002edd arg  0x00000012 , 0x00000002 
+ 00015624  0x00002ede call  0x00003d46 
+ 00015625  0x00002edf setarg  0x00000001 
+ 00015626  0x00002ee0 istore  0x00000001 , 0x00000005 
+ 00015627  0x00002ee1 fetch  0x00000002 , 0x00004812 
+ 00015628  0x00002ee2 istore  0x00000002 , 0x00000005 
+ 00015629  0x00002ee3 arg  0x00004680 , 0x00000006 
+ 00015630  0x00002ee4 branch  0x00007c8f 
+ 00015631  0x00002ee8 call  0x00007dbc 
+ 00015632  0x00002ee9 ifetcht  0x00000002 , 0x00000006 
+ 00015633  0x00002eea arg  0x00004680 , 0x00000005 
+ 00015634  0x00002eeb call  0x00007c8f 
+ 00015635  0x00002eec fetch  0x00000002 , 0x00004812 
+ 00015636  0x00002eed isub  0x00000002 , 0x0000003e 
+ 00015637  0x00002eee nrtn  0x00000005 
+ 00015638  0x00002ef1 fetch  0x00000001 , 0x000047e5 
+ 00015639  0x00002ef2 rtnbit1  0x00000001 
+ 00015640  0x00002ef3 set1  0x00000001 , 0x0000003f 
+ 00015641  0x00002ef4 store  0x00000001 , 0x000047e5 
+ 00015642  0x00002ef6 jam  0x00000002 , 0x000047e4 
+ 00015643  0x00002ef7 branch  0x00007dba 
+ 00015644  0x00002efa call  0x00003d27 
+ 00015645  0x00002efb fetcht  0x00000002 , 0x000047ec 
+ 00015646  0x00002efc fetch  0x00000002 , 0x00004812 
+ 00015647  0x00002efd isub  0x00000002 , 0x0000003e 
+ 00015648  0x00002efe nrtn  0x00000005 
+ 00015649  0x00002eff call  0x00003bbf 
+ 00015650  0x00002f00 call  0x000040fa 
+ 00015651  0x00002f01 fetch  0x00000001 , 0x000007aa 
+ 00015652  0x00002f02 rtnne  0x00000002 
+ 00015653  0x00002f03 jam  0x00000005 , 0x000047e4 
+ 00015654  0x00002f04 rtn 
+ 00015655  0x00002f08 bpatchx  0x000000a9 , 0x00004035 
+ 00015656  0x00002f09 copy  0x00000006 , 0x00000011 
+ 00015657  0x00002f0a fetch  0x00000001 , 0x000047e4 
+ 00015658  0x00002f0b rtneq  0x00000000 
+ 00015659  0x00002f0c fetch  0x00000001 , 0x000047e5 
+ 00015660  0x00002f0d rtnbit0  0x00000001 
+ 00015661  0x00002f0e rtnbit1  0x00000002 
+ 00015662  0x00002f0f copy  0x00000011 , 0x00000006 
+ 00015663  0x00002f10 arg  0x00000016 , 0x00000039 
+ 00015664  0x00002f11 arg  0x000047ec , 0x00000005 
+ 00015665  0x00002f12 call  0x00007cda 
+ 00015666  0x00002f14 call  0x00003b86 
+ 00015667  0x00002f16 fetcht  0x00000002 , 0x000047ec 
+ 00015668  0x00002f17 fetch  0x00000002 , 0x00004812 
+ 00015669  0x00002f18 isub  0x00000002 , 0x0000003e 
+ 00015670  0x00002f19 nrtn  0x00000005 
+ 00015671  0x00002f1b fetch  0x00000001 , 0x000047e5 
+ 00015672  0x00002f1c set1  0x00000002 , 0x0000003f 
+ 00015673  0x00002f1d store  0x00000001 , 0x000047e5 
+ 00015674  0x00002f1f call  0x00003b99 
+ 00015675  0x00002f21 fetch  0x00000001 , 0x000047ff 
+ 00015676  0x00002f22 store  0x00000001 , 0x00004871 
+ 00015677  0x00002f23 call  0x00003d3f 
+ 00015678  0x00002f24 rtn 
+ 00015679  0x00002f29 arg  0x00000006 , 0x00000002 
+ 00015680  0x00002f2a call  0x00003d46 
+ 00015681  0x00002f2b setarg  0x00000003 
+ 00015682  0x00002f2c istore  0x00000001 , 0x00000005 
+ 00015683  0x00002f2d fetch  0x00000006 , 0x0000480e 
+ 00015684  0x00002f2e istore  0x00000006 , 0x00000005 
+ 00015685  0x00002f2f rtn 
+ 00015686  0x00002f33 bpatchx  0x000000aa , 0x00004035 
+ 00015687  0x00002f34 setarg  0x0000012c 
+ 00015688  0x00002f35 store  0x00000002 , 0x00004806 
+ 00015689  0x00002f36 fetch  0x00000001 , 0x000007aa 
+ 00015690  0x00002f37 sub  0x0000003f , 0x00000000 , 0x0000003e 
+ 00015691  0x00002f38 call  0x00003ace , 0x00000005 
+ 00015692  0x00002f39 ncall  0x00003ad0 , 0x00000005 
+ 00015693  0x00002f3a add  0x00000002 , 0x00000009 , 0x0000003f 
+ 00015694  0x00002f3b store  0x00000001 , 0x0000462a 
+ 00015695  0x00002f3c call  0x0000397c 
+ 00015696  0x00002f3d add  0x00000002 , 0x00000005 , 0x0000003f 
+ 00015697  0x00002f3e istore  0x00000001 , 0x00000005 
+ 00015698  0x00002f3f setarg  0x000000ff 
+ 00015699  0x00002f40 istore  0x00000001 , 0x00000005 
+ 00015700  0x00002f41 setarg  0x000001a8 
+ 00015701  0x00002f42 byteswap  0x0000003f , 0x0000003f 
+ 00015702  0x00002f43 istore  0x00000002 , 0x00000005 
+ 00015703  0x00002f44 fetch  0x00000001 , 0x0000090f 
+ 00015704  0x00002f45 istore  0x00000001 , 0x00000005 
+ 00015705  0x00002f46 rtn 
+ 00015706  0x00002f52 call  0x00007dbc 
+ 00015707  0x00002f53 ifetcht  0x00000002 , 0x00000006 
+ 00015708  0x00002f54 setarg  0x000001a8 
+ 00015709  0x00002f55 byteswap  0x0000003f , 0x0000003f 
+ 00015710  0x00002f56 isub  0x00000002 , 0x0000003e 
+ 00015711  0x00002f57 nrtn  0x00000005 
+ 00015712  0x00002f58 ifetch  0x00000001 , 0x00000006 
+ 00015713  0x00002f59 store  0x00000001 , 0x0000090f 
+ 00015714  0x00002f5a branch  0x00007dba 
+ 00015715  0x00002f5e arg  0x00004806 , 0x00000013 
+ 00015716  0x00002f5f arg  0x00003d66 , 0x00000012 
+ 00015717  0x00002f60 branch  0x000042e7 
+ 00015718  0x00002f64 branch  0x00003e61 
+ 00015719  0x00002f6d fetch  0x00000001 , 0x0000070b 
+ 00015720  0x00002f6e beq  0x00000008 , 0x00003d92 
+ 00015721  0x00002f6f beq  0x00000049 , 0x00003db1 
+ 00015722  0x00002f70 beq  0x0000001b , 0x00003dbd 
+ 00015723  0x00002f71 beq  0x0000001c , 0x00003dc4 
+ 00015724  0x00002f73 beq  0x000000f2 , 0x00003d6e 
+ 00015725  0x00002f75 rtn 
+ 00015726  0x00002f78 call  0x00003dec 
+ 00015727  0x00002f79 call  0x00003d83 
+ 00015728  0x00002f7a call  0x00003dc2 
+ 00015729  0x00002f7b setarg  0x00000080 
+ 00015730  0x00002f7c store  0x00000001 , 0x00000723 
+ 00015731  0x00002f7d setarg  0x000000f3 
+ 00015732  0x00002f7e istore  0x00000001 , 0x00000005 
+ 00015733  0x00002f80 setarg  0x00000000 
+ 00015734  0x00002f81 istore  0x00000001 , 0x00000005 
+ 00015735  0x00002f82 fetch  0x00000002 , 0x0000070c 
+ 00015736  0x00002f83 istore  0x00000002 , 0x00000005 
+ 00015737  0x00002f85 fetch  0x00000001 , 0x00000709 
+ 00015738  0x00002f86 arg  0x00000004 , 0x00000002 
+ 00015739  0x00002f87 isub  0x00000002 , 0x00000039 
+ 00015740  0x00002f88 arg  0x0000070e , 0x00000006 
+ 00015741  0x00002f89 call  0x00007cda 
+ 00015742  0x00002f8a fetch  0x00000001 , 0x00000709 
+ 00015743  0x00002f8b pincrease  0x00000001 
+ 00015744  0x00002f8c store  0x00000001 , 0x00000722 
+ 00015745  0x00002f8f arg  0x00000000 , 0x00000007 
+ 00015746  0x00002f90 branch  0x00003806 
+ 00015747  0x00002f93 fetch  0x00000001 , 0x0000070e 
+ 00015748  0x00002f94 rtn  0x00000034 
+ 00015749  0x00002f95 sub  0x0000003f , 0x00000008 , 0x0000003e 
+ 00015750  0x00002f96 ncall  0x00003d90 , 0x00000002 
+ 00015751  0x00002f97 iforce  0x00000039 
+ 00015752  0x00002f98 arg  0x0000070f , 0x00000006 
+ 00015753  0x00002f99 add  0x00000011 , 0x00000002 , 0x00000005 
+ 00015754  0x00002f9a branch  0x00003d8b 
+ 00015755  0x00002f9d ifetch  0x00000002 , 0x00000006 
+ 00015756  0x00002f9e byteswap  0x0000003f , 0x0000003f 
+ 00015757  0x00002f9f istore  0x00000002 , 0x00000005 
+ 00015758  0x00002fa0 loop  0x00003d8b 
+ 00015759  0x00002fa1 rtn 
+ 00015760  0x00002fa5 setarg  0x00000008 
+ 00015761  0x00002fa6 rtn 
+ 00015762  0x00002fa9 jam  0x00000006 , 0x000047e4 
+ 00015763  0x00002faa setarg  0x00000002 
+ 00015764  0x00002fab store  0x00000001 , 0x00000723 
+ 00015765  0x00002fac setarg  0x00000000 
+ 00015766  0x00002fad istore  0x00000001 , 0x00000005 
+ 00015767  0x00002fae setarg  0x000001a8 
+ 00015768  0x00002faf istore  0x00000002 , 0x00000005 
+ 00015769  0x00002fb0 setarg  0x00000000 
+ 00015770  0x00002fb1 istore  0x00000002 , 0x00000005 
+ 00015771  0x00002fb2 setarg  0x00000001 
+ 00015772  0x00002fb3 istore  0x00000002 , 0x00000005 
+ 00015773  0x00002fb4 setarg  0x00000005 
+ 00015774  0x00002fb5 istore  0x00000002 , 0x00000005 
+ 00015775  0x00002fb6 setarg  0x00000003 
+ 00015776  0x00002fb7 istore  0x00000002 , 0x00000005 
+ 00015777  0x00002fb8 setarg  0x00000000 
+ 00015778  0x00002fb9 istore  0x00000002 , 0x00000005 
+ 00015779  0x00002fba setarg  0x00000002 
+ 00015780  0x00002fbb istore  0x00000001 , 0x00000005 
+ 00015781  0x00002fbc setarg  0x00000002 
+ 00015782  0x00002fbd istore  0x00000001 , 0x00000005 
+ 00015783  0x00002fbe setarg  0x00000000 
+ 00015784  0x00002fbf istore  0x00000002 , 0x00000005 
+ 00015785  0x00002fc0 setarg  0x00001000 
+ 00015786  0x00002fc1 istore  0x00000002 , 0x00000005 
+ 00015787  0x00002fc2 setarg  0x000001a8 
+ 00015788  0x00002fc3 istore  0x00000004 , 0x00000005 
+ 00015789  0x00002fc4 setarg  0x000101a8 
+ 00015790  0x00002fc5 istore  0x00000004 , 0x00000005 
+ 00015791  0x00002fc6 jam  0x0000001c , 0x00000722 
+ 00015792  0x00002fc7 branch  0x000041b5 
+ 00015793  0x00002fcb jam  0x00000014 , 0x00004805 
+ 00015794  0x00002fd0 setarg  0x00000080 
+ 00015795  0x00002fd1 store  0x00000001 , 0x00000723 
+ 00015796  0x00002fd2 setarg  0x0000004a 
+ 00015797  0x00002fd3 istore  0x00000001 , 0x00000005 
+ 00015798  0x00002fd4 jam  0x00000002 , 0x00000722 
+ 00015799  0x00002fd5 branch  0x000041b5 
+ 00015800  0x00002fd8 arg  0x00004805 , 0x00000013 
+ 00015801  0x00002fd9 arg  0x00003dbb , 0x00000012 
+ 00015802  0x00002fda branch  0x000042e0 
+ 00015803  0x00002fde call  0x00003e50 
+ 00015804  0x00002fe1 branch  0x00006ca3 
+ 00015805  0x00002fe5 call  0x00003de2 
+ 00015806  0x00002fe6 fetch  0x00000002 , 0x0000484c 
+ 00015807  0x00002fe7 rtnbit1  0x00000002 
+ 00015808  0x00002fe8 call  0x00003dec 
+ 00015809  0x00002fe9 call  0x00003df5 
+ 00015810  0x00002feb fetch  0x00000002 , 0x00004848 
+ 00015811  0x00002fec branch  0x00007d79 
+ 00015812  0x00002ff0 call  0x00003de2 
+ 00015813  0x00002ff1 fetch  0x00000002 , 0x0000484c 
+ 00015814  0x00002ff2 rtnbit1  0x00000002 
+ 00015815  0x00002ff3 call  0x00003dec 
+ 00015816  0x00002ff4 fetcht  0x00000002 , 0x0000070e 
+ 00015817  0x00002ff5 rshift8  0x00000002 , 0x0000003f 
+ 00015818  0x00002ff6 rshift4  0x0000003f , 0x0000003f 
+ 00015819  0x00002ff7 beq  0x0000000c , 0x00003dd3 
+ 00015820  0x00002ff8 byteswap  0x00000002 , 0x00000002 
+ 00015821  0x00002ffa call  0x00003dd8 
+ 00015822  0x00002ffb nrtn  0x00000028 
+ 00015823  0x00002ffc setarg  0x00000000 
+ 00015824  0x00002ffd istore  0x00000002 , 0x00000011 
+ 00015825  0x00002ffe fetch  0x00000002 , 0x00004848 
+ 00015826  0x00002fff branch  0x00007d79 
+ 00015827  0x00003002 setarg  0xffffffff 
+ 00015828  0x00003003 istore  0x00000008 , 0x00000011 
+ 00015829  0x00003004 istore  0x00000008 , 0x00000005 
+ 00015830  0x00003005 fetch  0x00000002 , 0x00004848 
+ 00015831  0x00003006 branch  0x00007d79 
+ 00015832  0x00003009 arg  0x00000008 , 0x00000039 
+ 00015833  0x0000300b ifetch  0x00000002 , 0x00000011 
+ 00015834  0x0000300c arg  0x0000ffff , 0x00000012 
+ 00015835  0x0000300d isub  0x00000012 , 0x0000003e 
+ 00015836  0x0000300e branch  0x00007dba , 0x00000005 
+ 00015837  0x0000300f isub  0x00000002 , 0x0000003e 
+ 00015838  0x00003010 branch  0x00007dba , 0x00000005 
+ 00015839  0x00003012 increase  0x00000002 , 0x00000011 
+ 00015840  0x00003013 loop  0x00003dd9 
+ 00015841  0x00003014 branch  0x00007dbc 
+ 00015842  0x00003018 setarg  0x00000080 
+ 00015843  0x00003019 store  0x00000001 , 0x00000723 
+ 00015844  0x0000301a setarg  0x0000001f 
+ 00015845  0x0000301b istore  0x00000001 , 0x00000005 
+ 00015846  0x0000301c setarg  0x00000000 
+ 00015847  0x0000301d istore  0x00000001 , 0x00000005 
+ 00015848  0x0000301e fetch  0x00000006 , 0x0000070c 
+ 00015849  0x0000301f istore  0x00000006 , 0x00000005 
+ 00015850  0x00003020 jam  0x00000009 , 0x00000722 
+ 00015851  0x00003021 branch  0x000041b5 
+ 00015852  0x00003024 call  0x00003e3e 
+ 00015853  0x00003025 add  0x00000011 , 0x00000006 , 0x00000011 
+ 00015854  0x00003026 fetch  0x00000002 , 0x0000070c 
+ 00015855  0x00003027 fetcht  0x00000002 , 0x00004800 
+ 00015856  0x00003028 byteswap  0x00000002 , 0x00000002 
+ 00015857  0x00003029 isub  0x00000002 , 0x0000003f 
+ 00015858  0x0000302a imul32  0x00000012 , 0x0000003f 
+ 00015859  0x0000302b iadd  0x00000011 , 0x00000011 
+ 00015860  0x0000302c rtn 
+ 00015861  0x0000302f fetcht  0x00000002 , 0x0000070e 
+ 00015862  0x00003030 arg  0x00000008 , 0x00000039 
+ 00015863  0x00003032 ifetch  0x00000002 , 0x00000011 
+ 00015864  0x00003033 branch  0x00003dff , 0x00000034 
+ 00015865  0x00003034 arg  0x0000ffff , 0x00000012 
+ 00015866  0x00003035 isub  0x00000012 , 0x0000003e 
+ 00015867  0x00003036 branch  0x00003dff , 0x00000005 
+ 00015868  0x00003037 increase  0x00000002 , 0x00000011 
+ 00015869  0x00003038 loop  0x00003df7 
+ 00015870  0x00003039 rtn 
+ 00015871  0x0000303c byteswap  0x00000002 , 0x00000002 
+ 00015872  0x0000303d istoret  0x00000002 , 0x00000011 
+ 00015873  0x0000303e rtn 
+ 00015874  0x00003045 call  0x00007396 
+ 00015875  0x00003046 call  0x0000739e 
+ 00015876  0x00003047 setarg  0x000039b1 
+ 00015877  0x00003048 store  0x00000002 , 0x00004824 
+ 00015878  0x0000304a setarg  0x00003e42 
+ 00015879  0x0000304b store  0x00000002 , 0x000043db 
+ 00015880  0x0000304d setarg  0x00004016 
+ 00015881  0x0000304e store  0x00000002 , 0x00004842 
+ 00015882  0x00003050 setarg  0x00003745 
+ 00015883  0x00003051 store  0x00000002 , 0x00004828 
+ 00015884  0x00003053 setarg  0x00003aa2 
+ 00015885  0x00003054 store  0x00000002 , 0x00004848 
+ 00015886  0x00003056 setarg  0x00003a92 
+ 00015887  0x00003057 store  0x00000002 , 0x00004846 
+ 00015888  0x00003059 setarg  0x00003e4a 
+ 00015889  0x0000305a store  0x00000002 , 0x000043e3 
+ 00015890  0x0000305c setarg  0x0000372e 
+ 00015891  0x0000305d store  0x00000002 , 0x00004826 
+ 00015892  0x0000305f setarg  0x00004090 
+ 00015893  0x00003060 store  0x00000002 , 0x000043df 
+ 00015894  0x00003062 setarg  0x000040e3 
+ 00015895  0x00003063 store  0x00000002 , 0x000043dd 
+ 00015896  0x00003065 setarg  0x00003ab6 
+ 00015897  0x00003066 store  0x00000002 , 0x00004853 
+ 00015898  0x00003068 setarg  0x00003abc 
+ 00015899  0x00003069 store  0x00000002 , 0x0000484a 
+ 00015900  0x0000306a call  0x00003ac3 
+ 00015901  0x0000306c jam  0x00000024 , 0x0000464a 
+ 00015902  0x0000306d call  0x00003817 
+ 00015903  0x00003070 bpatchx  0x000000ab , 0x00004035 
+ 00015904  0x00003072 setarg  0x00000428 
+ 00015905  0x00003073 store  0x00000002 , 0x000049b9 
+ 00015906  0x00003074 call  0x00003e58 
+ 00015907  0x00003076 setarg  0x00000422 
+ 00015908  0x00003077 store  0x00000002 , 0x00004a5e 
+ 00015909  0x00003078 call  0x00003e5a 
+ 00015910  0x0000307a setarg  0x00000a22 
+ 00015911  0x0000307b store  0x00000002 , 0x00000a8d 
+ 00015912  0x0000307c call  0x00003e5c 
+ 00015913  0x0000307d call  0x00004071 
+ 00015914  0x00003081 call  0x00004071 
+ 00015915  0x00003083 call  0x00003a18 
+ 00015916  0x00003084 call  0x00003e3a 
+ 00015917  0x00003086 fetch  0x00000001 , 0x000047ef 
+ 00015918  0x00003087 beq  0x000000ff , 0x00003cd9 
+ 00015919  0x00003088 call  0x00004291 
+ 00015920  0x00003089 call  0x00003bbf 
+ 00015921  0x0000308a call  0x00003bb1 
+ 00015922  0x0000308b call  0x00003b99 
+ 00015923  0x0000308d random  0x0000003f 
+ 00015924  0x0000308e and  0x0000003f , 0x0000001f , 0x0000003f 
+ 00015925  0x0000308f add  0x0000003f , 0x00000032 , 0x0000003f 
+ 00015926  0x00003090 store  0x00000002 , 0x00004804 
+ 00015927  0x00003091 add  0x0000003f , 0x00000005 , 0x0000003f 
+ 00015928  0x00003092 store  0x00000001 , 0x00004803 
+ 00015929  0x00003093 rtn 
+ 00015930  0x00003098 fetch  0x00000006 , 0x0000480e 
+ 00015931  0x00003099 call  0x00007cc0 
+ 00015932  0x0000309a store  0x00000006 , 0x000042db 
+ 00015933  0x0000309b rtn 
+ 00015934  0x0000309e fetchr  0x00000039 , 0x00000001 , 0x0000484e 
+ 00015935  0x0000309f fetchr  0x00000011 , 0x00000002 , 0x0000484f 
+ 00015936  0x000030a0 fetchr  0x00000012 , 0x00000002 , 0x00004851 
+ 00015937  0x000030a1 rtn 
+ 00015938  0x000030a5 bpatchx  0x000000ac , 0x00004035 
+ 00015939  0x000030a6 call  0x0000387d 
+ 00015940  0x000030a7 call  0x00003aca 
+ 00015941  0x000030a8 call  0x000041d8 
+ 00015942  0x000030a9 call  0x0000396f 
+ 00015943  0x000030aa call  0x00003b33 
+ 00015944  0x000030ab call  0x00004060 
+ 00015945  0x000030ac branch  0x00003995 
+ 00015946  0x000030b0 call  0x00003acc 
+ 00015947  0x000030b1 call  0x00003db8 
+ 00015948  0x000030b2 call  0x00003d63 
+ 00015949  0x000030b5 call  0x00003794 
+ 00015950  0x000030b6 call  0x00003791 
+ 00015951  0x000030b7 branch  0x00004289 
+ 00015952  0x000030bb call  0x00003e53 
+ 00015953  0x000030bc fetch  0x00000002 , 0x00004853 
+ 00015954  0x000030bd branch  0x00007d79 
+ 00015955  0x000030c2 fetch  0x00000001 , 0x00004857 
+ 00015956  0x000030c3 rtnne  0x00000002 
+ 00015957  0x000030c4 setarg  0x0001d000 
+ 00015958  0x000030c5 store  0x00000003 , 0x00004419 
+ 00015959  0x000030c6 branch  0x00006bfa 
+ 00015960  0x000030cb call  0x00004292 
+ 00015961  0x000030cc branch  0x000078ad 
+ 00015962  0x000030cf call  0x0000396c 
+ 00015963  0x000030d0 branch  0x000078ad 
+ 00015964  0x000030d3 call  0x00003e5e 
+ 00015965  0x000030d4 branch  0x000078ad 
+ 00015966  0x000030d7 setarg  0x00000a8d 
+ 00015967  0x000030d8 store  0x00000002 , 0x000043fb 
+ 00015968  0x000030d9 rtn 
+ 00015969  0x000030dc jam  0x00000001 , 0x00004388 
+ 00015970  0x000030dd setarg  0x00001770 
+ 00015971  0x000030de store  0x00000002 , 0x0000464c 
+ 00015972  0x000030df fetch  0x00000001 , 0x000047e7 
+ 00015973  0x000030e0 set0  0x00000000 , 0x0000003f 
+ 00015974  0x000030e1 store  0x00000001 , 0x000047e7 
+ 00015975  0x000030e2 jam  0x00000001 , 0x000047e4 
+ 00015976  0x000030e3 jam  0x00000000 , 0x000047e5 
+ 00015977  0x000030e4 jam  0x00000000 , 0x0000474d 
+ 00015978  0x000030e5 branch  0x00003b2f 
+ 00015979  0x000030ea bpatchx  0x000000ad , 0x00004035 
+ 00015980  0x000030eb fetch  0x00000001 , 0x0000092b 
+ 00015981  0x000030ec bbit1  0x00000007 , 0x00003e70 
+ 00015982  0x000030ed jam  0x00000000 , 0x00004969 
+ 00015983  0x000030ee branch  0x0000417d 
+ 00015984  0x000030f2 call  0x00003e76 
+ 00015985  0x000030f3 rtn  0x00000028 
+ 00015986  0x000030f4 call  0x00003e97 
+ 00015987  0x000030f5 rtn  0x00000028 
+ 00015988  0x000030f6 call  0x00003ea7 
+ 00015989  0x000030f7 branch  0x00003eb4 
+ 00015990  0x000030fc call  0x00007dbc 
+ 00015991  0x000030fd arg  0x00000003 , 0x00000039 
+ 00015992  0x000030fe arg  0x0000092c , 0x00000011 
+ 00015993  0x000030ff call  0x00007cb1 
+ 00015994  0x00003100 fetchr  0x00000011 , 0x00000003 , 0x0000092c 
+ 00015995  0x00003101 and  0x00000011 , 0x0000001f , 0x00000002 
+ 00015996  0x00003102 storet  0x00000001 , 0x0000485c 
+ 00015997  0x00003103 fetch  0x00000001 , 0x00004863 
+ 00015998  0x00003104 isub  0x00000002 , 0x0000003e 
+ 00015999  0x00003105 nbranch  0x00007dba , 0x00000002 
+ 00016000  0x00003107 rshift4  0x00000011 , 0x0000003f 
+ 00016001  0x00003108 rshift  0x0000003f , 0x0000003f 
+ 00016002  0x00003109 and  0x0000003f , 0x0000001f , 0x00000002 
+ 00016003  0x0000310a storet  0x00000001 , 0x0000485b 
+ 00016004  0x0000310b rshift4  0x0000003f , 0x0000003f 
+ 00016005  0x0000310c rshift  0x0000003f , 0x0000003f 
+ 00016006  0x0000310d arg  0x00001fff , 0x00000011 
+ 00016007  0x0000310e iand  0x00000011 , 0x00000002 
+ 00016008  0x0000310f copy  0x0000003f , 0x00000012 
+ 00016009  0x00003110 fetch  0x00000002 , 0x00004859 
+ 00016010  0x00003111 isub  0x00000002 , 0x0000003e 
+ 00016011  0x00003112 ncall  0x00003e93 , 0x00000005 
+ 00016012  0x00003113 storet  0x00000002 , 0x00004859 
+ 00016013  0x00003114 rshift8  0x00000012 , 0x0000003f 
+ 00016014  0x00003115 rshift4  0x0000003f , 0x0000003f 
+ 00016015  0x00003116 rshift  0x0000003f , 0x0000003f 
+ 00016016  0x00003117 store  0x00000001 , 0x00004858 
+ 00016017  0x00003118 store  0x00000001 , 0x00004969 
+ 00016018  0x00003119 rtn 
+ 00016019  0x0000311c setarg  0x00000000 
+ 00016020  0x0000311d store  0x00000004 , 0x0000485d 
+ 00016021  0x0000311e jam  0x00000000 , 0x00004862 
+ 00016022  0x0000311f rtn 
+ 00016023  0x00003125 call  0x00007dbc 
+ 00016024  0x00003126 fetch  0x00000001 , 0x0000485b 
+ 00016025  0x00003127 copy  0x0000003f , 0x00000007 
+ 00016026  0x00003128 fetch  0x00000004 , 0x0000485d 
+ 00016027  0x00003129 qisolate1  0x0000003f 
+ 00016028  0x0000312a branch  0x00007dba , 0x00000001 
+ 00016029  0x0000312b qset1  0x0000003f 
+ 00016030  0x0000312c store  0x00000004 , 0x0000485d 
+ 00016031  0x0000312d fetcht  0x00000001 , 0x0000485c 
+ 00016032  0x0000312e add  0x00000002 , 0x00000001 , 0x00000039 
+ 00016033  0x00003130 add  0x00000039 , 0xffffffff , 0x00000007 
+ 00016034  0x00003131 qisolate1  0x0000003f 
+ 00016035  0x00003132 nrtn  0x00000001 
+ 00016036  0x00003133 loop  0x00003ea1 
+ 00016037  0x00003134 jam  0x00000001 , 0x00004861 
+ 00016038  0x00003135 rtn 
+ 00016039  0x0000313a fetch  0x00000001 , 0x00000921 
+ 00016040  0x0000313b pincrease  0xfffffffa 
+ 00016041  0x0000313c copy  0x0000003f , 0x00000039 
+ 00016042  0x0000313d fetcht  0x00000001 , 0x00004862 
+ 00016043  0x0000313e iadd  0x00000002 , 0x00000002 
+ 00016044  0x0000313f storet  0x00000001 , 0x00004862 
+ 00016045  0x00003140 fetch  0x00000002 , 0x00004864 
+ 00016046  0x00003141 iforce  0x00000005 
+ 00016047  0x00003142 fetch  0x00000001 , 0x0000485b 
+ 00016048  0x00003143 mul32  0x0000003f , 0x0000000c , 0x0000003f 
+ 00016049  0x00003144 iadd  0x00000005 , 0x00000005 
+ 00016050  0x00003145 arg  0x0000092f , 0x00000006 
+ 00016051  0x00003146 branch  0x00007cda 
+ 00016052  0x0000314a fetch  0x00000001 , 0x00004861 
+ 00016053  0x0000314b rtneq  0x00000000 
+ 00016054  0x0000314c setarg  0x00000000 
+ 00016055  0x0000314d store  0x00000005 , 0x0000485d 
+ 00016056  0x0000314e fetcht  0x00000002 , 0x00000925 
+ 00016057  0x0000314f byteswap  0x00000002 , 0x00000002 
+ 00016058  0x00003150 setarg  0x0000e000 
+ 00016059  0x00003151 iand  0x00000002 , 0x00000002 
+ 00016060  0x00003152 fetch  0x00000002 , 0x00004859 
+ 00016061  0x00003153 ior  0x00000002 , 0x0000003f 
+ 00016062  0x00003154 byteswap  0x0000003f , 0x0000003f 
+ 00016063  0x00003155 store  0x00000002 , 0x00000925 
+ 00016064  0x00003156 branch  0x00004187 
+ 00016065  0x0000315b fetch  0x00000001 , 0x00000722 
+ 00016066  0x0000315c add  0x0000003f , 0x00000001 , 0x00000002 
+ 00016067  0x0000315d copy  0x0000003f , 0x00000039 
+ 00016068  0x0000315e storet  0x00000001 , 0x00000916 
+ 00016069  0x0000315f fetch  0x00000001 , 0x0000092b 
+ 00016070  0x00003160 set0  0x00000007 , 0x0000003f 
+ 00016071  0x00003161 store  0x00000001 , 0x000049a1 
+ 00016072  0x00003162 arg  0x00000723 , 0x00000006 
+ 00016073  0x00003163 call  0x00007ccc 
+ 00016074  0x00003164 branch  0x00004052 
+ 00016075  0x0000316a add  0x00000011 , 0x00000004 , 0x00000002 
+ 00016076  0x0000316b copy  0x00000011 , 0x00000039 
+ 00016077  0x0000316c storet  0x00000001 , 0x00000916 
+ 00016078  0x0000316d arg  0x000049a5 , 0x00000005 
+ 00016079  0x0000316e call  0x00007ccc 
+ 00016080  0x0000316f fetch  0x00000001 , 0x0000092b 
+ 00016081  0x00003170 set1  0x00000007 , 0x0000003f 
+ 00016082  0x00003171 store  0x00000001 , 0x000049a1 
+ 00016083  0x00003172 branch  0x00004052 
+ 00016084  0x00003178 fetch  0x00000001 , 0x0000070b 
+ 00016085  0x0000317a beq  0x00000001 , 0x00003edb 
+ 00016086  0x0000317b beq  0x00000002 , 0x00003ee1 
+ 00016087  0x0000317c beq  0x00000042 , 0x00003ee6 
+ 00016088  0x0000317d beq  0x0000004c , 0x00003ee9 
+ 00016089  0x0000317e beq  0x0000005e , 0x00003eef 
+ 00016090  0x0000317f rtn 
+ 00016091  0x00003183 arg  0x00003edd , 0x00000013 
+ 00016092  0x00003184 branch  0x00003f53 
+ 00016093  0x00003188 fetch  0x00000002 , 0x00004830 
+ 00016094  0x00003189 call  0x00007d79 
+ 00016095  0x0000318a store  0x00000001 , 0x0000070c 
+ 00016096  0x0000318b branch  0x0000376c 
+ 00016097  0x0000318f arg  0x00003ee3 , 0x00000013 
+ 00016098  0x00003190 branch  0x00003f53 
+ 00016099  0x00003192 call  0x0000376c 
+ 00016100  0x00003193 fetch  0x00000002 , 0x00004832 
+ 00016101  0x00003194 branch  0x00007d79 
+ 00016102  0x00003199 call  0x00003784 
+ 00016103  0x0000319a fetch  0x00000002 , 0x00004834 
+ 00016104  0x0000319b branch  0x00007d79 
+ 00016105  0x0000319f fetch  0x00000002 , 0x0000070c 
+ 00016106  0x000031a0 call  0x00003efe 
+ 00016107  0x000031a1 store  0x00000001 , 0x00000711 
+ 00016108  0x000031a2 call  0x00003774 
+ 00016109  0x000031a3 fetch  0x00000002 , 0x00004836 
+ 00016110  0x000031a4 branch  0x00007d79 
+ 00016111  0x000031a8 fetch  0x00000002 , 0x00004866 
+ 00016112  0x000031a9 fetcht  0x00000002 , 0x0000070e 
+ 00016113  0x000031aa isub  0x00000002 , 0x0000003e 
+ 00016114  0x000031ab rtn  0x00000005 
+ 00016115  0x000031ad fetch  0x00000002 , 0x0000070e 
+ 00016116  0x000031ae call  0x00003f10 
+ 00016117  0x000031af store  0x00000001 , 0x00000716 
+ 00016118  0x000031b1 fetch  0x00000002 , 0x0000070e 
+ 00016119  0x000031b2 store  0x00000002 , 0x00004866 
+ 00016120  0x000031b3 fetch  0x00000002 , 0x00004838 
+ 00016121  0x000031b4 call  0x00007d79 
+ 00016122  0x000031b5 storet  0x00000002 , 0x0000070c 
+ 00016123  0x000031b6 call  0x0000377c 
+ 00016124  0x000031b7 fetch  0x00000002 , 0x0000483a 
+ 00016125  0x000031b8 branch  0x00007d79 
+ 00016126  0x000031be rtn  0x00000034 
+ 00016127  0x000031bf mul32  0x0000003f , 0x00000064 , 0x0000003f 
+ 00016128  0x000031c0 arg  0x0000ffff , 0x00000002 
+ 00016129  0x000031c1 idiv  0x00000002 
+ 00016130  0x000031c2 call  0x00007d62 
+ 00016131  0x000031c3 remainder  0x00000002 
+ 00016132  0x000031c4 rshift8  0x00000002 , 0x00000002 
+ 00016133  0x000031c5 quotient  0x0000003f 
+ 00016134  0x000031c6 sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00016135  0x000031c7 nrtn  0x00000005 
+ 00016136  0x000031c8 pincrease  0x00000001 
+ 00016137  0x000031c9 rtn 
+ 00016138  0x000031cf arg  0x0000ffff , 0x0000003f 
+ 00016139  0x000031d0 imul32  0x00000002 , 0x0000003f 
+ 00016140  0x000031d1 div  0x0000003f , 0x00000064 
+ 00016141  0x000031d2 call  0x00007d62 
+ 00016142  0x000031d3 quotient  0x00000002 
+ 00016143  0x000031d4 rtn 
+ 00016144  0x000031d9 arg  0x00000320 , 0x00000002 
+ 00016145  0x000031da isub  0x00000002 , 0x00000011 
+ 00016146  0x000031db call  0x00003f1f 
+ 00016147  0x000031dc copy  0x00000011 , 0x0000003f 
+ 00016148  0x000031dd idiv  0x00000002 
+ 00016149  0x000031de call  0x00007d62 
+ 00016150  0x000031df quotient  0x0000003f 
+ 00016151  0x000031e0 rtn 
+ 00016152  0x000031e6 copy  0x00000002 , 0x00000011 
+ 00016153  0x000031e7 call  0x00003f1f 
+ 00016154  0x000031e8 copy  0x00000011 , 0x0000003f 
+ 00016155  0x000031e9 imul32  0x00000002 , 0x0000003f 
+ 00016156  0x000031ea arg  0x00000320 , 0x00000002 
+ 00016157  0x000031eb iadd  0x00000002 , 0x00000002 
+ 00016158  0x000031ec rtn 
+ 00016159  0x000031ef setarg  0x00004e20 
+ 00016160  0x000031f0 arg  0x00000320 , 0x00000002 
+ 00016161  0x000031f1 isub  0x00000002 , 0x0000003f 
+ 00016162  0x000031f2 div  0x0000003f , 0x00000064 
+ 00016163  0x000031f3 call  0x00007d62 
+ 00016164  0x000031f4 quotient  0x00000002 
+ 00016165  0x000031f5 rtn 
+ 00016166  0x000031fb arg  0x00000000 , 0x00000007 
+ 00016167  0x000031fc fetchr  0x00000039 , 0x00000001 , 0x0000484e 
+ 00016168  0x000031fd call  0x00007dbc 
+ 00016169  0x000031fe fetch  0x00000002 , 0x00004800 
+ 00016170  0x00003200 isub  0x00000002 , 0x0000003e 
+ 00016171  0x00003201 branch  0x00003f32 , 0x00000005 
+ 00016172  0x00003202 byteswap  0x0000003f , 0x0000003f 
+ 00016173  0x00003203 pincrease  0x00000001 
+ 00016174  0x00003204 byteswap  0x0000003f , 0x0000003f 
+ 00016175  0x00003205 increase  0x00000001 , 0x00000007 
+ 00016176  0x00003206 loop  0x00003f2a 
+ 00016177  0x00003207 rtn 
+ 00016178  0x0000320a jam  0x00000000 , 0x00004868 
+ 00016179  0x0000320b storer  0x00000007 , 0x00000001 , 0x00004869 
+ 00016180  0x0000320c call  0x00003f6e 
+ 00016181  0x0000320d branch  0x00007dba 
+ 00016182  0x00003211 arg  0x00000000 , 0x00000007 
+ 00016183  0x00003212 arg  0x00000000 , 0x00000013 
+ 00016184  0x00003213 call  0x00003e3e 
+ 00016185  0x00003214 call  0x00007dbc 
+ 00016186  0x00003216 fetch  0x00000002 , 0x0000484c 
+ 00016187  0x00003217 bbit0  0x00000002 , 0x00003f49 
+ 00016188  0x00003218 ifetch  0x00000002 , 0x00000011 
+ 00016189  0x00003219 isub  0x00000002 , 0x0000003e 
+ 00016190  0x0000321a call  0x00003f47 , 0x00000005 
+ 00016191  0x0000321c copy  0x00000012 , 0x0000003f 
+ 00016192  0x0000321d iadd  0x00000011 , 0x00000011 
+ 00016193  0x0000321e increase  0x00000001 , 0x00000007 
+ 00016194  0x0000321f loop  0x00003f3a 
+ 00016195  0x00003220 copy  0x00000013 , 0x0000003f 
+ 00016196  0x00003221 rtn  0x00000034 
+ 00016197  0x00003222 store  0x00000001 , 0x00004868 
+ 00016198  0x00003223 branch  0x00007dba 
+ 00016199  0x00003226 qset1  0x00000013 
+ 00016200  0x00003227 rtn 
+ 00016201  0x0000322a add  0x00000011 , 0x00000006 , 0x00000006 
+ 00016202  0x0000322b arg  0x00000008 , 0x00000030 
+ 00016203  0x0000322d ifetch  0x00000002 , 0x00000006 
+ 00016204  0x0000322e isub  0x00000002 , 0x0000003e 
+ 00016205  0x0000322f branch  0x00003f51 , 0x00000005 
+ 00016206  0x00003230 increase  0xffffffff , 0x00000030 
+ 00016207  0x00003231 branch  0x00003f3f , 0x00000005 
+ 00016208  0x00003232 branch  0x00003f4b 
+ 00016209  0x00003235 call  0x00003f47 
+ 00016210  0x00003236 branch  0x00003f3f 
+ 00016211  0x00003239 arg  0x00000000 , 0x00000007 
+ 00016212  0x0000323a fetch  0x00000001 , 0x00004868 
+ 00016213  0x0000323b branch  0x00003f5f , 0x00000034 
+ 00016214  0x0000323c copy  0x0000003f , 0x00000012 
+ 00016215  0x0000323d fetchr  0x00000039 , 0x00000001 , 0x0000484e 
+ 00016216  0x0000323f storer  0x00000007 , 0x00000001 , 0x00004869 
+ 00016217  0x00003241 qisolate1  0x00000012 
+ 00016218  0x00003242 call  0x00003f5f , 0x00000001 
+ 00016219  0x00003243 fetchr  0x00000007 , 0x00000001 , 0x00004869 
+ 00016220  0x00003244 increase  0x00000001 , 0x00000007 
+ 00016221  0x00003245 loop  0x00003f58 
+ 00016222  0x00003246 rtn 
+ 00016223  0x00003249 call  0x00003f64 
+ 00016224  0x0000324a call  0x00003f6e 
+ 00016225  0x0000324b copy  0x00000013 , 0x0000003f 
+ 00016226  0x0000324c call  0x00007d79 
+ 00016227  0x0000324d branch  0x00003f69 
+ 00016228  0x00003250 storer  0x00000039 , 0x00000002 , 0x00000917 
+ 00016229  0x00003251 storer  0x00000011 , 0x00000002 , 0x00000919 
+ 00016230  0x00003252 storer  0x00000012 , 0x00000002 , 0x0000091b 
+ 00016231  0x00003253 storer  0x00000013 , 0x00000002 , 0x0000091d 
+ 00016232  0x00003254 rtn 
+ 00016233  0x00003257 fetchr  0x00000039 , 0x00000002 , 0x00000917 
+ 00016234  0x00003258 fetchr  0x00000011 , 0x00000002 , 0x00000919 
+ 00016235  0x00003259 fetchr  0x00000012 , 0x00000002 , 0x0000091b 
+ 00016236  0x0000325a fetchr  0x00000013 , 0x00000002 , 0x0000091d 
+ 00016237  0x0000325b rtn 
+ 00016238  0x0000325f bpatchx  0x000000ae , 0x00004035 
+ 00016239  0x00003260 fetch  0x00000002 , 0x00004800 
+ 00016240  0x00003261 byteswap  0x0000003f , 0x0000003f 
+ 00016241  0x00003262 iadd  0x00000007 , 0x0000003f 
+ 00016242  0x00003263 byteswap  0x0000003f , 0x0000003f 
+ 00016243  0x00003264 store  0x00000002 , 0x00004995 
+ 00016244  0x00003265 call  0x00003e3e 
+ 00016245  0x00003266 copy  0x00000007 , 0x0000003f 
+ 00016246  0x00003267 imul32  0x00000012 , 0x0000003f 
+ 00016247  0x00003268 iadd  0x00000011 , 0x00000011 
+ 00016248  0x00003269 add  0x00000011 , 0x00000017 , 0x00000006 
+ 00016249  0x0000326a ifetch  0x00000002 , 0x00000006 
+ 00016250  0x0000326b store , 0x00000002 , 0x000043fb 
+ 00016251  0x0000326c rtn 
+ 00016252  0x00003272 jam  0x00000000 , 0x00000951 
+ 00016253  0x00003276 sub  0x00000002 , 0x0000000c , 0x0000003e 
+ 00016254  0x00003277 rtn  0x00000002 
+ 00016255  0x00003278 sub  0x00000002 , 0x0000001e , 0x0000003e 
+ 00016256  0x00003279 nrtn  0x00000002 
+ 00016257  0x0000327a bpatchx  0x000000af , 0x00004035 
+ 00016258  0x0000327b call  0x0000400e 
+ 00016259  0x0000327c call  0x00003f8c 
+ 00016260  0x0000327d nrtn  0x00000028 
+ 00016261  0x0000327e call  0x00003fdd 
+ 00016262  0x0000327f nrtn  0x00000028 
+ 00016263  0x00003280 call  0x00003bcf 
+ 00016264  0x00003281 call  0x00003fa1 
+ 00016265  0x00003282 nrtn  0x00000028 
+ 00016266  0x00003283 call  0x00003fb2 
+ 00016267  0x00003285 branch  0x00003fb7 
+ 00016268  0x00003288 call  0x00007dba 
+ 00016269  0x00003289 fetch  0x00000001 , 0x00000921 
+ 00016270  0x0000328a arg  0x00000925 , 0x00000006 
+ 00016271  0x0000328b iadd  0x00000006 , 0x00000006 
+ 00016272  0x0000328c ifetch  0x00000004 , 0x00000006 
+ 00016273  0x0000328d ifetcht  0x00000004 , 0x00000006 
+ 00016274  0x0000328e ixor  0x00000002 , 0x00000002 
+ 00016275  0x0000328f arg  0x00000010 , 0x00000039 
+ 00016276  0x00003290 arg  0x000009fd , 0x00000006 
+ 00016277  0x00003292 ifetch  0x00000004 , 0x00000006 
+ 00016278  0x00003293 isub  0x00000002 , 0x0000003e 
+ 00016279  0x00003294 branch  0x00007dbc , 0x00000005 
+ 00016280  0x00003295 loop  0x00003f95 
+ 00016281  0x00003296 fetch  0x00000001 , 0x0000486a 
+ 00016282  0x00003297 pincrease  0x00000004 
+ 00016283  0x00003298 arg  0x000009fd , 0x00000005 
+ 00016284  0x00003299 iadd  0x00000005 , 0x00000005 
+ 00016285  0x0000329a istoret  0x00000004 , 0x00000005 
+ 00016286  0x0000329b and  0x0000003f , 0x0000003f , 0x0000003f 
+ 00016287  0x0000329c store  0x00000001 , 0x0000486a 
+ 00016288  0x0000329d rtn 
+ 00016289  0x000032a0 call  0x00007dba 
+ 00016290  0x000032a1 fetcht  0x00000005 , 0x00000924 
+ 00016291  0x000032a2 arg  0x00000010 , 0x00000039 
+ 00016292  0x000032a3 arg  0x00000a3d , 0x00000006 
+ 00016293  0x000032a5 ifetch  0x00000005 , 0x00000006 
+ 00016294  0x000032a6 isub  0x00000002 , 0x0000003e 
+ 00016295  0x000032a7 branch  0x00007dbc , 0x00000005 
+ 00016296  0x000032a8 loop  0x00003fa5 
+ 00016297  0x000032a9 fetch  0x00000001 , 0x0000486b 
+ 00016298  0x000032aa pincrease  0x00000001 
+ 00016299  0x000032ab and  0x0000003f , 0x0000000f , 0x0000003f 
+ 00016300  0x000032ac store  0x00000001 , 0x0000486b 
+ 00016301  0x000032ad mul32  0x0000003f , 0x00000005 , 0x0000003f 
+ 00016302  0x000032ae arg  0x00000a3d , 0x00000005 
+ 00016303  0x000032af iadd  0x00000005 , 0x00000005 
+ 00016304  0x000032b0 istoret  0x00000005 , 0x00000005 
+ 00016305  0x000032b1 rtn 
+ 00016306  0x000032b4 fetch  0x00000001 , 0x00000951 
+ 00016307  0x000032b5 rtneq  0x00000000 
+ 00016308  0x000032b6 fetch  0x00000002 , 0x00000927 
+ 00016309  0x000032b7 store  0x00000002 , 0x0000486c 
+ 00016310  0x000032b8 rtn 
+ 00016311  0x000032c5 call  0x00004005 
+ 00016312  0x000032c6 fetch  0x00000001 , 0x00000921 
+ 00016313  0x000032c7 arg  0x00000929 , 0x00000002 
+ 00016314  0x000032c8 call  0x00003ca7 
+ 00016315  0x000032c9 nrtn  0x00000005 
+ 00016316  0x000032cd bpatchx  0x000000b0 , 0x00004036 
+ 00016317  0x000032ce fetch  0x00000001 , 0x00000951 
+ 00016318  0x000032cf sub  0x0000003f , 0x00000002 , 0x0000003e 
+ 00016319  0x000032d0 call  0x00004106 , 0x00000005 
+ 00016320  0x000032d1 fetcht  0x00000002 , 0x00000929 
+ 00016321  0x000032d2 call  0x00003f26 
+ 00016322  0x000032d3 call  0x00003fcf , 0x00000028 
+ 00016323  0x000032d4 branch  0x00003fea , 0x00000028 
+ 00016324  0x000032d5 arg  0x0000001d , 0x00000039 
+ 00016325  0x000032d6 arg  0x000007ab , 0x00000005 
+ 00016326  0x000032d7 arg  0x00000922 , 0x00000006 
+ 00016327  0x000032d8 call  0x00007cda 
+ 00016328  0x000032d9 call  0x00003fd3 
+ 00016329  0x000032da arg  0x0000001d , 0x00000039 
+ 00016330  0x000032db arg  0x000007ab , 0x00000006 
+ 00016331  0x000032dc arg  0x00000922 , 0x00000005 
+ 00016332  0x000032dd call  0x00007cda 
+ 00016333  0x000032de fetch  0x00000002 , 0x00004842 
+ 00016334  0x000032df branch  0x00007d79 
+ 00016335  0x000032e2 jam  0x00000001 , 0x00000952 
+ 00016336  0x000032e3 fetch  0x00000002 , 0x00004995 
+ 00016337  0x000032e4 store  0x00000002 , 0x00000953 
+ 00016338  0x000032e5 rtn 
+ 00016339  0x000032e8 call  0x00003f36 
+ 00016340  0x000032e9 branch  0x00003fea , 0x00000028 
+ 00016341  0x000032ea jam  0x000000ff , 0x00004868 
+ 00016342  0x000032eb setarg  0x0000ffcf 
+ 00016343  0x000032ec isub  0x00000002 , 0x0000003e 
+ 00016344  0x000032ed branch  0x00003fea , 0x00000005 
+ 00016345  0x000032ee setarg  0x0000ffff 
+ 00016346  0x000032ef isub  0x00000002 , 0x0000003e 
+ 00016347  0x000032f0 branch  0x00003fea , 0x00000005 
+ 00016348  0x000032f1 rtn 
+ 00016349  0x000032f5 call  0x00007dbc 
+ 00016350  0x000032f6 fetcht  0x00000001 , 0x00000922 
+ 00016351  0x000032f7 rshift4  0x00000002 , 0x0000003f 
+ 00016352  0x000032f8 rshift3  0x0000003f , 0x0000003f 
+ 00016353  0x000032f9 fetchr  0x00000011 , 0x00000001 , 0x00004871 
+ 00016354  0x000032fa and  0x00000011 , 0x00000001 , 0x00000011 
+ 00016355  0x000032fb isub  0x00000011 , 0x0000003e 
+ 00016356  0x000032fc nrtn  0x00000005 
+ 00016357  0x000032fd and  0x00000002 , 0x0000007f , 0x00000002 
+ 00016358  0x000032fe fetch  0x00000001 , 0x0000474d 
+ 00016359  0x000032ff isub  0x00000002 , 0x0000003e 
+ 00016360  0x00003300 nrtn  0x00000005 
+ 00016361  0x00003301 branch  0x00007dba 
+ 00016362  0x00003306 arg  0x00004872 , 0x00000011 
+ 00016363  0x00003307 arg  0x0000000a , 0x00000039 
+ 00016364  0x00003309 fetcht  0x00000002 , 0x00000927 
+ 00016365  0x0000330a ifetch  0x00000002 , 0x00000011 
+ 00016366  0x0000330c branch  0x00003ff4 , 0x00000034 
+ 00016367  0x0000330e isub  0x00000002 , 0x0000003e 
+ 00016368  0x00003310 branch  0x00003ff5 , 0x00000005 
+ 00016369  0x00003311 increase  0x00000005 , 0x00000011 
+ 00016370  0x00003312 loop  0x00003fec 
+ 00016371  0x00003313 arg  0x00004872 , 0x00000011 
+ 00016372  0x00003316 istoret  0x00000002 , 0x00000011 
+ 00016373  0x00003318 storet  0x00000002 , 0x0000094c 
+ 00016374  0x0000331a add  0x00000011 , 0x00000002 , 0x00000013 
+ 00016375  0x0000331b ifetch  0x00000003 , 0x00000013 
+ 00016376  0x0000331c store  0x00000003 , 0x0000094e 
+ 00016377  0x0000331d branch  0x00003ffa 
+ 00016378  0x00003323 call  0x00004002 
+ 00016379  0x00003325 fetch  0x00000003 , 0x0000094e 
+ 00016380  0x00003326 fetcht  0x00000003 , 0x00000924 
+ 00016381  0x00003327 isub  0x00000002 , 0x0000003e 
+ 00016382  0x00003328 rtn  0x00000002 
+ 00016383  0x00003329 istoret  0x00000003 , 0x00000013 
+ 00016384  0x0000332a call  0x00004002 
+ 00016385  0x0000332b branch  0x00003e6b 
+ 00016386  0x0000332e arg  0x00000924 , 0x00000011 
+ 00016387  0x0000332f arg  0x00000003 , 0x00000039 
+ 00016388  0x00003330 branch  0x00007cb1 
+ 00016389  0x00003335 call  0x00004008 
+ 00016390  0x00003337 arg  0x0000475e , 0x00000006 
+ 00016391  0x00003338 branch  0x0000735f 
+ 00016392  0x0000333a arg  0x0000093f , 0x00000005 
+ 00016393  0x0000333b setarg  0x00000000 
+ 00016394  0x0000333c istore  0x00000001 , 0x00000005 
+ 00016395  0x0000333d fetch  0x00000006 , 0x00000923 
+ 00016396  0x0000333e istore  0x00000008 , 0x00000005 
+ 00016397  0x0000333f branch  0x00004069 
+ 00016398  0x00003343 add  0x00000002 , 0xfffffff4 , 0x0000003f 
+ 00016399  0x0000334d store  0x00000001 , 0x00000921 
+ 00016400  0x0000334e arg  0x0000001d , 0x00000039 
+ 00016401  0x0000334f arg  0x00000922 , 0x00000005 
+ 00016402  0x00003350 call  0x00007ca1 
+ 00016403  0x00003351 add  0x00000002 , 0xffffffff , 0x00000039 
+ 00016404  0x00003352 arg  0x00000922 , 0x00000005 
+ 00016405  0x00003353 branch  0x00007ccc 
+ 00016406  0x00003356 call  0x0000406e 
+ 00016407  0x00003357 call  0x00004036 
+ 00016408  0x00003358 nrtn  0x00000028 
+ 00016409  0x00003359 call  0x0000404a 
+ 00016410  0x0000335a jam  0x0000001e , 0x00000787 
+ 00016411  0x0000335b fetch  0x00000001 , 0x00000921 
+ 00016412  0x0000335c add  0x0000003f , 0x0000000d , 0x00000002 
+ 00016413  0x0000335d storet  0x00000001 , 0x00000789 
+ 00016414  0x0000335e increase  0xffffffff , 0x00000002 
+ 00016415  0x0000335f istoret  0x00000001 , 0x00000005 
+ 00016416  0x00003360 setarg  0x0000002a 
+ 00016417  0x00003361 istore  0x00000001 , 0x00000005 
+ 00016418  0x00003362 add  0x00000002 , 0xffffffff , 0x00000039 
+ 00016419  0x00003363 fetch  0x00000007 , 0x00000922 
+ 00016420  0x00003364 arg  0x00000922 , 0x00000006 
+ 00016421  0x00003365 call  0x00007cda 
+ 00016422  0x00003366 arg  0x00000787 , 0x00000011 
+ 00016423  0x00003367 call  0x000078b2 
+ 00016424  0x00003368 call  0x0000402b 
+ 00016425  0x00003369 nrtn  0x00000028 
+ 00016426  0x0000336a branch  0x00003961 
+ 00016427  0x0000336d fetcht  0x00000002 , 0x000007b2 
+ 00016428  0x0000336f call  0x00007dbc 
+ 00016429  0x00003370 fetch  0x00000001 , 0x00000978 
+ 00016430  0x00003371 rtn  0x00000034 
+ 00016431  0x00003372 iforce  0x00000039 
+ 00016432  0x00003373 arg  0x00000968 , 0x00000006 
+ 00016433  0x00003375 ifetch  0x00000002 , 0x00000006 
+ 00016434  0x00003376 isub  0x00000002 , 0x0000003e 
+ 00016435  0x00003377 branch  0x00007dba , 0x00000005 
+ 00016436  0x00003378 loop  0x00004031 
+ 00016437  0x00003379 rtn 
+ 00016438  0x0000337d call  0x00007dbc 
+ 00016439  0x0000337e fetch  0x00000001 , 0x00000951 
+ 00016440  0x0000337f rtneq  0x00000001 
+ 00016441  0x00003380 fetch  0x00000002 , 0x0000484c 
+ 00016442  0x00003381 rtnbit1  0x00000001 
+ 00016443  0x00003382 fetch  0x00000001 , 0x000047e4 
+ 00016444  0x00003383 rtnne  0x00000000 
+ 00016445  0x00003384 fetcht  0x00000002 , 0x00000927 
+ 00016446  0x00003385 call  0x00003f26 
+ 00016447  0x00003386 branch  0x00007dbc , 0x00000028 
+ 00016448  0x00003387 call  0x0000404f 
+ 00016449  0x00003388 nrtn  0x00000028 
+ 00016450  0x00003389 fetch  0x00000001 , 0x00000923 
+ 00016451  0x0000338a branch  0x00007dbc , 0x00000034 
+ 00016452  0x0000338b pincrease  0xffffffff 
+ 00016453  0x0000338c branch  0x00007dbc , 0x00000034 
+ 00016454  0x0000338d store  0x00000001 , 0x00000923 
+ 00016455  0x0000338e setarg  0x000048cc 
+ 00016456  0x0000338f store  0x00000002 , 0x000043fb 
+ 00016457  0x00003390 branch  0x00007dba 
+ 00016458  0x00003393 call  0x00004005 
+ 00016459  0x00003394 fetch  0x00000001 , 0x00000921 
+ 00016460  0x00003395 arg  0x00000929 , 0x00000002 
+ 00016461  0x00003396 call  0x00003c86 
+ 00016462  0x00003397 branch  0x00003bcf 
+ 00016463  0x0000339c setarg  0x000048a4 
+ 00016464  0x0000339d store  0x00000002 , 0x00000910 
+ 00016465  0x0000339e branch  0x000039fb 
+ 00016466  0x000033a3 bpatchx  0x000000b1 , 0x00004036 
+ 00016467  0x000033a4 call  0x00004056 
+ 00016468  0x000033a5 call  0x0000405f 
+ 00016469  0x000033a6 branch  0x0000394c 
+ 00016470  0x000033ac fetch  0x00000001 , 0x00000916 
+ 00016471  0x000033ad add  0x0000003f , 0x00000002 , 0x00000011 
+ 00016472  0x000033ae pincrease  0x00000004 
+ 00016473  0x000033af store  0x00000001 , 0x00000916 
+ 00016474  0x000033b0 arg  0x0000499f , 0x00000002 
+ 00016475  0x000033b1 branch  0x0000405c 
+ 00016476  0x000033b7 call  0x00004005 
+ 00016477  0x000033b8 copy  0x00000011 , 0x0000003f 
+ 00016478  0x000033b9 branch  0x00003c86 
+ 00016479  0x000033bd branch  0x00003bcc 
+ 00016480  0x000033c1 call  0x00003e5e 
+ 00016481  0x000033c2 call  0x000078fa 
+ 00016482  0x000033c3 rtn  0x00000034 
+ 00016483  0x000033c4 call  0x00002a28 
+ 00016484  0x000033c5 nrtn  0x00000034 
+ 00016485  0x000033c6 arg  0x00000787 , 0x00000011 
+ 00016486  0x000033c7 call  0x000078ca 
+ 00016487  0x000033c8 nrtn  0x00000028 
+ 00016488  0x000033c9 branch  0x000040f0 
+ 00016489  0x000033ce fetch  0x00000004 , 0x0000486e 
+ 00016490  0x000033cf istore  0x00000004 , 0x00000005 
+ 00016491  0x000033d0 add  0x00000005 , 0xfffffff3 , 0x0000003f 
+ 00016492  0x000033d1 store  0x00000002 , 0x000008f1 
+ 00016493  0x000033d2 rtn 
+ 00016494  0x000033d7 setarg  0x000048cc 
+ 00016495  0x000033d8 store  0x00000002 , 0x000043fb 
+ 00016496  0x000033d9 rtn 
+ 00016497  0x000033dc call  0x0000406e 
+ 00016498  0x000033dd branch  0x000078ad 
+ 00016499  0x000033e1 call  0x000029c9 
+ 00016500  0x000033e2 fetch  0x00000001 , 0x000047e4 
+ 00016501  0x000033e3 beq  0x00000001 , 0x00004083 
+ 00016502  0x000033e4 beq  0x00000000 , 0x00004079 
+ 00016503  0x000033e5 beq  0x00000005 , 0x00004079 
+ 00016504  0x000033e6 rtn 
+ 00016505  0x000033ea setsect  0x00000000 , 0x00010214 
+ 00016506  0x000033eb setsect  0x00000001 , 0x0000c080 
+ 00016507  0x000033ec setsect  0x00000002 , 0x00028030 
+ 00016508  0x000033ed setsect  0x00000003 , 0x00003060 
+ 00016509  0x000033ee store  0x00000009 , 0x00004348 
+ 00016510  0x000033ef setarg  0x00182816 
+ 00016511  0x000033f0 istore  0x00000004 , 0x00000005 
+ 00016512  0x000033f1 fetch  0x00000008 , 0x000047dc 
+ 00016513  0x000033f2 istore  0x00000008 , 0x00000005 
+ 00016514  0x000033f3 rtn 
+ 00016515  0x000033f6 call  0x00003ce0 
+ 00016516  0x000033f8 setsect  0x00000000 , 0x0001021d 
+ 00016517  0x000033f9 setsect  0x00000001 , 0x0000c080 
+ 00016518  0x000033fa setsect  0x00000002 , 0x00027030 
+ 00016519  0x000033fb setsect  0x00000003 , 0x00005460 
+ 00016520  0x000033fc store  0x00000009 , 0x00004348 
+ 00016521  0x000033fd setarg  0x00182716 
+ 00016522  0x000033fe istore  0x00000003 , 0x00000005 
+ 00016523  0x000033ff arg  0x000008ff , 0x00000006 
+ 00016524  0x00003400 call  0x00007c8f 
+ 00016525  0x00003401 fetch  0x00000002 , 0x000047ea 
+ 00016526  0x00003402 istore  0x00000002 , 0x00000005 
+ 00016527  0x00003403 rtn 
+ 00016528  0x0000340a bpatchx  0x000000b2 , 0x00004036 
+ 00016529  0x0000340b fetch  0x00000002 , 0x00004398 
+ 00016530  0x0000340c beq  0x0000000e , 0x00004095 
+ 00016531  0x0000340d beq  0x00000014 , 0x000040d6 
+ 00016532  0x0000340e rtn 
+ 00016533  0x00003411 copy  0x00000012 , 0x00000002 
+ 00016534  0x00003412 ifetch  0x00000001 , 0x00000011 
+ 00016535  0x00003413 beq  0x00000000 , 0x000040e1 
+ 00016536  0x00003414 beq  0x00000002 , 0x0000409a 
+ 00016537  0x00003415 rtn 
+ 00016538  0x0000341e call  0x0000400e 
+ 00016539  0x0000341f fetch  0x00000001 , 0x00000921 
+ 00016540  0x00003420 pincrease  0xfffffffc 
+ 00016541  0x00003421 store  0x00000001 , 0x00000921 
+ 00016542  0x00003422 call  0x00003fdd 
+ 00016543  0x00003423 nrtn  0x00000028 
+ 00016544  0x00003424 call  0x00003bcf 
+ 00016545  0x00003425 fetch  0x00000001 , 0x00000923 
+ 00016546  0x00003426 bbit1  0x00000007 , 0x000040a4 
+ 00016547  0x00003427 rtn 
+ 00016548  0x0000342a call  0x000040da 
+ 00016549  0x0000342b fetch  0x00000001 , 0x00000921 
+ 00016550  0x0000342c arg  0x00000929 , 0x00000002 
+ 00016551  0x0000342d call  0x00003ca5 
+ 00016552  0x0000342e nrtn  0x00000005 
+ 00016553  0x00003431 call  0x00004106 
+ 00016554  0x00003432 fetch  0x00000001 , 0x0000092b 
+ 00016555  0x00003433 beq  0x00000000 , 0x000040bd 
+ 00016556  0x00003434 beq  0x00000001 , 0x000040ae 
+ 00016557  0x00003435 rtn 
+ 00016558  0x00003438 fetchr  0x00000039 , 0x00000001 , 0x00000921 
+ 00016559  0x00003439 increase  0xfffffffd , 0x00000039 
+ 00016560  0x0000343b rshift  0x00000039 , 0x0000003f 
+ 00016561  0x0000343c fetcht  0x00000002 , 0x00000978 
+ 00016562  0x0000343d iadd  0x00000002 , 0x0000003f 
+ 00016563  0x0000343e sub  0x0000003f , 0x00000008 , 0x0000003e 
+ 00016564  0x0000343f nrtn  0x00000002 
+ 00016565  0x00003440 store  0x00000002 , 0x00000978 
+ 00016566  0x00003441 arg  0x00000968 , 0x00000005 
+ 00016567  0x00003442 lshift  0x00000002 , 0x0000003f 
+ 00016568  0x00003443 iadd  0x00000005 , 0x00000005 
+ 00016569  0x00003444 arg  0x0000092c , 0x00000006 
+ 00016570  0x00003445 call  0x00007cda 
+ 00016571  0x00003446 fetch  0x00000001 , 0x0000097a 
+ 00016572  0x00003447 branch  0x000040bf 
+ 00016573  0x0000344a ifetch  0x00000001 , 0x00000006 
+ 00016574  0x0000344b store  0x00000001 , 0x0000097a 
+ 00016575  0x0000344d store  0x00000001 , 0x000049a2 
+ 00016576  0x0000344e fetch  0x00000002 , 0x00000978 
+ 00016577  0x0000344f byteswap  0x0000003f , 0x0000003f 
+ 00016578  0x00003450 store  0x00000002 , 0x000049a3 
+ 00016579  0x00003452 jam  0x00000003 , 0x000049a1 
+ 00016580  0x00003454 fetch  0x00000009 , 0x00000922 
+ 00016581  0x00003455 store  0x00000009 , 0x00004998 
+ 00016582  0x00003456 fetch  0x00000002 , 0x00004995 
+ 00016583  0x00003457 store  0x00000002 , 0x0000499d 
+ 00016584  0x00003459 call  0x00004253 
+ 00016585  0x0000345a call  0x00004267 
+ 00016586  0x0000345c call  0x000040da 
+ 00016587  0x0000345d setarg  0x00000006 
+ 00016588  0x0000345e arg  0x0000499f , 0x00000002 
+ 00016589  0x0000345f call  0x00003c84 
+ 00016590  0x00003460 call  0x0000405f 
+ 00016591  0x00003463 arg  0x00000016 , 0x00000011 
+ 00016592  0x00003464 arg  0x00000010 , 0x00000002 
+ 00016593  0x00003465 call  0x00002dee 
+ 00016594  0x00003466 setarg  0x00000002 
+ 00016595  0x00003467 istore  0x00000001 , 0x00000005 
+ 00016596  0x00003468 arg  0x00004998 , 0x00000006 
+ 00016597  0x00003469 branch  0x00007c8d 
+ 00016598  0x0000346c jam  0x00000002 , 0x000007aa 
+ 00016599  0x0000346d copy  0x00000012 , 0x00000002 
+ 00016600  0x0000346e copy  0x00000011 , 0x00000006 
+ 00016601  0x0000346f branch  0x00003cfa 
+ 00016602  0x00003473 arg  0x0000095b , 0x00000005 
+ 00016603  0x00003474 setarg  0x00000003 
+ 00016604  0x00003475 istore  0x00000002 , 0x00000005 
+ 00016605  0x00003476 fetch  0x00000005 , 0x00000924 
+ 00016606  0x00003477 istore  0x00000007 , 0x00000005 
+ 00016607  0x00003478 call  0x00004069 
+ 00016608  0x0000347a branch  0x00004006 
+ 00016609  0x0000347d jam  0x00000002 , 0x00000951 
+ 00016610  0x0000347e branch  0x00003f7d 
+ 00016611  0x00003482 copy  0x00000013 , 0x0000003f 
+ 00016612  0x00003483 beq  0x00000015 , 0x000040e8 
+ 00016613  0x00003484 beq  0x00000014 , 0x000040e7 
+ 00016614  0x00003485 rtn 
+ 00016615  0x00003488 branch  0x000040eb 
+ 00016616  0x0000348d setarg  0x00000000 
+ 00016617  0x0000348e store  0x00000002 , 0x0000486c 
+ 00016618  0x0000348f branch  0x00004317 
+ 00016619  0x00003492 setarg  0x00000000 
+ 00016620  0x00003493 store  0x00000002 , 0x00000978 
+ 00016621  0x00003494 arg  0x00000968 , 0x00000005 
+ 00016622  0x00003495 arg  0x00000010 , 0x00000039 
+ 00016623  0x00003496 branch  0x00007ca3 
+ 00016624  0x0000349f call  0x00002a28 
+ 00016625  0x000034a0 nrtn  0x00000034 
+ 00016626  0x000034a2 fetch  0x00000001 , 0x00000789 
+ 00016627  0x000034a3 add  0x0000003f , 0xffffffff , 0x00000011 
+ 00016628  0x000034a4 arg  0x00000010 , 0x00000002 
+ 00016629  0x000034a5 call  0x00002dee 
+ 00016630  0x000034a6 setarg  0x00000000 
+ 00016631  0x000034a7 istore  0x00000001 , 0x00000005 
+ 00016632  0x000034a8 arg  0x0000078c , 0x00000006 
+ 00016633  0x000034a9 branch  0x00007c8d 
+ 00016634  0x000034ac fetch  0x00000001 , 0x000007aa 
+ 00016635  0x000034ad rtneq  0x00000000 
+ 00016636  0x000034ae fetch  0x00000002 , 0x000044e9 
+ 00016637  0x000034af rtnbit0  0x00000009 
+ 00016638  0x000034b0 call  0x00002a28 
+ 00016639  0x000034b1 nrtn  0x00000034 
+ 00016640  0x000034b2 fetch  0x00000001 , 0x0000462a 
+ 00016641  0x000034b3 add  0x0000003f , 0xfffffffb , 0x00000011 
+ 00016642  0x000034b4 arg  0x00000016 , 0x00000002 
+ 00016643  0x000034b5 call  0x00002dee 
+ 00016644  0x000034b6 arg  0x00004630 , 0x00000006 
+ 00016645  0x000034b7 branch  0x00007c8d 
+ 00016646  0x000034ba fetch  0x00000002 , 0x00000968 
+ 00016647  0x000034bb nrtn  0x00000034 
+ 00016648  0x000034bc fetch  0x00000002 , 0x00000927 
+ 00016649  0x000034bd store  0x00000002 , 0x00000968 
+ 00016650  0x000034bf fetch  0x00000002 , 0x00000978 
+ 00016651  0x000034c0 pincrease  0x00000001 
+ 00016652  0x000034c1 store  0x00000002 , 0x00000978 
+ 00016653  0x000034c2 rtn 
+ 00016654  0x000034c6 ifetch  0x00000004 , 0x00000006 
+ 00016655  0x000034c7 force  0x00000004 , 0x00000011 
+ 00016656  0x000034c8 increase  0x00000003 , 0x00000005 
+ 00016657  0x000034ca istore  0x00000001 , 0x00000005 
+ 00016658  0x000034cb rshift8  0x0000003f , 0x0000003f 
+ 00016659  0x000034cc increase  0xfffffffe , 0x00000005 
+ 00016660  0x000034cd increase  0xffffffff , 0x00000011 
+ 00016661  0x000034ce nbranch  0x00004111 , 0x00000005 
+ 00016662  0x000034cf increase  0x00000005 , 0x00000005 
+ 00016663  0x000034d0 loop  0x0000410e 
+ 00016664  0x000034d1 rtn 
+ 00016665  0x000034d5 lshift2  0x00000007 , 0x0000003f 
+ 00016666  0x000034d6 iadd  0x0000000b , 0x00000006 
+ 00016667  0x000034d7 ifetch  0x00000004 , 0x00000006 
+ 00016668  0x000034d8 rtn 
+ 00016669  0x000034db force  0x00000010 , 0x00000030 
+ 00016670  0x000034dc arg  0x00000231 , 0x0000000b 
+ 00016671  0x000034de add  0x00000030 , 0xfffffff9 , 0x00000007 
+ 00016672  0x000034df call  0x00004119 
+ 00016673  0x000034e0 iforce  0x00000002 
+ 00016674  0x000034e1 add  0x00000030 , 0xfffffff0 , 0x00000007 
+ 00016675  0x000034e2 call  0x00004119 
+ 00016676  0x000034e3 iadd  0x00000002 , 0x00000002 
+ 00016677  0x000034e4 add  0x00000030 , 0xfffffffe , 0x00000007 
+ 00016678  0x000034e5 call  0x00004119 
+ 00016679  0x000034e6 shasx  0x0000003f , 0x00000001 , 0x0000003f 
+ 00016680  0x000034e7 iadd  0x00000002 , 0x00000002 
+ 00016681  0x000034e8 add  0x00000030 , 0xfffffff1 , 0x00000007 
+ 00016682  0x000034e9 call  0x00004119 
+ 00016683  0x000034ea shasx  0x0000003f , 0x00000000 , 0x0000003f 
+ 00016684  0x000034eb iadd  0x00000002 , 0x00000002 
+ 00016685  0x000034ec lshift2  0x00000030 , 0x0000003f 
+ 00016686  0x000034ed iadd  0x0000000b , 0x00000005 
+ 00016687  0x000034ee istoret  0x00000004 , 0x00000005 
+ 00016688  0x000034ef increase  0x00000001 , 0x00000030 
+ 00016689  0x000034f0 compare  0x00000040 , 0x00000030 , 0x000000ff 
+ 00016690  0x000034f1 nbranch  0x0000411f , 0x00000001 
+ 00016691  0x000034f2 rtn 
+ 00016692  0x000034f6 arg  0x00000549 , 0x00000006 
+ 00016693  0x000034f7 force  0x00000007 , 0x00000038 
+ 00016694  0x000034f9 ifetch  0x00000004 , 0x00000006 
+ 00016695  0x000034fa iforce  0x0000002f 
+ 00016696  0x000034fb increase  0xffffffff , 0x00000038 
+ 00016697  0x000034fc branch  0x00004136 , 0x00000002 
+ 00016698  0x000034fd rtn 
+ 00016699  0x00003500 bpatchx  0x000000b3 , 0x00004036 
+ 00016700  0x00003501 call  0x0000411d 
+ 00016701  0x00003502 arg  0x00000331 , 0x00000005 
+ 00016702  0x00003503 force  0x00000000 , 0x00000038 
+ 00016703  0x00003505 deposit  0x0000002f 
+ 00016704  0x00003506 istore  0x00000004 , 0x00000005 
+ 00016705  0x00003507 increase  0x00000001 , 0x00000038 
+ 00016706  0x00003508 compare  0x00000008 , 0x00000038 , 0x000000ff 
+ 00016707  0x00003509 nbranch  0x0000413f , 0x00000001 
+ 00016708  0x0000350c arg  0x000095ed , 0x0000000b 
+ 00016709  0x0000350f arg  0x00000231 , 0x00000030 
+ 00016710  0x00003510 force  0x00000040 , 0x00000039 
+ 00016711  0x00003512 ifetcht  0x00000004 , 0x00000030 
+ 00016712  0x00003513 ifetch  0x00000004 , 0x0000000b 
+ 00016713  0x00003514 increase  0x00000004 , 0x0000000b 
+ 00016714  0x00003515 increase  0x00000004 , 0x00000030 
+ 00016715  0x00003516 iadd  0x00000002 , 0x0000003f 
+ 00016716  0x00003517 force  0x00000007 , 0x00000038 
+ 00016717  0x00003518 iadd  0x0000002f , 0x00000002 
+ 00016718  0x00003519 force  0x00000004 , 0x00000038 
+ 00016719  0x0000351a shasx  0x0000002f , 0x00000003 , 0x0000003f 
+ 00016720  0x0000351b iadd  0x00000002 , 0x00000002 
+ 00016721  0x0000351c force  0x00000005 , 0x00000038 
+ 00016722  0x0000351d deposit  0x0000002f 
+ 00016723  0x0000351e force  0x00000006 , 0x00000038 
+ 00016724  0x0000351f ixor  0x0000002f , 0x0000003f 
+ 00016725  0x00003520 force  0x00000004 , 0x00000038 
+ 00016726  0x00003521 iand  0x0000002f , 0x0000003f 
+ 00016727  0x00003522 force  0x00000006 , 0x00000038 
+ 00016728  0x00003523 ixor  0x0000002f , 0x0000003f 
+ 00016729  0x00003524 iadd  0x00000002 , 0x00000002 
+ 00016730  0x00003525 force  0x00000007 , 0x00000038 
+ 00016731  0x00003526 copy  0x00000002 , 0x0000002f 
+ 00016732  0x00003527 force  0x00000003 , 0x00000038 
+ 00016733  0x00003528 deposit  0x0000002f 
+ 00016734  0x00003529 iadd  0x00000002 , 0x0000002f 
+ 00016735  0x0000352a force  0x00000000 , 0x00000038 
+ 00016736  0x0000352b deposit  0x0000002f 
+ 00016737  0x0000352c force  0x00000001 , 0x00000038 
+ 00016738  0x0000352d iand  0x0000002f , 0x00000002 
+ 00016739  0x0000352e ior  0x0000002f , 0x0000003f 
+ 00016740  0x0000352f force  0x00000002 , 0x00000038 
+ 00016741  0x00003530 iand  0x0000002f , 0x0000003f 
+ 00016742  0x00003531 ior  0x00000002 , 0x00000002 
+ 00016743  0x00003532 force  0x00000000 , 0x00000038 
+ 00016744  0x00003533 shasx  0x0000002f , 0x00000002 , 0x0000003f 
+ 00016745  0x00003534 iadd  0x00000002 , 0x0000003f 
+ 00016746  0x00003535 force  0x00000007 , 0x00000038 
+ 00016747  0x00003536 iadd  0x0000002f , 0x0000002f 
+ 00016748  0x00003537 regexrot 
+ 00016749  0x00003538 loop  0x00004147 
+ 00016750  0x00003539 arg  0x00000331 , 0x00000006 
+ 00016751  0x0000353a force  0x00000000 , 0x00000038 
+ 00016752  0x0000353c ifetch  0x00000004 , 0x00000006 
+ 00016753  0x0000353d iadd  0x0000002f , 0x0000002f 
+ 00016754  0x0000353e increase  0x00000001 , 0x00000038 
+ 00016755  0x0000353f compare  0x00000008 , 0x00000038 , 0x000000ff 
+ 00016756  0x00003540 nbranch  0x00004170 , 0x00000001 
+ 00016757  0x00003541 rtn 
+ 00016758  0x00003546 arg  0x000001bd , 0x00000005 
+ 00016759  0x00003547 force  0x00000007 , 0x00000038 
+ 00016760  0x00003549 deposit  0x0000002f 
+ 00016761  0x0000354a istore  0x00000004 , 0x00000005 
+ 00016762  0x0000354b increase  0xffffffff , 0x00000038 
+ 00016763  0x0000354c branch  0x00004178 , 0x00000002 
+ 00016764  0x0000354d rtn 
+ 00016765  0x00003553 bbit0  0x00000006 , 0x00004180 
+ 00016766  0x00003556 call  0x000041a2 
+ 00016767  0x00003557 branch  0x00004182 
+ 00016768  0x0000355a call  0x000041af 
+ 00016769  0x0000355b branch  0x00004182 
+ 00016770  0x00003560 fetch  0x00000001 , 0x00000921 
+ 00016771  0x00003561 pincrease  0xfffffff9 
+ 00016772  0x00003565 arg  0x0000092c , 0x00000030 
+ 00016773  0x00003566 call  0x00007dbc 
+ 00016774  0x00003567 branch  0x00004194 
+ 00016775  0x0000356c fetch  0x00000001 , 0x0000092b 
+ 00016776  0x0000356d bbit0  0x00000006 , 0x0000418b 
+ 00016777  0x0000356f call  0x000041a2 
+ 00016778  0x00003570 branch  0x0000418d 
+ 00016779  0x00003572 call  0x000041af 
+ 00016780  0x00003573 branch  0x0000418d 
+ 00016781  0x00003577 fetch  0x00000001 , 0x00004969 
+ 00016782  0x00003578 ncall  0x00007dba , 0x00000034 
+ 00016783  0x00003579 call  0x00007dbc , 0x00000034 
+ 00016784  0x0000357a fetch  0x00000001 , 0x00004862 
+ 00016785  0x0000357b pincrease  0xfffffffc 
+ 00016786  0x0000357c jam  0x00000000 , 0x00004862 
+ 00016787  0x0000357d arg  0x00004b3c , 0x00000030 
+ 00016788  0x00003582 copy  0x00000030 , 0x00000002 
+ 00016789  0x00003583 call  0x0000419c 
+ 00016790  0x00003584 nrtn  0x00000005 
+ 00016791  0x00003585 call  0x0000419f 
+ 00016792  0x00003586 nrtn  0x00000028 
+ 00016793  0x00003587 fetch  0x00000002 , 0x000008f4 
+ 00016794  0x00003588 copy  0x0000003f , 0x00000030 
+ 00016795  0x00003589 branch  0x00003728 
+ 00016796  0x0000358c nbranch  0x00003ca7 , 0x00000028 
+ 00016797  0x0000358d pincrease  0xfffffffc 
+ 00016798  0x0000358e branch  0x00003ca5 
+ 00016799  0x00003592 setarg  0x0000496a 
+ 00016800  0x00003593 store  0x00000002 , 0x00000910 
+ 00016801  0x00003594 branch  0x000039fb 
+ 00016802  0x00003599 call  0x000041a5 
+ 00016803  0x0000359b arg  0x00004959 , 0x00000006 
+ 00016804  0x0000359c branch  0x0000735f 
+ 00016805  0x0000359e arg  0x0000093f , 0x00000005 
+ 00016806  0x0000359f setarg  0x00000001 
+ 00016807  0x000035a0 istore  0x00000001 , 0x00000005 
+ 00016808  0x000035a1 fetch  0x00000001 , 0x00004969 
+ 00016809  0x000035a2 arg  0x00000000 , 0x00000002 
+ 00016810  0x000035a3 nsetflag  0x00000034 , 0x00000007 , 0x00000002 
+ 00016811  0x000035a4 istoret  0x00000001 , 0x00000005 
+ 00016812  0x000035a5 fetch  0x00000007 , 0x00000924 
+ 00016813  0x000035a6 istore  0x00000007 , 0x00000005 
+ 00016814  0x000035a7 branch  0x00004069 
+ 00016815  0x000035ac call  0x000041b2 
+ 00016816  0x000035ae arg  0x000046a0 , 0x00000006 
+ 00016817  0x000035af branch  0x0000735f 
+ 00016818  0x000035b1 arg  0x0000093f , 0x00000005 
+ 00016819  0x000035b2 setarg  0x00000002 
+ 00016820  0x000035b3 branch  0x000041a7 
+ 00016821  0x000035b9 bpatchx  0x000000b4 , 0x00004036 
+ 00016822  0x000035bb call  0x0000425b 
+ 00016823  0x000035be call  0x000041bd 
+ 00016824  0x000035bf rtn  0x00000028 
+ 00016825  0x000035c0 call  0x000041d0 
+ 00016826  0x000035c2 call  0x00004292 
+ 00016827  0x000035c4 arg  0x00000983 , 0x00000011 
+ 00016828  0x000035c5 branch  0x000078b2 
+ 00016829  0x000035ca call  0x00007dbc 
+ 00016830  0x000035cb arg  0x00000001 , 0x00000002 
+ 00016831  0x000035cd fetch  0x00000001 , 0x00000951 
+ 00016832  0x000035ce sub  0x0000003f , 0x00000002 , 0x0000003e 
+ 00016833  0x000035cf setflag  0x00000005 , 0x00000007 , 0x00000002 
+ 00016834  0x000035d0 storet  0x00000001 , 0x00000983 
+ 00016835  0x000035d1 fetch  0x00000009 , 0x00004998 
+ 00016836  0x000035d2 store  0x00000009 , 0x00000987 
+ 00016837  0x000035d3 fetch  0x00000001 , 0x00000723 
+ 00016838  0x000035d4 rtnne  0x000000d4 
+ 00016839  0x000035d5 fetch  0x00000001 , 0x000047e4 
+ 00016840  0x000035d6 bne  0x00000000 , 0x00007dba 
+ 00016841  0x000035d7 fetch  0x00000001 , 0x00000726 
+ 00016842  0x000035d8 store  0x00000001 , 0x00000986 
+ 00016843  0x000035d9 fetch  0x00000001 , 0x00000983 
+ 00016844  0x000035da pincrease  0x00000001 
+ 00016845  0x000035db set1  0x00000005 , 0x0000003f 
+ 00016846  0x000035dc store  0x00000001 , 0x00000983 
+ 00016847  0x000035dd rtn 
+ 00016848  0x000035e1 fetch  0x00000001 , 0x00000722 
+ 00016849  0x000035e2 copy  0x0000003f , 0x00000039 
+ 00016850  0x000035e3 store  0x00000001 , 0x00000990 
+ 00016851  0x000035e4 fetch  0x00000001 , 0x0000092b 
+ 00016852  0x000035e5 store  0x00000001 , 0x00000991 
+ 00016853  0x000035e6 arg  0x00000996 , 0x00000005 
+ 00016854  0x000035e7 arg  0x00000723 , 0x00000006 
+ 00016855  0x000035e8 branch  0x00007cda 
+ 00016856  0x000035f2 fetch  0x00000001 , 0x000049b5 
+ 00016857  0x000035f3 nrtn  0x00000034 
+ 00016858  0x000035f4 call  0x00004292 
+ 00016859  0x000035f5 arg  0x00000983 , 0x00000011 
+ 00016860  0x000035f6 call  0x000078dc 
+ 00016861  0x000035f7 nrtn  0x00000028 
+ 00016862  0x000035f9 fetcht  0x00000001 , 0x00000983 
+ 00016863  0x000035fa and  0x00000002 , 0x0000000f , 0x0000003f 
+ 00016864  0x000035fb branch  0x0000420b , 0x00000034 
+ 00016865  0x000035fd jam  0x00000001 , 0x000049b5 
+ 00016866  0x000035ff call  0x000041fc 
+ 00016867  0x00003601 fetcht  0x00000001 , 0x00000983 
+ 00016868  0x00003602 call  0x00004202 
+ 00016869  0x00003603 store  0x00000001 , 0x000049b6 
+ 00016870  0x00003605 fetch  0x00000001 , 0x000049b7 
+ 00016871  0x00003606 isolate1  0x00000007 , 0x00000002 
+ 00016872  0x00003607 setflag  0x00000001 , 0x00000002 , 0x0000003f 
+ 00016873  0x00003608 store  0x00000001 , 0x000049b7 
+ 00016874  0x00003610 set1  0x00000004 , 0x00000002 
+ 00016875  0x00003612 increase  0xffffffff , 0x00000002 
+ 00016876  0x00003613 istoret  0x00000001 , 0x00000012 
+ 00016877  0x00003615 fetcht  0x00000001 , 0x00000983 
+ 00016878  0x00003616 isolate1  0x00000004 , 0x00000002 
+ 00016879  0x00003617 nbranch  0x0000420f , 0x00000001 
+ 00016880  0x00003618 fetcht  0x00000001 , 0x00000990 
+ 00016881  0x00003619 storet  0x00000001 , 0x00000722 
+ 00016882  0x0000361a copy  0x00000002 , 0x00000039 
+ 00016883  0x0000361b arg  0x00000723 , 0x00000005 
+ 00016884  0x0000361c arg  0x00000996 , 0x00000006 
+ 00016885  0x0000361d call  0x00007cda 
+ 00016886  0x0000361f sub  0x00000002 , 0x0000000f , 0x0000003e 
+ 00016887  0x00003620 nbranch  0x000041f9 , 0x00000002 
+ 00016888  0x00003622 branch  0x00003ec1 
+ 00016889  0x00003626 fetch  0x00000004 , 0x00000992 
+ 00016890  0x00003627 store  0x00000004 , 0x0000097e 
+ 00016891  0x00003628 branch  0x00004230 
+ 00016892  0x0000362c fetch  0x00000001 , 0x00000991 
+ 00016893  0x0000362d store  0x00000001 , 0x0000092b 
+ 00016894  0x0000362f fetch  0x00000009 , 0x00000987 
+ 00016895  0x00003630 store  0x00000009 , 0x00004998 
+ 00016896  0x00003631 store  0x00000009 , 0x00000922 
+ 00016897  0x00003632 rtn 
+ 00016898  0x00003636 jam  0x00000001 , 0x000049b7 
+ 00016899  0x00003637 fetch  0x00000001 , 0x00000986 
+ 00016900  0x00003638 isolate1  0x00000005 , 0x00000002 
+ 00016901  0x00003639 rtn  0x00000001 
+ 00016902  0x0000363a setarg  0x00000000 
+ 00016903  0x0000363b rtn 
+ 00016904  0x0000363e add  0x00000011 , 0x0000001a , 0x00000005 
+ 00016905  0x0000363f istore  0x00000001 , 0x00000005 
+ 00016906  0x00003640 rtn 
+ 00016907  0x00003644 jam  0x00000000 , 0x000049b6 
+ 00016908  0x00003645 call  0x00004292 
+ 00016909  0x00003646 arg  0x00000983 , 0x00000011 
+ 00016910  0x00003647 branch  0x000078ca 
+ 00016911  0x0000364a call  0x00004253 
+ 00016912  0x0000364b call  0x00004267 
+ 00016913  0x0000364c fetch  0x00000009 , 0x00004998 
+ 00016914  0x0000364d store  0x00000009 , 0x00000987 
+ 00016915  0x0000364e call  0x00004228 
+ 00016916  0x0000364f setarg  0x00000000 
+ 00016917  0x00003650 store  0x00000001 , 0x00004969 
+ 00016918  0x00003651 call  0x00004249 
+ 00016919  0x00003653 fetcht  0x00000001 , 0x00000722 
+ 00016920  0x00003654 storet  0x00000001 , 0x00000990 
+ 00016921  0x00003655 copy  0x00000002 , 0x00000039 
+ 00016922  0x00003656 arg  0x00000723 , 0x00000006 
+ 00016923  0x00003657 arg  0x00000996 , 0x00000005 
+ 00016924  0x00003658 call  0x00007cda 
+ 00016925  0x0000365a sub  0x00000002 , 0x0000000f , 0x0000003e 
+ 00016926  0x0000365b nbranch  0x00004222 , 0x00000002 
+ 00016927  0x0000365d arg  0x00000984 , 0x00000011 
+ 00016928  0x0000365e call  0x000078eb 
+ 00016929  0x0000365f branch  0x00003ec1 
+ 00016930  0x00003662 call  0x0000426f 
+ 00016931  0x00003663 fetch  0x00000004 , 0x0000097e 
+ 00016932  0x00003664 store  0x00000004 , 0x00000992 
+ 00016933  0x00003665 arg  0x00000984 , 0x00000011 
+ 00016934  0x00003666 call  0x000078eb 
+ 00016935  0x00003667 branch  0x00004230 
+ 00016936  0x0000366a fetch  0x00000001 , 0x00000990 
+ 00016937  0x0000366b copy  0x0000003f , 0x00000039 
+ 00016938  0x0000366c store  0x00000001 , 0x00000722 
+ 00016939  0x0000366d fetch  0x00000001 , 0x00000991 
+ 00016940  0x0000366e store  0x00000001 , 0x0000092b 
+ 00016941  0x0000366f arg  0x00000996 , 0x00000006 
+ 00016942  0x00003670 arg  0x00000723 , 0x00000005 
+ 00016943  0x00003671 branch  0x00007cda 
+ 00016944  0x00003674 call  0x0000427c 
+ 00016945  0x00003675 setarg  0x00000723 
+ 00016946  0x00003676 store  0x00000002 , 0x0000097b 
+ 00016947  0x00003678 call  0x000041fc 
+ 00016948  0x00003679 call  0x00004253 
+ 00016949  0x0000367a call  0x00004267 
+ 00016950  0x0000367c fetcht  0x00000001 , 0x00000722 
+ 00016951  0x0000367d setarg  0x0000000c 
+ 00016952  0x0000367e call  0x00007db0 
+ 00016953  0x0000367f copy  0x0000003f , 0x00000011 
+ 00016954  0x00003680 copy  0x00000002 , 0x0000003f 
+ 00016955  0x00003681 isub  0x00000011 , 0x0000003f 
+ 00016956  0x00003682 store  0x00000001 , 0x00000722 
+ 00016957  0x00003683 fetch  0x00000002 , 0x0000097b 
+ 00016958  0x00003684 copy  0x0000003f , 0x00000006 
+ 00016959  0x00003685 iadd  0x00000011 , 0x00000002 
+ 00016960  0x00003686 storet  0x00000002 , 0x0000097b 
+ 00016961  0x00003687 call  0x00003ecb 
+ 00016962  0x00003688 fetch  0x00000001 , 0x00000722 
+ 00016963  0x00003689 rtn  0x00000034 
+ 00016964  0x0000368a fetch  0x00000001 , 0x00000980 
+ 00016965  0x0000368b pincrease  0x00000001 
+ 00016966  0x0000368c store  0x00000001 , 0x00000980 
+ 00016967  0x0000368d call  0x0000427c 
+ 00016968  0x0000368e branch  0x00004233 
+ 00016969  0x00003694 fetch  0x00000001 , 0x0000092b 
+ 00016970  0x00003695 bbit0  0x00000006 , 0x0000424d 
+ 00016971  0x00003697 call  0x000041a2 
+ 00016972  0x00003698 branch  0x0000424e 
+ 00016973  0x0000369a call  0x000041af 
+ 00016974  0x0000369c fetch  0x00000001 , 0x00000722 
+ 00016975  0x0000369d add  0x0000003f , 0x00000004 , 0x00000002 
+ 00016976  0x0000369e storet  0x00000001 , 0x00000722 
+ 00016977  0x0000369f arg  0x00000723 , 0x00000002 
+ 00016978  0x000036a0 branch  0x00003c86 
+ 00016979  0x000036a6 fetch  0x00000003 , 0x00004992 
+ 00016980  0x000036a7 pincrease  0x00000001 
+ 00016981  0x000036a8 store  0x00000003 , 0x00004992 
+ 00016982  0x000036a9 fetch  0x00000001 , 0x00004808 
+ 00016983  0x000036aa pincrease  0x00000001 
+ 00016984  0x000036ab store  0x00000001 , 0x00004808 
+ 00016985  0x000036ac fetch  0x00000002 , 0x00004846 
+ 00016986  0x000036ad branch  0x00007d79 
+ 00016987  0x000036b2 fetch  0x00000001 , 0x00004871 
+ 00016988  0x000036b3 lshift4  0x0000003f , 0x0000003f 
+ 00016989  0x000036b4 lshift3  0x0000003f , 0x0000003f 
+ 00016990  0x000036b5 fetcht  0x00000001 , 0x0000474d 
+ 00016991  0x000036b6 ior  0x00000002 , 0x0000003f 
+ 00016992  0x000036b7 store  0x00000001 , 0x00004998 
+ 00016993  0x000036b8 fetch  0x00000001 , 0x00004997 
+ 00016994  0x000036b9 store  0x00000001 , 0x00004999 
+ 00016995  0x000036ba fetch  0x00000002 , 0x00004995 
+ 00016996  0x000036bb store  0x00000002 , 0x0000499d 
+ 00016997  0x000036bc fetch  0x00000002 , 0x0000094c 
+ 00016998  0x000036bd store  0x00000002 , 0x0000499f 
+ 00016999  0x000036c0 fetch  0x00000003 , 0x00004992 
+ 00017000  0x000036c1 store  0x00000003 , 0x0000499a 
+ 00017001  0x000036c2 arg  0x0000499a , 0x00000011 
+ 00017002  0x000036c3 arg  0x00000003 , 0x00000039 
+ 00017003  0x000036c4 call  0x00007cb1 
+ 00017004  0x000036c5 fetch  0x00000008 , 0x00004999 
+ 00017005  0x000036c6 store  0x00000008 , 0x00000923 
+ 00017006  0x000036c7 rtn 
+ 00017007  0x000036ca fetch  0x00000001 , 0x00000722 
+ 00017008  0x000036cb div  0x0000003f , 0x0000000c 
+ 00017009  0x000036cc call  0x00007d62 
+ 00017010  0x000036cd quotient  0x00000002 
+ 00017011  0x000036ce remainder  0x0000003f 
+ 00017012  0x000036cf call  0x0000428f , 0x00000034 
+ 00017013  0x000036d0 storet  0x00000001 , 0x00000981 
+ 00017014  0x000036d1 jam  0x00000000 , 0x00000980 
+ 00017015  0x000036d2 fetch  0x00000003 , 0x00004992 
+ 00017016  0x000036d3 arg  0x00001fff , 0x00000002 
+ 00017017  0x000036d4 iand  0x00000002 , 0x0000003f 
+ 00017018  0x000036d5 store  0x00000002 , 0x0000097e 
+ 00017019  0x000036d6 rtn 
+ 00017020  0x000036d9 fetch  0x00000002 , 0x0000097e 
+ 00017021  0x000036da lshift4  0x0000003f , 0x0000003f 
+ 00017022  0x000036db lshift  0x0000003f , 0x0000003f 
+ 00017023  0x000036dc fetcht  0x00000001 , 0x00000980 
+ 00017024  0x000036dd ior  0x00000002 , 0x0000003f 
+ 00017025  0x000036de lshift4  0x0000003f , 0x0000003f 
+ 00017026  0x000036df lshift  0x0000003f , 0x0000003f 
+ 00017027  0x000036e0 fetcht  0x00000001 , 0x00000981 
+ 00017028  0x000036e1 ior  0x00000002 , 0x0000003f 
+ 00017029  0x000036e2 store  0x00000003 , 0x000049a2 
+ 00017030  0x000036e3 arg  0x00000003 , 0x00000039 
+ 00017031  0x000036e4 arg  0x000049a2 , 0x00000011 
+ 00017032  0x000036e5 branch  0x00007cb1 
+ 00017033  0x000036e8 arg  0x000049b8 , 0x00000013 
+ 00017034  0x000036e9 arg  0x0000428c , 0x00000012 
+ 00017035  0x000036ea branch  0x000042e0 
+ 00017036  0x000036ed arg  0x00000028 , 0x00000039 
+ 00017037  0x000036ee arg  0x0000496a , 0x00000005 
+ 00017038  0x000036ef branch  0x00007ca1 
+ 00017039  0x000036f3 increase  0xffffffff , 0x00000002 
+ 00017040  0x000036f4 rtn 
+ 00017041  0x000036f7 branch  0x00003b2a 
+ 00017042  0x000036fb setarg  0x000049b9 
+ 00017043  0x000036fc store  0x00000002 , 0x000043fb 
+ 00017044  0x000036fd rtn 
+ 00017045  0x00003701 bpatch  0x000000b1 , 0x00004016 
+ 00017046  0x00003702 fetch  0x00000001 , 0x000043cb 
+ 00017047  0x00003703 branch  0x00004295 , 0x00000034 
+ 00017048  0x00003704 beq  0x00000004 , 0x000047b7 
+ 00017049  0x00003705 beq  0x00000009 , 0x000062ae 
+ 00017050  0x00003706 beq  0x0000000a , 0x00005099 
+ 00017051  0x00003707 beq  0x0000000e , 0x000043b2 
+ 00017052  0x00003708 beq  0x00000006 , 0x0000646e 
+ 00017053  0x00003709 beq  0x0000000d , 0x00004672 
+ 00017054  0x0000370a beq  0x0000000f , 0x00004959 
+ 00017055  0x0000370b beq  0x0000000c , 0x00006882 
+ 00017056  0x0000370d beq  0x00000008 , 0x000053e0 
+ 00017057  0x0000370e beq  0x0000000b , 0x00003e02 
+ 00017058  0x0000370f rtn 
+ 00017059  0x00003713 rtn  0x0000002b 
+ 00017060  0x00003714 call  0x00006f74 
+ 00017061  0x00003715 fetch  0x00000001 , 0x000043cb 
+ 00017062  0x00003716 beq  0x00000009 , 0x000063d9 
+ 00017063  0x00003717 beq  0x00000006 , 0x000063d9 
+ 00017064  0x00003718 beq  0x00000004 , 0x000047c2 
+ 00017065  0x00003719 beq  0x00000008 , 0x00005428 
+ 00017066  0x0000371a beq  0x0000000f , 0x0000542c 
+ 00017067  0x0000371b beq  0x0000000d , 0x00004772 
+ 00017068  0x0000371c rtn 
+ 00017069  0x0000371f call  0x00007774 
+ 00017070  0x00003720 call  0x00007841 
+ 00017071  0x00003721 call  0x000042b4 
+ 00017072  0x00003722 fetch  0x00000002 , 0x000043db 
+ 00017073  0x00003723 branch  0x00007d79 
+ 00017074  0x00003726 fetch  0x00000002 , 0x000043d9 
+ 00017075  0x00003727 branch  0x00007d79 
+ 00017076  0x0000372a bpatch  0x000000b2 , 0x00004016 
+ 00017077  0x0000372c arg  0x000044d3 , 0x00000011 
+ 00017078  0x0000372d call  0x00007d97 
+ 00017079  0x0000372e rtn  0x00000034 
+ 00017080  0x00003730 copy  0x0000003f , 0x00000013 
+ 00017081  0x00003731 call  0x000042bd 
+ 00017082  0x00003732 branch  0x000042c1 
+ 00017083  0x00003735 arg  0x00000000 , 0x00000013 
+ 00017084  0x00003736 rtn 
+ 00017085  0x0000373c beq  0x00000010 , 0x000042d0 
+ 00017086  0x0000373d beq  0x00000014 , 0x000042c7 
+ 00017087  0x0000373e beq  0x00000015 , 0x000042cb 
+ 00017088  0x0000373f rtn 
+ 00017089  0x00003744 fetch  0x00000002 , 0x000043dd 
+ 00017090  0x00003745 branch  0x00007d79 
+ 00017091  0x00003748 fetch  0x00000002 , 0x000043d3 
+ 00017092  0x00003749 branch  0x00007d79 
+ 00017093  0x0000374c fetch  0x00000002 , 0x000043d7 
+ 00017094  0x0000374d branch  0x00007d79 
+ 00017095  0x00003750 fetch  0x00000002 , 0x000044e9 
+ 00017096  0x00003751 set1  0x00000009 , 0x0000003f 
+ 00017097  0x00003752 store  0x00000002 , 0x000044e9 
+ 00017098  0x00003753 rtn 
+ 00017099  0x00003756 jam  0x00000000 , 0x00004396 
+ 00017100  0x00003757 fetch  0x00000002 , 0x000044e9 
+ 00017101  0x00003758 set0  0x00000009 , 0x0000003f 
+ 00017102  0x00003759 store  0x00000002 , 0x000044e9 
+ 00017103  0x0000375a branch  0x0000432d 
+ 00017104  0x0000375e fetch  0x00000002 , 0x000043f1 
+ 00017105  0x0000375f set1  0x00000000 , 0x0000003f 
+ 00017106  0x00003760 store  0x00000002 , 0x000043f1 
+ 00017107  0x00003761 rtn 
+ 00017108  0x00003765 store  0x00000001 , 0x0000021d 
+ 00017109  0x00003767 bpatch  0x000000b3 , 0x00004016 
+ 00017110  0x00003768 fetch  0x00000001 , 0x0000021d 
+ 00017111  0x00003769 rtn  0x00000034 
+ 00017112  0x0000376a increase  0xffffffff , 0x0000003f 
+ 00017113  0x0000376b store  0x00000001 , 0x0000021d 
+ 00017114  0x0000376c call  0x00007780 
+ 00017115  0x0000376d call  0x0000430e 
+ 00017116  0x0000376e call  0x00006beb 
+ 00017117  0x0000376f fetch  0x00000002 , 0x000043e3 
+ 00017118  0x00003770 call  0x00007d79 
+ 00017119  0x00003771 branch  0x000042d5 
+ 00017120  0x00003777 ifetch  0x00000001 , 0x00000013 
+ 00017121  0x00003778 rtn  0x00000034 
+ 00017122  0x00003779 pincrease  0xffffffff 
+ 00017123  0x0000377a istore  0x00000001 , 0x00000013 
+ 00017124  0x0000377b nrtn  0x00000034 
+ 00017125  0x0000377c copy  0x00000012 , 0x0000003f 
+ 00017126  0x0000377d branch  0x00007d79 
+ 00017127  0x00003782 ifetch  0x00000002 , 0x00000013 
+ 00017128  0x00003783 rtn  0x00000034 
+ 00017129  0x00003784 pincrease  0xffffffff 
+ 00017130  0x00003785 istore  0x00000002 , 0x00000013 
+ 00017131  0x00003786 nrtn  0x00000034 
+ 00017132  0x00003787 copy  0x00000012 , 0x0000003f 
+ 00017133  0x00003788 branch  0x00007d79 
+ 00017134  0x0000378b fetcht  0x00000002 , 0x00004430 
+ 00017135  0x0000378c add  0x00000002 , 0x00000001 , 0x00000013 
+ 00017136  0x0000378d arg  0x000042f2 , 0x00000012 
+ 00017137  0x0000378e branch  0x000042e0 
+ 00017138  0x00003791 call  0x00004343 
+ 00017139  0x00003792 beq  0x00000001 , 0x000042f5 
+ 00017140  0x00003794 branch  0x00004327 
+ 00017141  0x00003796 setarg  0x00000002 
+ 00017142  0x00003797 istore  0x00000001 , 0x00000013 
+ 00017143  0x00003798 add  0x00000002 , 0x00000008 , 0x00000012 
+ 00017144  0x0000379a ifetch  0x00000002 , 0x00000012 
+ 00017145  0x0000379b branch  0x00007d79 
+ 00017146  0x0000379f call  0x000042fc 
+ 00017147  0x000037a0 branch  0x00004327 
+ 00017148  0x000037a4 setarg  0x00000000 
+ 00017149  0x000037a5 store  0x00000002 , 0x000043ef 
+ 00017150  0x000037a6 rtn 
+ 00017151  0x000037a8 setarg  0x00000000 
+ 00017152  0x000037a9 store  0x00000002 , 0x000043f1 
+ 00017153  0x000037aa rtn 
+ 00017154  0x000037af fetch  0x00000002 , 0x000043f1 
+ 00017155  0x000037b0 set1  0x00000007 , 0x0000003f 
+ 00017156  0x000037b1 store  0x00000002 , 0x000043ef 
+ 00017157  0x000037b2 setarg  0x00000000 
+ 00017158  0x000037b3 store  0x00000002 , 0x000043f1 
+ 00017159  0x000037b4 rtn 
+ 00017160  0x000037bd arg  0x00000009 , 0x00000007 
+ 00017161  0x000037be branch  0x000024e7 
+ 00017162  0x000037c1 arg  0x00000009 , 0x00000007 
+ 00017163  0x000037c2 branch  0x000024eb 
+ 00017164  0x000037c5 jam  0x00000005 , 0x000043ed 
+ 00017165  0x000037c6 branch  0x00004308 
+ 00017166  0x000037c9 arg  0x000043ed , 0x00000013 
+ 00017167  0x000037ca arg  0x0000430a , 0x00000012 
+ 00017168  0x000037cb branch  0x000042e0 
+ 00017169  0x000037cf jam  0x0000000f , 0x0000066f 
+ 00017170  0x000037d0 branch  0x00007834 
+ 00017171  0x000037d3 jam  0x00000010 , 0x0000066f 
+ 00017172  0x000037d4 branch  0x00007834 
+ 00017173  0x000037d7 jam  0x0000000e , 0x0000066f 
+ 00017174  0x000037d8 branch  0x00007834 
+ 00017175  0x000037db jam  0x0000000d , 0x0000066f 
+ 00017176  0x000037dc branch  0x00007834 
+ 00017177  0x000037df jam  0x00000017 , 0x0000066f 
+ 00017178  0x000037e0 branch  0x00007834 
+ 00017179  0x000037e3 jam  0x00000018 , 0x0000066f 
+ 00017180  0x000037e4 branch  0x00007834 
+ 00017181  0x000037e7 jam  0x00000016 , 0x0000066f 
+ 00017182  0x000037e8 branch  0x00007834 
+ 00017183  0x000037eb jam  0x00000011 , 0x0000066f 
+ 00017184  0x000037ec branch  0x00007834 
+ 00017185  0x000037ef jam  0x00000015 , 0x0000066f 
+ 00017186  0x000037f0 branch  0x00007834 
+ 00017187  0x000037f3 jam  0x00000014 , 0x0000066f 
+ 00017188  0x000037f4 branch  0x00007834 
+ 00017189  0x000037f8 jam  0x00000013 , 0x0000066f 
+ 00017190  0x000037f9 branch  0x00007834 
+ 00017191  0x000037fc jam  0x00000019 , 0x0000066f 
+ 00017192  0x000037fd branch  0x00007834 
+ 00017193  0x00003801 jam  0x0000001f , 0x0000066f 
+ 00017194  0x00003802 branch  0x00007834 
+ 00017195  0x00003806 set1  0x0000000d , 0x00000000 
+ 00017196  0x00003807 rtn 
+ 00017197  0x0000380a set0  0x0000000d , 0x00000000 
+ 00017198  0x0000380b rtn 
+ 00017199  0x0000380f call  0x00004343 
+ 00017200  0x00003810 beq  0x00000002 , 0x00004339 
+ 00017201  0x00003812 setarg  0x00000001 
+ 00017202  0x00003813 istore  0x00000001 , 0x00000013 
+ 00017203  0x00003814 add  0x00000002 , 0x00000003 , 0x00000011 
+ 00017204  0x00003815 add  0x00000002 , 0x00000006 , 0x00000012 
+ 00017205  0x00003817 ifetcht  0x00000001 , 0x00000011 
+ 00017206  0x00003818 increase  0x00000001 , 0x00000013 
+ 00017207  0x00003819 istoret  0x00000001 , 0x00000013 
+ 00017208  0x0000381a branch  0x000042f8 
+ 00017209  0x0000381d setarg  0x00000000 
+ 00017210  0x0000381e istore  0x00000001 , 0x00000013 
+ 00017211  0x0000381f fetch  0x00000002 , 0x000044e9 
+ 00017212  0x00003820 bbit0  0x00000009 , 0x0000433f 
+ 00017213  0x00003821 call  0x000030c5 
+ 00017214  0x00003822 call  0x0000431f 
+ 00017215  0x00003824 fetcht  0x00000002 , 0x00004430 
+ 00017216  0x00003825 add  0x00000002 , 0x00000002 , 0x00000011 
+ 00017217  0x00003826 add  0x00000002 , 0x00000004 , 0x00000012 
+ 00017218  0x00003827 branch  0x00004335 
+ 00017219  0x0000382a fetcht  0x00000002 , 0x00004430 
+ 00017220  0x0000382b add  0x00000002 , 0x00000000 , 0x00000013 
+ 00017221  0x0000382c ifetch  0x00000001 , 0x00000013 
+ 00017222  0x0000382d rtn 
+ 00017223  0x00003830 call  0x00004343 
+ 00017224  0x00003831 bne  0x00000000 , 0x0000434a 
+ 00017225  0x00003832 branch  0x00004327 
+ 00017226  0x00003834 add  0x00000002 , 0x0000000a , 0x00000012 
+ 00017227  0x00003835 branch  0x000042f8 
+ 00017228  0x0000383c fetch  0x00000008 , 0x00004ceb 
+ 00017229  0x0000383d store  0x00000008 , 0x00004cfe 
+ 00017230  0x0000383e jam  0x00000000 , 0x00004d0e 
+ 00017231  0x0000383f fetch  0x00000001 , 0x00004d02 
+ 00017232  0x00003840 lshift2  0x0000003f , 0x0000003f 
+ 00017233  0x00003841 arg  0x00004b87 , 0x00000002 
+ 00017234  0x00003842 iadd  0x00000002 , 0x00000002 
+ 00017235  0x00003843 ifetch  0x00000004 , 0x00000002 
+ 00017236  0x00003844 store  0x00000004 , 0x00004cfa 
+ 00017237  0x00003846 fetch  0x00000001 , 0x00004d0e 
+ 00017238  0x00003847 nbranch  0x0000435f , 0x00000034 
+ 00017239  0x00003848 fetcht  0x00000002 , 0x00004cf4 
+ 00017240  0x00003849 ifetch  0x00000001 , 0x00000002 
+ 00017241  0x0000384a store  0x00000001 , 0x00004d0a 
+ 00017242  0x0000384b increase  0x00000001 , 0x00000002 
+ 00017243  0x0000384c storet  0x00000002 , 0x00004cf4 
+ 00017244  0x0000384d rshift4  0x0000003f , 0x0000003f 
+ 00017245  0x0000384e store  0x00000001 , 0x00004cf9 
+ 00017246  0x0000384f branch  0x00004362 
+ 00017247  0x00003851 fetch  0x00000001 , 0x00004d0a 
+ 00017248  0x00003852 and  0x0000003f , 0x0000000f , 0x0000003f 
+ 00017249  0x00003853 store  0x00000001 , 0x00004cf9 
+ 00017250  0x00003855 fetch  0x00000001 , 0x00004d0e 
+ 00017251  0x00003856 setflip  0x00000000 , 0x0000003f 
+ 00017252  0x00003857 store  0x00000001 , 0x00004d0e 
+ 00017253  0x00003858 arg  0x00004b77 , 0x00000002 
+ 00017254  0x00003859 fetch  0x00000001 , 0x00004cf9 
+ 00017255  0x0000385a iadd  0x00000002 , 0x00000002 
+ 00017256  0x0000385b ifetch  0x00000001 , 0x00000002 
+ 00017257  0x0000385c fetcht  0x00000001 , 0x00004d02 
+ 00017258  0x0000385d call  0x0000439a 
+ 00017259  0x0000385e store  0x00000001 , 0x00004d02 
+ 00017260  0x00003860 fetch  0x00000001 , 0x00004cf9 
+ 00017261  0x00003861 and  0x0000003f , 0x00000008 , 0x00000002 
+ 00017262  0x00003862 storet  0x00000001 , 0x00004cf8 
+ 00017263  0x00003863 and  0x0000003f , 0x00000007 , 0x00000002 
+ 00017264  0x00003864 storet  0x00000001 , 0x00004cf9 
+ 00017265  0x00003866 call  0x000043a3 
+ 00017266  0x00003867 storet  0x00000004 , 0x00004d06 
+ 00017267  0x00003869 fetch  0x00000001 , 0x00004cf8 
+ 00017268  0x0000386a branch  0x00004379 , 0x00000034 
+ 00017269  0x0000386b fetch  0x00000004 , 0x00004cfe 
+ 00017270  0x0000386c fetcht  0x00000004 , 0x00004d06 
+ 00017271  0x0000386d isub  0x00000002 , 0x0000003f 
+ 00017272  0x0000386e branch  0x0000437c 
+ 00017273  0x00003870 fetch  0x00000004 , 0x00004cfe 
+ 00017274  0x00003871 fetcht  0x00000004 , 0x00004d06 
+ 00017275  0x00003872 iadd  0x00000002 , 0x0000003f 
+ 00017276  0x00003874 store  0x00000004 , 0x00004cfe 
+ 00017277  0x00003875 arg  0x00007fff , 0x00000002 
+ 00017278  0x00003876 isub  0x00000002 , 0x0000003f 
+ 00017279  0x00003877 bbit1  0x0000001f , 0x00004382 
+ 00017280  0x00003878 storet  0x00000004 , 0x00004cfe 
+ 00017281  0x00003879 branch  0x00004388 
+ 00017282  0x0000387b fetch  0x00000004 , 0x00004cfe 
+ 00017283  0x0000387c arg  0x00008000 , 0x00000002 
+ 00017284  0x0000387d iadd  0x00000002 , 0x0000003f 
+ 00017285  0x0000387e bbit0  0x0000001f , 0x00004388 
+ 00017286  0x0000387f arg  0xffff8000 , 0x00000002 
+ 00017287  0x00003880 storet  0x00000004 , 0x00004cfe 
+ 00017288  0x00003882 fetch  0x00000001 , 0x00004d02 
+ 00017289  0x00003883 lshift2  0x0000003f , 0x0000003f 
+ 00017290  0x00003884 arg  0x00004b87 , 0x00000002 
+ 00017291  0x00003885 iadd  0x00000002 , 0x00000002 
+ 00017292  0x00003886 ifetch  0x00000004 , 0x00000002 
+ 00017293  0x00003887 store  0x00000004 , 0x00004cfa 
+ 00017294  0x00003889 fetch  0x00000002 , 0x00004cf6 
+ 00017295  0x0000388a fetcht  0x00000002 , 0x00004cfe 
+ 00017296  0x0000388b istoret  0x00000002 , 0x0000003f 
+ 00017297  0x0000388c increase  0x00000002 , 0x0000003f 
+ 00017298  0x0000388d store  0x00000002 , 0x00004cf6 
+ 00017299  0x0000388f fetch  0x00000001 , 0x00004cf3 
+ 00017300  0x00003890 increase  0xffffffff , 0x0000003f 
+ 00017301  0x00003891 store  0x00000001 , 0x00004cf3 
+ 00017302  0x00003892 nbranch  0x00004355 , 0x00000034 
+ 00017303  0x00003893 fetch  0x00000008 , 0x00004cfe 
+ 00017304  0x00003894 store  0x00000008 , 0x00004ceb 
+ 00017305  0x00003895 rtn 
+ 00017306  0x00003898 iadd  0x00000002 , 0x0000003f 
+ 00017307  0x00003899 bbit0  0x00000007 , 0x0000439e 
+ 00017308  0x0000389a setarg  0x00000000 
+ 00017309  0x0000389b rtn 
+ 00017310  0x0000389d and  0x0000003f , 0x000000ff , 0x0000003f 
+ 00017311  0x0000389e sub  0x0000003f , 0x00000058 , 0x0000003e 
+ 00017312  0x0000389f rtn  0x00000002 
+ 00017313  0x000038a0 setarg  0x00000058 
+ 00017314  0x000038a1 rtn 
+ 00017315  0x000038a4 fetchr  0x00000011 , 0x00000004 , 0x00004cfa 
+ 00017316  0x000038a5 rshift3  0x00000011 , 0x00000002 
+ 00017317  0x000038a6 fetch  0x00000001 , 0x00004cf9 
+ 00017318  0x000038a7 bbit0  0x00000002 , 0x000043a9 
+ 00017319  0x000038a8 copy  0x00000011 , 0x0000003f 
+ 00017320  0x000038a9 iadd  0x00000002 , 0x00000002 
+ 00017321  0x000038ab fetch  0x00000001 , 0x00004cf9 
+ 00017322  0x000038ac bbit0  0x00000001 , 0x000043ad 
+ 00017323  0x000038ad rshift  0x00000011 , 0x0000003f 
+ 00017324  0x000038ae iadd  0x00000002 , 0x00000002 
+ 00017325  0x000038b0 fetch  0x00000001 , 0x00004cf9 
+ 00017326  0x000038b1 rtnbit0  0x00000000 
+ 00017327  0x000038b2 rshift2  0x00000011 , 0x0000003f 
+ 00017328  0x000038b3 iadd  0x00000002 , 0x00000002 
+ 00017329  0x000038b4 rtn 
+ 00017330  0x000038ba call  0x00007396 
+ 00017331  0x000038bb rtn  0x0000002b 
+ 00017332  0x000038bc setarg  0x000045be 
+ 00017333  0x000038bd store  0x00000002 , 0x000045e0 
+ 00017334  0x000038bf setarg  0x0000330a 
+ 00017335  0x000038c0 store  0x00000002 , 0x000045e2 
+ 00017336  0x000038c2 setarg  0x0000465e 
+ 00017337  0x000038c3 store  0x00000002 , 0x000045e4 
+ 00017338  0x000038c5 setarg  0x0000442e 
+ 00017339  0x000038c6 store  0x00000002 , 0x000043d5 
+ 00017340  0x000038c8 setarg  0x00004430 
+ 00017341  0x000038c9 store  0x00000002 , 0x000043d7 
+ 00017342  0x000038cb setarg  0x00004455 
+ 00017343  0x000038cc store  0x00000002 , 0x000043db 
+ 00017344  0x000038ce setarg  0x00004476 
+ 00017345  0x000038cf store  0x00000002 , 0x000043dd 
+ 00017346  0x000038d1 setarg  0x00004308 
+ 00017347  0x000038d2 store  0x00000002 , 0x000043d3 
+ 00017348  0x000038d4 setarg  0x000044d1 
+ 00017349  0x000038d5 store  0x00000002 , 0x000043df 
+ 00017350  0x000038d7 setarg  0x00004494 
+ 00017351  0x000038d8 store  0x00000002 , 0x000043e3 
+ 00017352  0x000038da bpatch  0x0000002e , 0x00004005 
+ 00017353  0x000038db call  0x00004412 
+ 00017354  0x000038dc call  0x00004463 
+ 00017355  0x000038dd call  0x000078ad 
+ 00017356  0x000038de jam  0x00000002 , 0x000040c0 
+ 00017357  0x000038df jam  0x00000000 , 0x000049b7 
+ 00017358  0x000038e0 fetch  0x00000001 , 0x00004779 
+ 00017359  0x000038e1 store  0x00000001 , 0x00004648 
+ 00017360  0x000038e2 beq  0x00000000 , 0x000043db 
+ 00017361  0x000038e3 fetch  0x00000001 , 0x0000477a 
+ 00017362  0x000038e4 store  0x00000001 , 0x000044ec 
+ 00017363  0x000038e5 jam  0x00000000 , 0x00004388 
+ 00017364  0x000038e7 call  0x00007776 
+ 00017365  0x000038e8 call  0x00007780 
+ 00017366  0x000038e9 jam  0x00000001 , 0x000047a1 
+ 00017367  0x000038ea fetch  0x00000002 , 0x000044e9 
+ 00017368  0x000038eb rtnbit1  0x0000000c 
+ 00017369  0x000038ec branch  0x00004327 
+ 00017370  0x000038f0 branch  0x000043f9 
+ 00017371  0x000038f3 jam  0x00000002 , 0x000047a1 
+ 00017372  0x000038f5 jam  0x00000001 , 0x00004388 
+ 00017373  0x000038f6 setarg  0x00000020 
+ 00017374  0x000038f7 call  0x000063c7 
+ 00017375  0x000038f9 arg  0x00004273 , 0x00000005 
+ 00017376  0x000038fa fetch  0x00000001 , 0x000042db 
+ 00017377  0x000038fc and  0x0000003f , 0x000000f0 , 0x00000002 
+ 00017378  0x000038fd rshift4  0x00000002 , 0x00000002 
+ 00017379  0x000038fe call  0x000043f3 
+ 00017380  0x000038ff istoret  0x00000001 , 0x00000005 
+ 00017381  0x00003900 and  0x0000003f , 0x0000000f , 0x00000002 
+ 00017382  0x00003901 call  0x000043f3 
+ 00017383  0x00003902 istoret  0x00000001 , 0x00000005 
+ 00017384  0x00003903 call  0x00002955 
+ 00017385  0x00003904 fetcht  0x00000001 , 0x0000426b 
+ 00017386  0x00003905 copy  0x00000002 , 0x00000039 
+ 00017387  0x00003906 arg  0x0000434b , 0x00000005 
+ 00017388  0x00003907 arg  0x0000426c , 0x00000006 
+ 00017389  0x00003908 call  0x00007cda 
+ 00017390  0x0000390a fetcht  0x00000001 , 0x0000426b 
+ 00017391  0x0000390b copy  0x00000002 , 0x00000039 
+ 00017392  0x0000390c arg  0x0000436b , 0x00000005 
+ 00017393  0x0000390d arg  0x0000426c , 0x00000006 
+ 00017394  0x0000390e branch  0x00007cda 
+ 00017395  0x00003910 sub  0x00000002 , 0x00000009 , 0x0000003e 
+ 00017396  0x00003911 branch  0x000043f7 , 0x00000002 
+ 00017397  0x00003912 add  0x00000002 , 0x00000037 , 0x00000002 
+ 00017398  0x00003913 rtn 
+ 00017399  0x00003915 add  0x00000002 , 0x00000030 , 0x00000002 
+ 00017400  0x00003916 rtn 
+ 00017401  0x00003919 fetch  0x00000001 , 0x0000476e 
+ 00017402  0x0000391a bne  0x000000ff , 0x0000440b 
+ 00017403  0x0000391c fetch  0x00000001 , 0x0000476c 
+ 00017404  0x0000391d bne  0x000000ff , 0x0000440e 
+ 00017405  0x0000391f fetch  0x00000001 , 0x00004777 
+ 00017406  0x00003920 bne  0x000000ff , 0x00004410 
+ 00017407  0x00003922 fetch  0x00000001 , 0x000046da 
+ 00017408  0x00003923 copy  0x0000003f , 0x00000039 
+ 00017409  0x00003924 setarg  0x000046db 
+ 00017410  0x00003925 copy  0x0000003f , 0x00000011 
+ 00017411  0x00003927 copy  0x00000011 , 0x00000006 
+ 00017412  0x00003928 ifetch  0x00000001 , 0x00000006 
+ 00017413  0x00003929 copy  0x00000006 , 0x00000011 
+ 00017414  0x0000392a beq  0x000000ff , 0x00004409 
+ 00017415  0x0000392b copy  0x0000003f , 0x00000002 
+ 00017416  0x0000392c call  0x00006ef7 
+ 00017417  0x0000392e loop  0x00004403 
+ 00017418  0x00003930 rtn 
+ 00017419  0x00003932 fetch  0x00000008 , 0x0000476e 
+ 00017420  0x00003933 store  0x00000008 , 0x000046dd 
+ 00017421  0x00003934 branch  0x000043fb 
+ 00017422  0x00003936 store  0x00000001 , 0x000046db 
+ 00017423  0x00003937 branch  0x000043fd 
+ 00017424  0x00003939 store  0x00000001 , 0x000046dc 
+ 00017425  0x0000393a branch  0x000043ff 
+ 00017426  0x0000393e call  0x000045ba 
+ 00017427  0x0000393f call  0x00004640 
+ 00017428  0x00003940 arg  0x00000000 , 0x00000011 
+ 00017429  0x00003941 call  0x00007055 
+ 00017430  0x00003942 call  0x000043f9 
+ 00017431  0x00003943 call  0x0000446b 
+ 00017432  0x00003944 call  0x0000442c 
+ 00017433  0x00003945 branch  0x0000441b 
+ 00017434  0x00003947 rtn 
+ 00017435  0x00003949 fetch  0x00000001 , 0x000049a4 
+ 00017436  0x0000394a copy  0x0000003f , 0x00000039 
+ 00017437  0x0000394b setarg  0x000049a5 
+ 00017438  0x0000394c copy  0x0000003f , 0x00000011 
+ 00017439  0x0000394e copy  0x00000011 , 0x00000006 
+ 00017440  0x0000394f ifetch  0x00000001 , 0x00000006 
+ 00017441  0x00003950 copy  0x00000006 , 0x00000011 
+ 00017442  0x00003951 beq  0x000000ff , 0x00004426 
+ 00017443  0x00003952 copy  0x0000003f , 0x00000002 
+ 00017444  0x00003953 store  0x00000001 , 0x000049a9 
+ 00017445  0x00003954 call  0x00004428 
+ 00017446  0x00003956 loop  0x0000441f 
+ 00017447  0x00003958 rtn 
+ 00017448  0x0000395b fetch  0x00000001 , 0x000049a9 
+ 00017449  0x0000395c rtneq  0x000000ff 
+ 00017450  0x0000395d iforce  0x00000002 
+ 00017451  0x0000395e branch  0x00006ef7 
+ 00017452  0x00003962 jam  0x00000064 , 0x0000477d 
+ 00017453  0x00003963 rtn 
+ 00017454  0x00003966 call  0x00004431 
+ 00017455  0x00003967 call  0x00007de2 
+ 00017456  0x00003969 branch  0x0000701b 
+ 00017457  0x0000396c call  0x0000788b 
+ 00017458  0x0000396e arg  0x00000010 , 0x00000039 
+ 00017459  0x0000396f arg  0x00008070 , 0x00000006 
+ 00017460  0x00003971 copy  0x00000006 , 0x00000005 
+ 00017461  0x00003972 ifetch  0x00000001 , 0x00000006 
+ 00017462  0x00003973 beq  0x0000001f , 0x00004445 
+ 00017463  0x00003974 beq  0x00000020 , 0x00004445 
+ 00017464  0x00003975 beq  0x00000021 , 0x00004445 
+ 00017465  0x00003976 beq  0x00000022 , 0x00004445 
+ 00017466  0x00003977 beq  0x00000023 , 0x00004445 
+ 00017467  0x00003978 beq  0x0000002c , 0x00004445 
+ 00017468  0x00003979 beq  0x0000002d , 0x00004445 
+ 00017469  0x0000397a beq  0x00000000 , 0x00004445 
+ 00017470  0x0000397c loop  0x00004434 
+ 00017471  0x0000397d arg  0x000080dc , 0x0000003f 
+ 00017472  0x0000397e isub  0x00000006 , 0x0000003e 
+ 00017473  0x0000397f branch  0x0000444b , 0x00000005 
+ 00017474  0x00003981 arg  0x00000008 , 0x00000039 
+ 00017475  0x00003982 arg  0x000080d4 , 0x00000006 
+ 00017476  0x00003983 branch  0x00004434 
+ 00017477  0x00003986 setarg  0x00000040 
+ 00017478  0x00003987 istore  0x00000001 , 0x00000005 
+ 00017479  0x00003988 branch  0x0000443e 
+ 00017480  0x0000398a setarg  0x00000080 
+ 00017481  0x0000398b istore  0x00000001 , 0x00000005 
+ 00017482  0x0000398c branch  0x0000443e 
+ 00017483  0x0000398e fetch  0x00000001 , 0x000049a4 
+ 00017484  0x0000398f copy  0x0000003f , 0x00000039 
+ 00017485  0x00003990 arg  0x000049a5 , 0x00000006 
+ 00017486  0x00003992 ifetch  0x00000001 , 0x00000006 
+ 00017487  0x00003993 set1  0x00000007 , 0x0000003f 
+ 00017488  0x00003994 arg  0x0000003e , 0x00000002 
+ 00017489  0x00003995 call  0x00006f20 
+ 00017490  0x00003996 loop  0x0000444e 
+ 00017491  0x00003997 rtn 
+ 00017492  0x0000399a branch  0x00007027 
+ 00017493  0x0000399d call  0x0000446d 
+ 00017494  0x0000399e call  0x00004458 
+ 00017495  0x0000399f branch  0x00004454 
+ 00017496  0x000039a2 fetch  0x00000002 , 0x000044e9 
+ 00017497  0x000039a3 rtnbit1  0x00000009 
+ 00017498  0x000039a4 fetch  0x00000001 , 0x000049b7 
+ 00017499  0x000039a5 beq  0x00000001 , 0x0000445d 
+ 00017500  0x000039a6 rtn 
+ 00017501  0x000039a8 fetch  0x00000001 , 0x00004798 
+ 00017502  0x000039a9 rtneq  0x00000001 
+ 00017503  0x000039aa jam  0x00000001 , 0x00004798 
+ 00017504  0x000039ab call  0x00004467 
+ 00017505  0x000039ac call  0x00004469 
+ 00017506  0x000039ad branch  0x00004480 
+ 00017507  0x000039b0 fetch  0x00000002 , 0x000049bc 
+ 00017508  0x000039b1 store  0x00000002 , 0x000049be 
+ 00017509  0x000039b2 jam  0x00000000 , 0x000049c0 
+ 00017510  0x000039b3 rtn 
+ 00017511  0x000039b7 setarg  0x00000000 
+ 00017512  0x000039b8 branch  0x00004464 
+ 00017513  0x000039bc arg  0x00000000 , 0x00000011 
+ 00017514  0x000039bd branch  0x000077bf 
+ 00017515  0x000039c1 arg  0x00000000 , 0x00000011 
+ 00017516  0x000039c2 branch  0x000077c4 
+ 00017517  0x000039c9 fetch  0x00000002 , 0x000044e9 
+ 00017518  0x000039ca rtnbit0  0x00000009 
+ 00017519  0x000039cb call  0x00002a28 
+ 00017520  0x000039cc nrtn  0x00000034 
+ 00017521  0x000039cd arg  0x000046c6 , 0x00000011 
+ 00017522  0x000039ce call  0x000078ca 
+ 00017523  0x000039cf nrtn  0x00000028 
+ 00017524  0x000039d0 arg  0x000046c6 , 0x00000006 
+ 00017525  0x000039d1 branch  0x000063cb 
+ 00017526  0x000039d4 copy  0x00000013 , 0x0000003f 
+ 00017527  0x000039d5 beq  0x0000002d , 0x00004347 
+ 00017528  0x000039d6 beq  0x00000010 , 0x0000432f 
+ 00017529  0x000039d7 beq  0x00000014 , 0x0000447c 
+ 00017530  0x000039d8 beq  0x00000015 , 0x00004486 
+ 00017531  0x000039d9 rtn 
+ 00017532  0x000039dc call  0x00004467 
+ 00017533  0x000039dd call  0x00004469 
+ 00017534  0x000039de set0  0x00000027 , 0x00000000 
+ 00017535  0x000039df branch  0x00004482 
+ 00017536  0x000039e1 fetch  0x00000002 , 0x00004799 
+ 00017537  0x000039e2 store  0x00000002 , 0x0000479b 
+ 00017538  0x000039e4 jam  0x00000014 , 0x0000477c 
+ 00017539  0x000039e5 jam  0x00000000 , 0x00004094 
+ 00017540  0x000039e6 call  0x00004315 
+ 00017541  0x000039e7 branch  0x0000432b 
+ 00017542  0x000039eb set1  0x00000027 , 0x00000000 
+ 00017543  0x000039ec call  0x00004463 
+ 00017544  0x000039ed call  0x0000456e 
+ 00017545  0x000039ee call  0x00004562 
+ 00017546  0x000039f0 setarg  0x00000000 
+ 00017547  0x000039f1 store  0x00000005 , 0x0000474a 
+ 00017548  0x000039f2 call  0x000078ad 
+ 00017549  0x000039f3 jam  0x0000000a , 0x0000470c 
+ 00017550  0x000039f4 jam  0x0000000a , 0x0000470e 
+ 00017551  0x000039f5 jam  0x0000000a , 0x00004710 
+ 00017552  0x000039f7 jam  0x00000002 , 0x000040c0 
+ 00017553  0x000039f8 setarg  0x00000020 
+ 00017554  0x000039f9 call  0x000063c7 
+ 00017555  0x000039fa branch  0x00004317 
+ 00017556  0x000039fd call  0x0000450f 
+ 00017557  0x000039fe call  0x00004512 
+ 00017558  0x000039ff call  0x00004515 
+ 00017559  0x00003a02 call  0x000044a1 
+ 00017560  0x00003a03 branch  0x00004499 
+ 00017561  0x00003a07 arg  0x000049b8 , 0x00000013 
+ 00017562  0x00003a08 arg  0x00000000 , 0x00000012 
+ 00017563  0x00003a09 branch  0x000042e0 
+ 00017564  0x00003a0c arg  0x000049be , 0x00000013 
+ 00017565  0x00003a0d arg  0x0000449f , 0x00000012 
+ 00017566  0x00003a0e branch  0x000042e7 
+ 00017567  0x00003a10 jam  0x00000001 , 0x000049c0 
+ 00017568  0x00003a11 rtn 
+ 00017569  0x00003a14 arg  0x0000479b , 0x00000013 
+ 00017570  0x00003a15 arg  0x000044a4 , 0x00000012 
+ 00017571  0x00003a16 branch  0x000042e7 
+ 00017572  0x00003a18 jam  0x00000002 , 0x00004798 
+ 00017573  0x00003a19 jam  0x00000000 , 0x000049b7 
+ 00017574  0x00003a1a branch  0x0000448a 
+ 00017575  0x00003a1d fetch  0x00000001 , 0x00004776 
+ 00017576  0x00003a1e rtn  0x00000034 
+ 00017577  0x00003a1f arg  0x0000477c , 0x00000013 
+ 00017578  0x00003a20 arg  0x000044ac , 0x00000012 
+ 00017579  0x00003a21 branch  0x000042e0 
+ 00017580  0x00003a23 fetch  0x00000001 , 0x0000477b 
+ 00017581  0x00003a24 store  0x00000001 , 0x0000477c 
+ 00017582  0x00003a25 fetch  0x00000001 , 0x0000477f 
+ 00017583  0x00003a26 nrtn  0x00000034 
+ 00017584  0x00003a28 call  0x00006fb0 
+ 00017585  0x00003a29 store  0x00000002 , 0x00004796 
+ 00017586  0x00003a2a arg  0x00004790 , 0x00000011 
+ 00017587  0x00003a2b call  0x00006fd7 
+ 00017588  0x00003a2c fetcht  0x00000001 , 0x0000477d 
+ 00017589  0x00003a2d isub  0x00000002 , 0x0000003e 
+ 00017590  0x00003a2e branch  0x000044b9 , 0x00000002 
+ 00017591  0x00003a2f store  0x00000001 , 0x0000477d 
+ 00017592  0x00003a30 copy  0x0000003f , 0x00000002 
+ 00017593  0x00003a32 storet  0x00000001 , 0x0000477e 
+ 00017594  0x00003a33 fetch  0x00000001 , 0x00004778 
+ 00017595  0x00003a34 isub  0x00000002 , 0x0000003e 
+ 00017596  0x00003a35 call  0x000044c4 , 0x00000002 
+ 00017597  0x00003a36 storet  0x00000001 , 0x00004789 
+ 00017598  0x00003a37 arg  0x00000006 , 0x00000039 
+ 00017599  0x00003a38 arg  0x00004784 , 0x00000006 
+ 00017600  0x00003a39 call  0x000044cb 
+ 00017601  0x00003a3a store  0x00000001 , 0x0000478a 
+ 00017602  0x00003a3b arg  0x00004781 , 0x00000011 
+ 00017603  0x00003a3c branch  0x000078b2 
+ 00017604  0x00003a3e fetch  0x00000001 , 0x00004780 
+ 00017605  0x00003a3f nrtn  0x00000034 
+ 00017606  0x00003a40 jam  0x00000001 , 0x00004780 
+ 00017607  0x00003a41 arg  0x00000001 , 0x00000011 
+ 00017608  0x00003a42 branch  0x000077c4 
+ 00017609  0x00003a44 arg  0x00000001 , 0x00000011 
+ 00017610  0x00003a45 branch  0x000077bf 
+ 00017611  0x00003a4a arg  0x00000000 , 0x00000011 
+ 00017612  0x00003a4c ifetch  0x00000001 , 0x00000006 
+ 00017613  0x00003a4d iadd  0x00000011 , 0x00000011 
+ 00017614  0x00003a4e loop  0x000044cc 
+ 00017615  0x00003a50 and  0x00000011 , 0x000000ff , 0x0000003f 
+ 00017616  0x00003a51 rtn 
+ 00017617  0x00003a54 fetch  0x00000001 , 0x00004397 
+ 00017618  0x00003a55 beq  0x00000012 , 0x000044d4 
+ 00017619  0x00003a56 rtn 
+ 00017620  0x00003a58 fetch  0x00000002 , 0x00004398 
+ 00017621  0x00003a59 beq  0x00000019 , 0x000044eb 
+ 00017622  0x00003a5a rtn 
+ 00017623  0x00003a5d bpatch  0x0000002f , 0x00004005 
+ 00017624  0x00003a5e ifetch  0x00000005 , 0x00000011 
+ 00017625  0x00003a5f store  0x00000005 , 0x000006f1 
+ 00017626  0x00003a60 fetch  0x00000002 , 0x000006f1 
+ 00017627  0x00003a61 arg  0x00006b5a , 0x00000002 
+ 00017628  0x00003a62 isub  0x00000002 , 0x0000003e 
+ 00017629  0x00003a63 nrtn  0x00000005 
+ 00017630  0x00003a64 fetch  0x00000002 , 0x000006f4 
+ 00017631  0x00003a65 byteswap  0x0000003f , 0x0000003f 
+ 00017632  0x00003a66 store  0x00000002 , 0x000006f4 
+ 00017633  0x00003a67 copy  0x0000003f , 0x00000039 
+ 00017634  0x00003a68 increase  0x00000005 , 0x00000011 
+ 00017635  0x00003a69 copy  0x00000011 , 0x00000006 
+ 00017636  0x00003a6a arg  0x000006f6 , 0x00000005 
+ 00017637  0x00003a6b call  0x00007cda 
+ 00017638  0x00003a6c ifetch  0x00000001 , 0x00000006 
+ 00017639  0x00003a6d store  0x00000001 , 0x00000700 
+ 00017640  0x00003a6e arg  0x000006f3 , 0x00000011 
+ 00017641  0x00003a6f arg  0x000006f6 , 0x00000012 
+ 00017642  0x00003a70 rtn 
+ 00017643  0x00003a73 setarg  0x00000000 
+ 00017644  0x00003a74 store  0x00000005 , 0x00004700 
+ 00017645  0x00003a75 store  0x00000005 , 0x00004705 
+ 00017646  0x00003a76 call  0x000044d7 
+ 00017647  0x00003a77 copy  0x00000012 , 0x00000006 
+ 00017648  0x00003a78 arg  0x00004700 , 0x00000005 
+ 00017649  0x00003a79 arg  0x0000000a , 0x00000039 
+ 00017650  0x00003a7a call  0x00007cda 
+ 00017651  0x00003a7c bpatch  0x00000030 , 0x00004006 
+ 00017652  0x00003a7d ifetch  0x00000001 , 0x00000011 
+ 00017653  0x00003a7e beq  0x00000002 , 0x0000451e 
+ 00017654  0x00003a7f beq  0x00000003 , 0x00004533 
+ 00017655  0x00003a80 beq  0x00000004 , 0x0000453a 
+ 00017656  0x00003a81 beq  0x00000005 , 0x0000453a 
+ 00017657  0x00003a82 beq  0x00000006 , 0x000045aa 
+ 00017658  0x00003a83 beq  0x00000007 , 0x000045ab 
+ 00017659  0x00003a84 beq  0x00000008 , 0x000045ae 
+ 00017660  0x00003a85 rtn 
+ 00017661  0x00003a88 call  0x000044eb 
+ 00017662  0x00003a89 fetch  0x00000001 , 0x000006f3 
+ 00017663  0x00003a8a beq  0x00000004 , 0x00004502 
+ 00017664  0x00003a8b beq  0x00000005 , 0x00004502 
+ 00017665  0x00003a8c rtn 
+ 00017666  0x00003a8e fetch  0x00000001 , 0x00004700 
+ 00017667  0x00003a8f ncall  0x00004509 , 0x00000034 
+ 00017668  0x00003a90 fetch  0x00000001 , 0x00004702 
+ 00017669  0x00003a91 ncall  0x0000450b , 0x00000034 
+ 00017670  0x00003a92 fetch  0x00000001 , 0x00004704 
+ 00017671  0x00003a93 ncall  0x0000450d , 0x00000034 
+ 00017672  0x00003a94 rtn 
+ 00017673  0x00003a97 jam  0x00000005 , 0x000049a1 
+ 00017674  0x00003a98 rtn 
+ 00017675  0x00003a9a jam  0x00000005 , 0x000049a2 
+ 00017676  0x00003a9b rtn 
+ 00017677  0x00003a9d jam  0x00000005 , 0x000049a3 
+ 00017678  0x00003a9e rtn 
+ 00017679  0x00003aa1 arg  0x000049a1 , 0x00000013 
+ 00017680  0x00003aa2 arg  0x00004518 , 0x00000012 
+ 00017681  0x00003aa3 branch  0x000042e0 
+ 00017682  0x00003aa5 arg  0x000049a2 , 0x00000013 
+ 00017683  0x00003aa6 arg  0x0000451a , 0x00000012 
+ 00017684  0x00003aa7 branch  0x000042e0 
+ 00017685  0x00003aa9 arg  0x000049a3 , 0x00000013 
+ 00017686  0x00003aaa arg  0x0000451c , 0x00000012 
+ 00017687  0x00003aab branch  0x000042e0 
+ 00017688  0x00003aae jam  0x00000000 , 0x00004700 
+ 00017689  0x00003aaf branch  0x0000453a 
+ 00017690  0x00003ab1 jam  0x00000000 , 0x00004702 
+ 00017691  0x00003ab2 branch  0x0000453a 
+ 00017692  0x00003ab4 jam  0x00000000 , 0x00004704 
+ 00017693  0x00003ab5 branch  0x0000453a 
+ 00017694  0x00003abb fetch  0x00000001 , 0x00004700 
+ 00017695  0x00003abc store  0x00000001 , 0x0000470b 
+ 00017696  0x00003abd fetch  0x00000001 , 0x00004701 
+ 00017697  0x00003abe store  0x00000001 , 0x0000470d 
+ 00017698  0x00003abf branch  0x00004544 
+ 00017699  0x00003ac4 fetch  0x00000001 , 0x00004700 
+ 00017700  0x00003ac5 store  0x00000001 , 0x0000470d 
+ 00017701  0x00003ac6 branch  0x00004552 
+ 00017702  0x00003ac8 fetch  0x00000001 , 0x0000470c 
+ 00017703  0x00003ac9 call  0x0000452b 
+ 00017704  0x00003aca fetch  0x00000001 , 0x00004701 
+ 00017705  0x00003acb store  0x00000001 , 0x0000470b 
+ 00017706  0x00003acc branch  0x00004550 
+ 00017707  0x00003ace beq  0x00000002 , 0x0000452f 
+ 00017708  0x00003acf beq  0x00000003 , 0x00004531 
+ 00017709  0x00003ad0 store  0x00000001 , 0x0000470c 
+ 00017710  0x00003ad1 rtn 
+ 00017711  0x00003ad3 jam  0x00000005 , 0x0000470c 
+ 00017712  0x00003ad4 rtn 
+ 00017713  0x00003ad6 jam  0x0000000a , 0x0000470c 
+ 00017714  0x00003ad7 rtn 
+ 00017715  0x00003ad9 fetch  0x00000001 , 0x00004700 
+ 00017716  0x00003ada call  0x0000452b 
+ 00017717  0x00003adb fetch  0x00000001 , 0x0000470c 
+ 00017718  0x00003adc call  0x0000459e 
+ 00017719  0x00003add call  0x000045a1 
+ 00017720  0x00003ade jam  0x00000000 , 0x00000671 
+ 00017721  0x00003adf branch  0x0000707a 
+ 00017722  0x00003ae2 fetch  0x00000001 , 0x0000479e 
+ 00017723  0x00003ae3 nrtn  0x00000034 
+ 00017724  0x00003ae4 fetch  0x00000006 , 0x00004700 
+ 00017725  0x00003ae5 store  0x00000006 , 0x0000470b 
+ 00017726  0x00003ae6 fetch  0x00000001 , 0x0000470c 
+ 00017727  0x00003ae7 fetcht  0x00000001 , 0x0000470e 
+ 00017728  0x00003ae8 iand  0x00000002 , 0x0000003f 
+ 00017729  0x00003ae9 fetcht  0x00000001 , 0x00004710 
+ 00017730  0x00003aea iand  0x00000002 , 0x0000003f 
+ 00017731  0x00003aeb call  0x00004556 , 0x00000034 
+ 00017732  0x00003aed bpatch  0x00000031 , 0x00004006 
+ 00017733  0x00003aee fetch  0x00000002 , 0x000044e9 
+ 00017734  0x00003aef isolate1  0x00000009 , 0x0000003f 
+ 00017735  0x00003af0 ncall  0x00004463 , 0x00000001 
+ 00017736  0x00003af1 call  0x00004550 
+ 00017737  0x00003af2 call  0x00004552 
+ 00017738  0x00003af3 branch  0x0000454b 
+ 00017739  0x00003af6 fetch  0x00000001 , 0x0000470b 
+ 00017740  0x00003af7 fetcht  0x00000001 , 0x0000470d 
+ 00017741  0x00003af8 iadd  0x00000002 , 0x0000003f 
+ 00017742  0x00003af9 nbranch  0x0000788d , 0x00000034 
+ 00017743  0x00003afa branch  0x0000788b 
+ 00017744  0x00003afd arg  0x0000470b , 0x00000006 
+ 00017745  0x00003afe branch  0x00004558 
+ 00017746  0x00003b00 arg  0x0000470d , 0x00000006 
+ 00017747  0x00003b01 branch  0x0000455d 
+ 00017748  0x00003b03 arg  0x0000470f , 0x00000006 
+ 00017749  0x00003b04 branch  0x0000457a 
+ 00017750  0x00003b06 jam  0x00000000 , 0x0000477f 
+ 00017751  0x00003b07 rtn 
+ 00017752  0x00003b0a ifetch  0x00000001 , 0x00000006 
+ 00017753  0x00003b0b beq  0x00000000 , 0x00004562 
+ 00017754  0x00003b0c beq  0x00000001 , 0x00004566 
+ 00017755  0x00003b0d beq  0x00000002 , 0x0000456a 
+ 00017756  0x00003b0e rtn 
+ 00017757  0x00003b10 ifetch  0x00000001 , 0x00000006 
+ 00017758  0x00003b11 beq  0x00000000 , 0x0000456e 
+ 00017759  0x00003b12 beq  0x00000002 , 0x00004572 
+ 00017760  0x00003b13 beq  0x00000001 , 0x00004576 
+ 00017761  0x00003b14 rtn 
+ 00017762  0x00003b17 fetcht  0x00000001 , 0x000049a5 
+ 00017763  0x00003b18 call  0x00006ef3 
+ 00017764  0x00003b19 fetcht  0x00000001 , 0x000049a6 
+ 00017765  0x00003b1a branch  0x00006ef3 
+ 00017766  0x00003b1c fetcht  0x00000001 , 0x000049a5 
+ 00017767  0x00003b1d call  0x00006ef7 
+ 00017768  0x00003b1e fetcht  0x00000001 , 0x000049a6 
+ 00017769  0x00003b1f branch  0x00006ef3 
+ 00017770  0x00003b21 fetcht  0x00000001 , 0x000049a5 
+ 00017771  0x00003b22 call  0x00006ef3 
+ 00017772  0x00003b23 fetcht  0x00000001 , 0x000049a6 
+ 00017773  0x00003b24 branch  0x00006ef7 
+ 00017774  0x00003b26 fetcht  0x00000001 , 0x000049a7 
+ 00017775  0x00003b27 call  0x00006ef3 
+ 00017776  0x00003b28 fetcht  0x00000001 , 0x000049a8 
+ 00017777  0x00003b29 branch  0x00006ef3 
+ 00017778  0x00003b2b fetcht  0x00000001 , 0x000049a7 
+ 00017779  0x00003b2c call  0x00006ef7 
+ 00017780  0x00003b2d fetcht  0x00000001 , 0x000049a8 
+ 00017781  0x00003b2e branch  0x00006ef3 
+ 00017782  0x00003b30 fetcht  0x00000001 , 0x000049a7 
+ 00017783  0x00003b31 call  0x00006ef3 
+ 00017784  0x00003b32 fetcht  0x00000001 , 0x000049a8 
+ 00017785  0x00003b33 branch  0x00006ef7 
+ 00017786  0x00003b39 bpatch  0x00000032 , 0x00004006 
+ 00017787  0x00003b3a ifetch  0x00000001 , 0x00000006 
+ 00017788  0x00003b3b beq  0x00000000 , 0x00004587 
+ 00017789  0x00003b3c beq  0x00000001 , 0x00004580 
+ 00017790  0x00003b3d beq  0x00000002 , 0x00004582 
+ 00017791  0x00003b3e rtn 
+ 00017792  0x00003b40 jam  0x00000000 , 0x00004729 
+ 00017793  0x00003b41 branch  0x00004583 
+ 00017794  0x00003b43 jam  0x00000001 , 0x00004729 
+ 00017795  0x00003b44 ifetch  0x00000001 , 0x00000006 
+ 00017796  0x00003b45 store  0x00000001 , 0x0000472b 
+ 00017797  0x00003b46 ifetch  0x00000008 , 0x00000012 
+ 00017798  0x00003b47 branch  0x0000458c 
+ 00017799  0x00003b4a ifetch  0x00000001 , 0x00000012 
+ 00017800  0x00003b4b call  0x000070bd 
+ 00017801  0x00003b4c increase  0x00000001 , 0x00000012 
+ 00017802  0x00003b4d ifetch  0x00000001 , 0x00000012 
+ 00017803  0x00003b4e branch  0x000070bd 
+ 00017804  0x00003b50 store  0x00000008 , 0x0000472c 
+ 00017805  0x00003b51 jam  0x00000001 , 0x0000477f 
+ 00017806  0x00003b52 fetch  0x00000001 , 0x00004729 
+ 00017807  0x00003b53 beq  0x00000000 , 0x0000459a 
+ 00017808  0x00003b55 fetch  0x00000001 , 0x0000472d 
+ 00017809  0x00003b56 store  0x00000001 , 0x0000472e 
+ 00017810  0x00003b57 fetch  0x00000001 , 0x0000472c 
+ 00017811  0x00003b59 call  0x000070bd 
+ 00017812  0x00003b5a fetch  0x00000001 , 0x0000472b 
+ 00017813  0x00003b5b call  0x0000459e 
+ 00017814  0x00003b5c store  0x00000001 , 0x00004733 
+ 00017815  0x00003b5d fetch  0x00000006 , 0x0000472e 
+ 00017816  0x00003b5e store  0x00000006 , 0x00000670 
+ 00017817  0x00003b5f branch  0x00007066 
+ 00017818  0x00003b61 fetch  0x00000001 , 0x0000472c 
+ 00017819  0x00003b62 store  0x00000001 , 0x0000472e 
+ 00017820  0x00003b63 fetch  0x00000001 , 0x0000472d 
+ 00017821  0x00003b64 branch  0x00004593 
+ 00017822  0x00003b67 mul32  0x0000003f , 0x00000005 , 0x0000003f 
+ 00017823  0x00003b68 add  0x0000003f , 0x00000032 , 0x0000003f 
+ 00017824  0x00003b69 rtn 
+ 00017825  0x00003b6b arg  0x00002ee0 , 0x00000002 
+ 00017826  0x00003b6c imul32  0x00000002 , 0x0000003f 
+ 00017827  0x00003b6d div  0x0000003f , 0x00000064 
+ 00017828  0x00003b6e call  0x00007d62 
+ 00017829  0x00003b6f quotient  0x00000002 
+ 00017830  0x00003b70 copy  0x00000002 , 0x00000011 
+ 00017831  0x00003b71 setarg  0x00002ee0 
+ 00017832  0x00003b72 isub  0x00000002 , 0x00000012 
+ 00017833  0x00003b73 rtn 
+ 00017834  0x00003b76 rtn 
+ 00017835  0x00003b79 fetch  0x00000008 , 0x00004700 
+ 00017836  0x00003b7a store  0x00000008 , 0x0000474a 
+ 00017837  0x00003b7b rtn 
+ 00017838  0x00003b7e fetch  0x00000001 , 0x00004767 
+ 00017839  0x00003b7f store  0x00000001 , 0x0000475d 
+ 00017840  0x00003b80 fetch  0x00000001 , 0x00004768 
+ 00017841  0x00003b81 store  0x00000001 , 0x0000475e 
+ 00017842  0x00003b82 fetch  0x00000001 , 0x00004769 
+ 00017843  0x00003b83 store  0x00000001 , 0x0000475f 
+ 00017844  0x00003b84 arg  0x0000000d , 0x00000039 
+ 00017845  0x00003b85 arg  0x00004758 , 0x00000006 
+ 00017846  0x00003b86 call  0x000044cb 
+ 00017847  0x00003b87 store  0x00000001 , 0x00004765 
+ 00017848  0x00003b88 arg  0x00004755 , 0x00000011 
+ 00017849  0x00003b89 branch  0x000078b2 
+ 00017850  0x00003b8e setarg  0x00000000 
+ 00017851  0x00003b8f store  0x00000008 , 0x000045d6 
+ 00017852  0x00003b90 call  0x0000339f 
+ 00017853  0x00003b91 branch  0x00003402 
+ 00017854  0x00003b94 call  0x000045c2 
+ 00017855  0x00003b95 call  0x000045ca 
+ 00017856  0x00003b96 call  0x0000460e 
+ 00017857  0x00003b97 branch  0x00004665 
+ 00017858  0x00003b9a call  0x00003407 
+ 00017859  0x00003b9c fetch  0x00000001 , 0x00004616 
+ 00017860  0x00003b9d rtnne  0x00000001 
+ 00017861  0x00003b9e fetch  0x00000001 , 0x000049b8 
+ 00017862  0x00003b9f nbranch  0x00003460 , 0x00000034 
+ 00017863  0x00003ba0 fetch  0x00000001 , 0x00004798 
+ 00017864  0x00003ba1 beq  0x00000002 , 0x00003460 
+ 00017865  0x00003ba2 rtn 
+ 00017866  0x00003ba5 fetch  0x00000001 , 0x00004616 
+ 00017867  0x00003ba6 rtnne  0x00000000 
+ 00017868  0x00003ba7 call  0x000045d9 
+ 00017869  0x00003ba8 branch  0x000045d7 , 0x0000002f 
+ 00017870  0x00003baa fetch  0x00000001 , 0x000049c0 
+ 00017871  0x00003bab rtn  0x00000034 
+ 00017872  0x00003bac fetch  0x00000001 , 0x000049c1 
+ 00017873  0x00003bad increase  0x00000001 , 0x0000003f 
+ 00017874  0x00003bae store  0x00000001 , 0x000049c1 
+ 00017875  0x00003baf beq  0x00000004 , 0x000045d7 
+ 00017876  0x00003bb0 call  0x00003222 
+ 00017877  0x00003bb1 call  0x000045ea 
+ 00017878  0x00003bb2 nbranch  0x000045ce , 0x0000002f 
+ 00017879  0x00003bb4 jam  0x00000000 , 0x000049c1 
+ 00017880  0x00003bb5 rtn 
+ 00017881  0x00003bb7 fetch  0x00000001 , 0x00004616 
+ 00017882  0x00003bb8 rtnne  0x00000000 
+ 00017883  0x00003bb9 call  0x000045de 
+ 00017884  0x00003bba call  0x00003518 
+ 00017885  0x00003bbb branch  0x000045ea 
+ 00017886  0x00003bbd fetch  0x00000001 , 0x00004615 
+ 00017887  0x00003bbe rtnbit1  0x00000000 
+ 00017888  0x00003bbf set1  0x00000000 , 0x0000003f 
+ 00017889  0x00003bc0 store  0x00000001 , 0x00004615 
+ 00017890  0x00003bc1 fetch  0x00000001 , 0x00004623 
+ 00017891  0x00003bc2 store  0x00000001 , 0x00004141 
+ 00017892  0x00003bc3 jam  0x00000000 , 0x00004611 
+ 00017893  0x00003bc4 jam  0x00000000 , 0x0000090d 
+ 00017894  0x00003bc5 jam  0x00000001 , 0x0000460a 
+ 00017895  0x00003bc6 jam  0x00000000 , 0x0000457e 
+ 00017896  0x00003bc8 fetch  0x00000004 , 0x000049da 
+ 00017897  0x00003bc9 branch  0x0000345d 
+ 00017898  0x00003bcb call  0x000033f1 
+ 00017899  0x00003bcc nbranch  0x000033be , 0x0000002f 
+ 00017900  0x00003bce call  0x000033e3 
+ 00017901  0x00003bcf nbranch  0x000033be , 0x00000028 
+ 00017902  0x00003bd0 fetch  0x00000001 , 0x0000457d 
+ 00017903  0x00003bd1 branch  0x000033be , 0x00000034 
+ 00017904  0x00003bd2 increase  0x00000002 , 0x0000003f 
+ 00017905  0x00003bd3 iforce  0x00000039 
+ 00017906  0x00003bd4 arg  0x000044f7 , 0x00000006 
+ 00017907  0x00003bd5 arg  0x000045e8 , 0x00000005 
+ 00017908  0x00003bd6 call  0x00007cda 
+ 00017909  0x00003bd7 jam  0x00000000 , 0x00004613 
+ 00017910  0x00003bd8 fetch  0x00000001 , 0x00004610 
+ 00017911  0x00003bd9 call  0x000033fe , 0x00000034 
+ 00017912  0x00003bda fetch  0x00000001 , 0x000045ea 
+ 00017913  0x00003bdb beq  0x000000ff , 0x000045fc 
+ 00017914  0x00003bdc beq  0x00000001 , 0x00004601 
+ 00017915  0x00003bdd branch  0x000033bb 
+ 00017916  0x00003bdf fetch  0x00000001 , 0x00004610 
+ 00017917  0x00003be0 nrtn  0x00000034 
+ 00017918  0x00003be1 fetch  0x00000001 , 0x000045d5 
+ 00017919  0x00003be2 rtn  0x00000034 
+ 00017920  0x00003be4 branch  0x0000359b 
+ 00017921  0x00003be6 call  0x0000352e 
+ 00017922  0x00003be7 fetch  0x00000001 , 0x0000460a 
+ 00017923  0x00003be8 fetcht  0x00000001 , 0x000045e8 
+ 00017924  0x00003be9 isolate1  0x00000003 , 0x00000002 
+ 00017925  0x00003bea setflag  0x00000001 , 0x00000000 , 0x0000003f 
+ 00017926  0x00003beb store  0x00000001 , 0x0000460a 
+ 00017927  0x00003bec beq  0x00000001 , 0x00004609 
+ 00017928  0x00003bed branch  0x000033cb 
+ 00017929  0x00003bef fetch  0x00000001 , 0x000043cb 
+ 00017930  0x00003bf0 sub  0x0000003f , 0x0000000e , 0x0000003e 
+ 00017931  0x00003bf1 call  0x0000788d , 0x00000005 
+ 00017932  0x00003bf2 fetch  0x00000004 , 0x000045f2 
+ 00017933  0x00003bf3 branch  0x000035a3 
+ 00017934  0x00003bf6 fetch  0x00000001 , 0x00004616 
+ 00017935  0x00003bf7 rtnne  0x00000001 
+ 00017936  0x00003bf8 call  0x000032ff 
+ 00017937  0x00003bf9 call  0x0000465b 
+ 00017938  0x00003bfb call  0x000033be 
+ 00017939  0x00003bfc call  0x00003119 
+ 00017940  0x00003bfd nbranch  0x000033be , 0x0000002f 
+ 00017941  0x00003bfe call  0x0000331e 
+ 00017942  0x00003bff call  0x000033f4 
+ 00017943  0x00003c00 call  0x00003399 
+ 00017944  0x00003c01 call  0x00003317 
+ 00017945  0x00003c03 fetch  0x00000001 , 0x000045d5 
+ 00017946  0x00003c04 nbranch  0x00004621 , 0x00000034 
+ 00017947  0x00003c05 call  0x0000350a 
+ 00017948  0x00003c06 fetch  0x00000001 , 0x00004614 
+ 00017949  0x00003c07 rtn  0x00000034 
+ 00017950  0x00003c08 setarg  0x00000000 
+ 00017951  0x00003c09 store  0x00000004 , 0x00004630 
+ 00017952  0x00003c0a rtn 
+ 00017953  0x00003c0c jam  0x00000000 , 0x00004613 
+ 00017954  0x00003c0d arg  0x00000000 , 0x00000011 
+ 00017955  0x00003c0e call  0x0000788d 
+ 00017956  0x00003c0f call  0x00003460 
+ 00017957  0x00003c10 call  0x00003258 
+ 00017958  0x00003c12 fetch  0x00000004 , 0x000044f1 
+ 00017959  0x00003c13 store  0x00000004 , 0x000049da 
+ 00017960  0x00003c14 fetch  0x00000001 , 0x000049e6 
+ 00017961  0x00003c15 ncall  0x0000462c , 0x00000034 
+ 00017962  0x00003c17 fetch  0x00000004 , 0x000049da 
+ 00017963  0x00003c18 branch  0x00003236 
+ 00017964  0x00003c1c fetch  0x00000001 , 0x000049e6 
+ 00017965  0x00003c1d rtn  0x00000034 
+ 00017966  0x00003c1e fetch  0x00000001 , 0x0000462d 
+ 00017967  0x00003c1f store  0x00000001 , 0x000049dd 
+ 00017968  0x00003c21 fetch  0x00000001 , 0x000044f2 
+ 00017969  0x00003c22 store  0x00000001 , 0x000049dc 
+ 00017970  0x00003c24 fetch  0x00000001 , 0x0000462c 
+ 00017971  0x00003c25 store  0x00000001 , 0x000049db 
+ 00017972  0x00003c27 fetch  0x00000001 , 0x000044f1 
+ 00017973  0x00003c28 store  0x00000001 , 0x000049da 
+ 00017974  0x00003c29 rtn 
+ 00017975  0x00003c2a call  0x0000464a 
+ 00017976  0x00003c2b fetch  0x00000004 , 0x000049da 
+ 00017977  0x00003c2c fetcht  0x00000004 , 0x000049de 
+ 00017978  0x00003c2d isub  0x00000002 , 0x0000003e 
+ 00017979  0x00003c2e rtn  0x00000005 
+ 00017980  0x00003c2f copy  0x00000013 , 0x00000012 
+ 00017981  0x00003c30 arg  0x000049da , 0x00000011 
+ 00017982  0x00003c31 arg  0x00000004 , 0x00000039 
+ 00017983  0x00003c32 branch  0x00006b45 
+ 00017984  0x00003c36 fetch  0x00000004 , 0x000044f1 
+ 00017985  0x00003c37 store  0x00000004 , 0x000049da 
+ 00017986  0x00003c38 fetch  0x00000001 , 0x000049e6 
+ 00017987  0x00003c39 rtn  0x00000034 
+ 00017988  0x00003c3a rtn 
+ 00017989  0x00003c3b call  0x0000464a 
+ 00017990  0x00003c3c fetch  0x00000004 , 0x000049de 
+ 00017991  0x00003c3d rtn  0x00000034 
+ 00017992  0x00003c3e store  0x00000004 , 0x000049da 
+ 00017993  0x00003c3f rtn 
+ 00017994  0x00003c43 rtn 
+ 00017995  0x00003c44 fetch  0x00000001 , 0x000049e6 
+ 00017996  0x00003c45 rtn  0x00000034 
+ 00017997  0x00003c46 arg  0x00000700 , 0x00000013 
+ 00017998  0x00003c48 copy  0x00000013 , 0x00000012 
+ 00017999  0x00003c49 arg  0x000049e2 , 0x00000011 
+ 00018000  0x00003c4a arg  0x00000004 , 0x00000039 
+ 00018001  0x00003c4b call  0x00006b74 
+ 00018002  0x00003c4c fetch  0x00000004 , 0x000049e2 
+ 00018003  0x00003c4d rtn  0x00000034 
+ 00018004  0x00003c4e store  0x00000004 , 0x000049de 
+ 00018005  0x00003c4f copy  0x00000013 , 0x0000003f 
+ 00018006  0x00003c50 arg  0x000007cc , 0x00000002 
+ 00018007  0x00003c51 isub  0x00000002 , 0x0000003e 
+ 00018008  0x00003c52 rtn  0x00000002 
+ 00018009  0x00003c53 increase  0x00000004 , 0x00000013 
+ 00018010  0x00003c54 branch  0x0000464e 
+ 00018011  0x00003c57 fetch  0x00000004 , 0x00004630 
+ 00018012  0x00003c58 rtn  0x00000034 
+ 00018013  0x00003c59 branch  0x00003236 
+ 00018014  0x00003c5c fetch  0x00000002 , 0x000044e9 
+ 00018015  0x00003c5d rtnbit1  0x00000009 
+ 00018016  0x00003c5e fetch  0x00000002 , 0x00004799 
+ 00018017  0x00003c5f store  0x00000002 , 0x0000479b 
+ 00018018  0x00003c60 jam  0x00000001 , 0x000049b7 
+ 00018019  0x00003c61 arg  0x000045eb , 0x00000011 
+ 00018020  0x00003c62 branch  0x000044fd 
+ 00018021  0x00003c65 fetch  0x00000001 , 0x000049c0 
+ 00018022  0x00003c66 rtn  0x00000034 
+ 00018023  0x00003c67 call  0x0000466d 
+ 00018024  0x00003c68 nrtn  0x00000028 
+ 00018025  0x00003c69 fetch  0x00000003 , 0x000045af 
+ 00018026  0x00003c6a call  0x00007d25 
+ 00018027  0x00003c6b storet  0x00000004 , 0x000040a9 
+ 00018028  0x00003c6c branch  0x0000241e 
+ 00018029  0x00003c6e enable  0x00000028 
+ 00018030  0x00003c6f call  0x00002408 
+ 00018031  0x00003c70 fetch  0x00000003 , 0x000040bd 
+ 00018032  0x00003c71 branch  0x00007dbc , 0x00000034 
+ 00018033  0x00003c72 branch  0x00004430 
+ 00018034  0x00003c79 rtn  0x0000002b 
+ 00018035  0x00003c7a call  0x00004772 
+ 00018036  0x00003c7b call  0x00006ff7 
+ 00018037  0x00003c7c setarg  0x00004756 
+ 00018038  0x00003c7d store  0x00000002 , 0x000045f2 
+ 00018039  0x00003c7f setarg  0x000046b6 
+ 00018040  0x00003c80 store  0x00000002 , 0x000045f6 
+ 00018041  0x00003c82 setarg  0x000046b1 
+ 00018042  0x00003c83 store  0x00000002 , 0x000043d5 
+ 00018043  0x00003c85 setarg  0x000046f0 
+ 00018044  0x00003c86 store  0x00000002 , 0x000043db 
+ 00018045  0x00003c88 setarg  0x000046f2 
+ 00018046  0x00003c89 store  0x00000002 , 0x000043dd 
+ 00018047  0x00003c8b setarg  0x0000473b 
+ 00018048  0x00003c8c store  0x00000002 , 0x000043e3 
+ 00018049  0x00003c8e setarg  0x000046a6 
+ 00018050  0x00003c8f store  0x00000002 , 0x000046ee 
+ 00018051  0x00003c91 setarg  0x00004696 
+ 00018052  0x00003c92 store  0x00000002 , 0x000046f2 
+ 00018053  0x00003c95 bpatch  0x00000033 , 0x00004006 
+ 00018054  0x00003c96 call  0x00006cc1 
+ 00018055  0x00003c97 call  0x000046ad 
+ 00018056  0x00003c99 call  0x000078ad 
+ 00018057  0x00003c9a fetch  0x00000001 , 0x000046be 
+ 00018058  0x00003c9b store  0x00000001 , 0x0000462d 
+ 00018059  0x00003c9c beq  0x00000000 , 0x00004695 
+ 00018060  0x00003c9d fetch  0x00000001 , 0x000046bf 
+ 00018061  0x00003c9e store  0x00000001 , 0x000044ec 
+ 00018062  0x00003ca0 call  0x000046a6 
+ 00018063  0x00003ca1 call  0x00007776 
+ 00018064  0x00003ca2 call  0x00007780 
+ 00018065  0x00003ca3 jam  0x00000001 , 0x000046ea 
+ 00018066  0x00003ca4 fetch  0x00000002 , 0x000044e9 
+ 00018067  0x00003ca5 rtnbit1  0x0000000c 
+ 00018068  0x00003ca6 branch  0x00004327 
+ 00018069  0x00003cab jam  0x00000002 , 0x000046ea 
+ 00018070  0x00003cad call  0x000046a6 
+ 00018071  0x00003cae arg  0x00000000 , 0x00000011 
+ 00018072  0x00003caf call  0x000077c4 
+ 00018073  0x00003cb0 call  0x00004719 
+ 00018074  0x00003cb1 fetch  0x00000004 , 0x00004700 
+ 00018075  0x00003cb2 store  0x00000004 , 0x0000458f 
+ 00018076  0x00003cb3 branch  0x00003291 , 0x00000034 
+ 00018077  0x00003cb4 fetch  0x00000004 , 0x0000458f 
+ 00018078  0x00003cb5 store  0x00000004 , 0x000045e8 
+ 00018079  0x00003cb6 fetch  0x00000002 , 0x000045dc 
+ 00018080  0x00003cb7 store  0x00000002 , 0x000045de 
+ 00018081  0x00003cb8 branch  0x00003534 
+ 00018082  0x00003cbb arg  0x00000004 , 0x00000002 
+ 00018083  0x00003cbc arg  0x0000458f , 0x00000011 
+ 00018084  0x00003cbd arg  0x00000000 , 0x00000012 
+ 00018085  0x00003cbe rtn 
+ 00018086  0x00003cc3 bpatch  0x00000034 , 0x00004006 
+ 00018087  0x00003cc4 fetch  0x00000001 , 0x000046bc 
+ 00018088  0x00003cc5 bne  0x000000ff , 0x000046ab 
+ 00018089  0x00003cc7 fetcht  0x00000001 , 0x00004699 
+ 00018090  0x00003cc8 branch  0x00006ef7 
+ 00018091  0x00003cca store  0x00000001 , 0x00004699 
+ 00018092  0x00003ccb branch  0x000046a9 
+ 00018093  0x00003ccf call  0x000035f0 
+ 00018094  0x00003cd1 fetch  0x00000002 , 0x000046e6 
+ 00018095  0x00003cd2 store  0x00000002 , 0x000046e8 
+ 00018096  0x00003cd3 rtn 
+ 00018097  0x00003cd6 call  0x000046b6 
+ 00018098  0x00003cd8 fetch  0x00000001 , 0x0000468f 
+ 00018099  0x00003cd9 set1  0x00000007 , 0x0000003f 
+ 00018100  0x00003cda arg  0x0000003f , 0x00000002 
+ 00018101  0x00003cdb branch  0x00006f20 
+ 00018102  0x00003cde call  0x00006f35 
+ 00018103  0x00003cdf branch  0x0000701b 
+ 00018104  0x00003ce2 call  0x00007027 
+ 00018105  0x00003ce3 call  0x000046c9 
+ 00018106  0x00003ce4 call  0x000046bc 
+ 00018107  0x00003ce5 branch  0x000046d7 
+ 00018108  0x00003ce8 fetch  0x00000001 , 0x000046f5 
+ 00018109  0x00003ce9 rtnne  0x00000001 
+ 00018110  0x00003cea fetch  0x00000004 , 0x000046f9 
+ 00018111  0x00003ceb branch  0x000046c3 , 0x00000034 
+ 00018112  0x00003cec jam  0x00000000 , 0x000046ff 
+ 00018113  0x00003ced enable  0x00000028 
+ 00018114  0x00003cee branch  0x0000788d 
+ 00018115  0x00003cf0 fetch  0x00000001 , 0x000046ff 
+ 00018116  0x00003cf1 rtneq  0x000000ff 
+ 00018117  0x00003cf2 pincrease  0x00000001 
+ 00018118  0x00003cf3 store  0x00000001 , 0x000046ff 
+ 00018119  0x00003cf4 disable  0x00000028 
+ 00018120  0x00003cf5 branch  0x0000788b 
+ 00018121  0x00003cf9 fetcht  0x00000002 , 0x0000442e 
+ 00018122  0x00003cfa and  0x00000002 , 0x00000001 , 0x0000003f 
+ 00018123  0x00003cfb rshift  0x00000002 , 0x00000002 
+ 00018124  0x00003cfc store  0x00000001 , 0x000046f9 
+ 00018125  0x00003cfd and  0x00000002 , 0x00000001 , 0x0000003f 
+ 00018126  0x00003cfe rshift  0x00000002 , 0x00000002 
+ 00018127  0x00003cff store  0x00000001 , 0x000046fa 
+ 00018128  0x00003d00 and  0x00000002 , 0x00000001 , 0x0000003f 
+ 00018129  0x00003d01 rshift  0x00000002 , 0x00000002 
+ 00018130  0x00003d02 store  0x00000001 , 0x000046fb 
+ 00018131  0x00003d03 and  0x00000002 , 0x00000001 , 0x0000003f 
+ 00018132  0x00003d04 rshift  0x00000002 , 0x00000002 
+ 00018133  0x00003d05 store  0x00000001 , 0x000046fc 
+ 00018134  0x00003d06 rtn 
+ 00018135  0x00003d08 bpatch  0x00000035 , 0x00004006 
+ 00018136  0x00003d09 call  0x000046e6 
+ 00018137  0x00003d0a call  0x000046eb 
+ 00018138  0x00003d0b call  0x000046dd 
+ 00018139  0x00003d0c nrtn  0x00000028 
+ 00018140  0x00003d0d branch  0x00004752 
+ 00018141  0x00003d11 fetch  0x00000001 , 0x000046f5 
+ 00018142  0x00003d12 rtnne  0x00000001 
+ 00018143  0x00003d13 fetch  0x00000001 , 0x000046ff 
+ 00018144  0x00003d14 rtn  0x00000034 
+ 00018145  0x00003d15 sub  0x0000003f , 0x00000001 , 0x0000003e 
+ 00018146  0x00003d16 nrtn  0x00000002 
+ 00018147  0x00003d17 fetch  0x00000002 , 0x000045dc 
+ 00018148  0x00003d18 store  0x00000002 , 0x000045de 
+ 00018149  0x00003d19 branch  0x00007dba 
+ 00018150  0x00003d1e fetch  0x00000001 , 0x000046f9 
+ 00018151  0x00003d1f nbranch  0x00004746 , 0x00000034 
+ 00018152  0x00003d20 fetch  0x00000001 , 0x000046fa 
+ 00018153  0x00003d21 nbranch  0x00004748 , 0x00000034 
+ 00018154  0x00003d22 branch  0x0000474e 
+ 00018155  0x00003d25 fetch  0x00000001 , 0x000046fb 
+ 00018156  0x00003d26 nbranch  0x0000474a , 0x00000034 
+ 00018157  0x00003d27 fetch  0x00000001 , 0x000046fc 
+ 00018158  0x00003d28 nbranch  0x0000474c , 0x00000034 
+ 00018159  0x00003d29 branch  0x00004750 
+ 00018160  0x00003d2d call  0x00004730 
+ 00018161  0x00003d2e branch  0x000046b8 
+ 00018162  0x00003d31 copy  0x00000013 , 0x0000003f 
+ 00018163  0x00003d32 beq  0x0000002d , 0x00004347 
+ 00018164  0x00003d33 beq  0x00000010 , 0x0000432f 
+ 00018165  0x00003d34 beq  0x00000039 , 0x000046fa 
+ 00018166  0x00003d35 beq  0x0000003c , 0x00004701 
+ 00018167  0x00003d36 beq  0x0000003a , 0x000046f9 
+ 00018168  0x00003d37 rtn 
+ 00018169  0x00003d3a branch  0x0000357b 
+ 00018170  0x00003d3d bpatch  0x00000036 , 0x00004006 
+ 00018171  0x00003d3e fetch  0x00000004 , 0x000045e8 
+ 00018172  0x00003d3f store  0x00000004 , 0x00004700 
+ 00018173  0x00003d40 fetch  0x00000001 , 0x0000470c 
+ 00018174  0x00003d41 ncall  0x00004706 , 0x00000034 
+ 00018175  0x00003d42 fetch  0x00000004 , 0x00004700 
+ 00018176  0x00003d43 call  0x00003236 
+ 00018177  0x00003d47 jam  0x00000000 , 0x000045fc 
+ 00018178  0x00003d48 jam  0x00000001 , 0x000046f6 
+ 00018179  0x00003d49 jam  0x00000001 , 0x000046f7 
+ 00018180  0x00003d4a jam  0x00000000 , 0x000045de 
+ 00018181  0x00003d4b rtn 
+ 00018182  0x00003d4f fetch  0x00000001 , 0x0000470c 
+ 00018183  0x00003d50 rtn  0x00000034 
+ 00018184  0x00003d51 fetch  0x00000001 , 0x000044f2 
+ 00018185  0x00003d52 store  0x00000001 , 0x00004703 
+ 00018186  0x00003d54 fetch  0x00000001 , 0x000045e9 
+ 00018187  0x00003d55 store  0x00000001 , 0x00004702 
+ 00018188  0x00003d57 fetch  0x00000001 , 0x000044f1 
+ 00018189  0x00003d58 store  0x00000001 , 0x00004701 
+ 00018190  0x00003d5a fetch  0x00000001 , 0x000045e8 
+ 00018191  0x00003d5b store  0x00000001 , 0x00004700 
+ 00018192  0x00003d5c call  0x00004720 
+ 00018193  0x00003d5d fetch  0x00000004 , 0x00004700 
+ 00018194  0x00003d5e fetcht  0x00000004 , 0x00004704 
+ 00018195  0x00003d5f isub  0x00000002 , 0x0000003e 
+ 00018196  0x00003d60 rtn  0x00000005 
+ 00018197  0x00003d61 copy  0x00000013 , 0x00000012 
+ 00018198  0x00003d62 arg  0x00004700 , 0x00000011 
+ 00018199  0x00003d63 arg  0x00000004 , 0x00000039 
+ 00018200  0x00003d64 branch  0x00006b45 
+ 00018201  0x00003d67 fetch  0x00000001 , 0x0000470c 
+ 00018202  0x00003d68 rtn  0x00000034 
+ 00018203  0x00003d69 call  0x00004720 
+ 00018204  0x00003d6a fetch  0x00000004 , 0x00004704 
+ 00018205  0x00003d6b rtn  0x00000034 
+ 00018206  0x00003d6c store  0x00000004 , 0x00004700 
+ 00018207  0x00003d6d rtn 
+ 00018208  0x00003d71 fetch  0x00000001 , 0x0000470c 
+ 00018209  0x00003d72 rtn  0x00000034 
+ 00018210  0x00003d73 arg  0x00000700 , 0x00000013 
+ 00018211  0x00003d75 copy  0x00000013 , 0x00000012 
+ 00018212  0x00003d76 arg  0x00004704 , 0x00000011 
+ 00018213  0x00003d77 arg  0x00000004 , 0x00000039 
+ 00018214  0x00003d78 call  0x00006b74 
+ 00018215  0x00003d79 fetch  0x00000004 , 0x00004708 
+ 00018216  0x00003d7a rtn  0x00000034 
+ 00018217  0x00003d7b store  0x00000004 , 0x00004704 
+ 00018218  0x00003d7c copy  0x00000013 , 0x0000003f 
+ 00018219  0x00003d7d arg  0x000007cc , 0x00000002 
+ 00018220  0x00003d7e isub  0x00000002 , 0x0000003e 
+ 00018221  0x00003d7f rtn  0x00000002 
+ 00018222  0x00003d80 increase  0x00000004 , 0x00000013 
+ 00018223  0x00003d81 branch  0x00004723 
+ 00018224  0x00003d84 fetch  0x00000001 , 0x000046f6 
+ 00018225  0x00003d85 rtneq  0x00000000 
+ 00018226  0x00003d86 fetch  0x00000001 , 0x000046f5 
+ 00018227  0x00003d87 rtneq  0x00000001 
+ 00018228  0x00003d88 jam  0x00000001 , 0x000046f5 
+ 00018229  0x00003d8a arg  0x00000000 , 0x00000011 
+ 00018230  0x00003d8b branch  0x000077bf 
+ 00018231  0x00003d8d arg  0x00000000 , 0x00000011 
+ 00018232  0x00003d8e call  0x000077bf 
+ 00018233  0x00003d8f call  0x000046a6 
+ 00018234  0x00003d90 branch  0x00004327 
+ 00018235  0x00003d93 call  0x000042ee 
+ 00018236  0x00003d94 call  0x0000328e 
+ 00018237  0x00003d95 call  0x00003531 
+ 00018238  0x00003d96 branch  0x0000473f 
+ 00018239  0x00003d99 fetch  0x00000001 , 0x000046c0 
+ 00018240  0x00003d9a rtn  0x00000034 
+ 00018241  0x00003d9b fetch  0x00000001 , 0x0000442e 
+ 00018242  0x00003d9c nbranch  0x000046ae , 0x00000034 
+ 00018243  0x00003d9d arg  0x000046e8 , 0x00000013 
+ 00018244  0x00003d9e arg  0x00004737 , 0x00000012 
+ 00018245  0x00003d9f branch  0x000042e7 
+ 00018246  0x00003da4 jam  0x00000001 , 0x000046c7 
+ 00018247  0x00003da5 rtn 
+ 00018248  0x00003da7 jam  0x00000002 , 0x000046c7 
+ 00018249  0x00003da8 rtn 
+ 00018250  0x00003daa jam  0x00000001 , 0x000046c9 
+ 00018251  0x00003dab rtn 
+ 00018252  0x00003dad jam  0x00000002 , 0x000046c9 
+ 00018253  0x00003dae rtn 
+ 00018254  0x00003db3 jam  0x00000000 , 0x000046c7 
+ 00018255  0x00003db4 rtn 
+ 00018256  0x00003db7 jam  0x00000000 , 0x000046c9 
+ 00018257  0x00003db8 rtn 
+ 00018258  0x00003dbb arg  0x000046c1 , 0x00000011 
+ 00018259  0x00003dbc branch  0x000078b2 
+ 00018260  0x00003dbe arg  0x000046ce , 0x00000011 
+ 00018261  0x00003dbf branch  0x000078b2 
+ 00018262  0x00003dc2 fetch  0x00000001 , 0x000046f7 
+ 00018263  0x00003dc3 beq  0x00000001 , 0x00004760 
+ 00018264  0x00003dc4 arg  0x000046d7 , 0x00000011 
+ 00018265  0x00003dc5 call  0x000078ca 
+ 00018266  0x00003dc6 nbranch  0x00004765 , 0x00000028 
+ 00018267  0x00003dc8 arg  0x000046d7 , 0x00000006 
+ 00018268  0x00003dc9 ifetch  0x00000001 , 0x00000006 
+ 00018269  0x00003dca copy  0x0000003f , 0x00000011 
+ 00018270  0x00003dcb arg  0x000046d8 , 0x00000012 
+ 00018271  0x00003dce rtn 
+ 00018272  0x00003dd1 jam  0x00000000 , 0x000046f7 
+ 00018273  0x00003dd2 enable  0x00000028 
+ 00018274  0x00003dd3 arg  0x00000001 , 0x00000011 
+ 00018275  0x00003dd4 arg  0x000046f8 , 0x00000012 
+ 00018276  0x00003dd5 rtn 
+ 00018277  0x00003dd8 fetch  0x00000001 , 0x000046da 
+ 00018278  0x00003dd9 beq  0x00000004 , 0x00004769 
+ 00018279  0x00003dda beq  0x00000005 , 0x00004769 
+ 00018280  0x00003ddb rtn 
+ 00018281  0x00003ddd fetch  0x00000001 , 0x000046dd 
+ 00018282  0x00003dde nbranch  0x00004770 , 0x00000034 
+ 00018283  0x00003ddf fetch  0x00000001 , 0x000046df 
+ 00018284  0x00003de0 nbranch  0x00004770 , 0x00000034 
+ 00018285  0x00003de1 fetch  0x00000001 , 0x000046e1 
+ 00018286  0x00003de2 nbranch  0x00004770 , 0x00000034 
+ 00018287  0x00003de3 rtn 
+ 00018288  0x00003de5 enable  0x00000028 
+ 00018289  0x00003de6 branch  0x0000475b 
+ 00018290  0x00003dec jam  0x00000014 , 0x000044eb 
+ 00018291  0x00003ded jam  0x00000001 , 0x000044e4 
+ 00018292  0x00003dee setarg  0x0000060f 
+ 00018293  0x00003def store  0x00000002 , 0x0000462e 
+ 00018294  0x00003df0 setarg  0x0000462e 
+ 00018295  0x00003df1 store  0x00000002 , 0x000043fb 
+ 00018296  0x00003df2 jam  0x00000001 , 0x00004094 
+ 00018297  0x00003df3 jam  0x00000006 , 0x000040a6 
+ 00018298  0x00003df4 jam  0x00000002 , 0x000040c1 
+ 00018299  0x00003df5 jam  0x00000000 , 0x0000462d 
+ 00018300  0x00003df6 setarg  0x0000468d 
+ 00018301  0x00003df7 store  0x00000002 , 0x000044ef 
+ 00018302  0x00003df8 jam  0x00000001 , 0x000044ee 
+ 00018303  0x00003df9 jam  0x000000ff , 0x0000468e 
+ 00018304  0x00003dfa setarg  0x00000296 
+ 00018305  0x00003dfb store  0x00000002 , 0x00004690 
+ 00018306  0x00003dfc setarg  0x0000073a 
+ 00018307  0x00003dfd store  0x00000002 , 0x00004692 
+ 00018308  0x00003dfe setarg  0x000046ea 
+ 00018309  0x00003dff store  0x00000002 , 0x00004430 
+ 00018310  0x00003e00 setarg  0x00000c0c 
+ 00018311  0x00003e01 store  0x00000002 , 0x000046ec 
+ 00018312  0x00003e02 setarg  0x000046a1 
+ 00018313  0x00003e03 store  0x00000002 , 0x0000442c 
+ 00018314  0x00003e04 jam  0x00000000 , 0x000046be 
+ 00018315  0x00003e05 jam  0x000000ff , 0x000046bc 
+ 00018316  0x00003e06 jam  0x000000ff , 0x000046bf 
+ 00018317  0x00003e07 jam  0x00000000 , 0x000046ba 
+ 00018318  0x00003e08 jam  0x00000000 , 0x000046bb 
+ 00018319  0x00003e09 jam  0x00000000 , 0x000046bd 
+ 00018320  0x00003e0a jam  0x00000001 , 0x000046c0 
+ 00018321  0x00003e0b setarg  0x00004e55 
+ 00018322  0x00003e0c store  0x00000002 , 0x000046ad 
+ 00018323  0x00003e0d store  0x00000002 , 0x000046af 
+ 00018324  0x00003e0e setarg  0x00000007 
+ 00018325  0x00003e0f store  0x00000002 , 0x000046b3 
+ 00018326  0x00003e10 jam  0x00000002 , 0x00004407 
+ 00018327  0x00003e11 setsect  0x00000000 , 0x00035a0c 
+ 00018328  0x00003e12 setsect  0x00000001 , 0x0000011a 
+ 00018329  0x00003e13 setsect  0x00000002 , 0x00000060 
+ 00018330  0x00003e14 setsect  0x00000003 , 0x00000028 
+ 00018331  0x00003e15 store  0x00000009 , 0x000046c1 
+ 00018332  0x00003e16 setsect  0x00000000 , 0x0002000a 
+ 00018333  0x00003e17 setsect  0x00000001 , 0x00000002 
+ 00018334  0x00003e18 istore  0x00000004 , 0x00000005 
+ 00018335  0x00003e19 setsect  0x00000000 , 0x00035a08 
+ 00018336  0x00003e1a setsect  0x00000001 , 0x0000019a 
+ 00018337  0x00003e1b setsect  0x00000002 , 0x00000000 
+ 00018338  0x00003e1c setsect  0x00000003 , 0x00000000 
+ 00018339  0x00003e1d store  0x00000009 , 0x000046ce 
+ 00018340  0x00003e1e setarg  0x00000064 
+ 00018341  0x00003e1f store  0x00000002 , 0x000046e6 
+ 00018342  0x00003e20 jam  0x00000000 , 0x00004141 
+ 00018343  0x00003e21 jam  0x00000001 , 0x00004589 
+ 00018344  0x00003e22 jam  0x00000006 , 0x00004603 
+ 00018345  0x00003e23 jam  0x00000001 , 0x000045ae 
+ 00018346  0x00003e24 jam  0x00000000 , 0x000045e3 
+ 00018347  0x00003e25 call  0x00003278 
+ 00018348  0x00003e26 call  0x000035fb 
+ 00018349  0x00003e27 call  0x0000325b 
+ 00018350  0x00003e2a setarg  0x00000708 
+ 00018351  0x00003e2b store  0x00000002 , 0x000045d6 
+ 00018352  0x00003e2c setarg  0x00000050 
+ 00018353  0x00003e2d store  0x00000002 , 0x000045dc 
+ 00018354  0x00003e2e setarg  0x000a7700 
+ 00018355  0x00003e2f store  0x00000003 , 0x0000460b 
+ 00018356  0x00003e30 setarg  0x00604800 
+ 00018357  0x00003e31 store  0x00000003 , 0x000045af 
+ 00018358  0x00003e32 rtn 
+ 00018359  0x00003e3a setarg  0x000047ea 
+ 00018360  0x00003e3b store  0x00000002 , 0x000045e0 
+ 00018361  0x00003e3c setarg  0x000048d4 
+ 00018362  0x00003e3d store  0x00000002 , 0x000045e4 
+ 00018363  0x00003e3e setarg  0x000048e5 
+ 00018364  0x00003e3f store  0x00000002 , 0x000045e6 
+ 00018365  0x00003e40 setarg  0x000048ab 
+ 00018366  0x00003e41 store  0x00000002 , 0x000045e2 
+ 00018367  0x00003e42 setarg  0x000047f9 
+ 00018368  0x00003e43 store  0x00000002 , 0x00000859 
+ 00018369  0x00003e44 branch  0x00007912 
+ 00018370  0x00003e48 bpatch  0x00000037 , 0x00004006 
+ 00018371  0x00003e4a call  0x000047ef 
+ 00018372  0x00003e4b call  0x000047e5 
+ 00018373  0x00003e4c fetch  0x00000001 , 0x00004669 
+ 00018374  0x00003e4d isolate1  0x00000005 , 0x0000003f 
+ 00018375  0x00003e4e branch  0x000047cb , 0x00000001 
+ 00018376  0x00003e4f fetch  0x00000001 , 0x00004669 
+ 00018377  0x00003e50 isolate1  0x00000006 , 0x0000003f 
+ 00018378  0x00003e51 call  0x0000326b , 0x00000001 
+ 00018379  0x00003e53 fetch  0x00000001 , 0x00004694 
+ 00018380  0x00003e54 store  0x00000001 , 0x00004141 
+ 00018381  0x00003e56 jam  0x000000ff , 0x000045d2 
+ 00018382  0x00003e57 setarg  0x0000099f 
+ 00018383  0x00003e58 store  0x00000002 , 0x00004640 
+ 00018384  0x00003e59 setarg  0x00000a9f 
+ 00018385  0x00003e5a store  0x00000002 , 0x00004642 
+ 00018386  0x00003e5b setarg  0x00000b9f 
+ 00018387  0x00003e5c store  0x00000002 , 0x00004644 
+ 00018388  0x00003e5d setarg  0x00000c9f 
+ 00018389  0x00003e5e store  0x00000002 , 0x00004646 
+ 00018390  0x00003e5f jam  0x00000085 , 0x000045d1 
+ 00018391  0x00003e60 jam  0x00000000 , 0x00004692 
+ 00018392  0x00003e61 jam  0x00000000 , 0x0000462b 
+ 00018393  0x00003e62 call  0x00003281 
+ 00018394  0x00003e63 fetch  0x00000001 , 0x00004669 
+ 00018395  0x00003e64 isolate1  0x00000003 , 0x0000003f 
+ 00018396  0x00003e65 call  0x00003284 , 0x00000001 
+ 00018397  0x00003e66 call  0x0000339f 
+ 00018398  0x00003e67 call  0x00003287 
+ 00018399  0x00003e68 call  0x0000325b 
+ 00018400  0x00003e6a fetch  0x00000001 , 0x00004673 
+ 00018401  0x00003e6b store  0x00000001 , 0x0000085b 
+ 00018402  0x00003e6c fetch  0x00000009 , 0x0000466a 
+ 00018403  0x00003e6d store  0x00000009 , 0x0000085c 
+ 00018404  0x00003e6e rtn 
+ 00018405  0x00003e71 jam  0x00000018 , 0x00004099 
+ 00018406  0x00003e72 fetch  0x00000001 , 0x00004669 
+ 00018407  0x00003e73 rtnbit0  0x00000007 
+ 00018408  0x00003e74 jam  0x00000010 , 0x00004099 
+ 00018409  0x00003e75 rtn 
+ 00018410  0x00003e78 fetch  0x00000001 , 0x00004610 
+ 00018411  0x00003e79 beq  0x00000000 , 0x0000489b 
+ 00018412  0x00003e7a beq  0x00000001 , 0x00004822 
+ 00018413  0x00003e7b beq  0x0000000f , 0x0000481e 
+ 00018414  0x00003e7c rtn 
+ 00018415  0x00003e80 bpatch  0x00000038 , 0x00004007 
+ 00018416  0x00003e81 arg  0x00001fdf , 0x00000012 
+ 00018417  0x00003e82 arg  0x00004648 , 0x00000011 
+ 00018418  0x00003e83 arg  0x00000001 , 0x00000039 
+ 00018419  0x00003e84 branch  0x00006b74 
+ 00018420  0x00003e87 bpatch  0x00000039 , 0x00004007 
+ 00018421  0x00003e88 arg  0x00000001 , 0x00000039 
+ 00018422  0x00003e89 arg  0x00004648 , 0x00000011 
+ 00018423  0x00003e8a arg  0x00001fdf , 0x00000012 
+ 00018424  0x00003e8b branch  0x00006b45 
+ 00018425  0x00003e8e fetch  0x00000001 , 0x00004669 
+ 00018426  0x00003e8f bbit1  0x00000004 , 0x000047fd 
+ 00018427  0x00003e90 fetch  0x00000001 , 0x00004648 
+ 00018428  0x00003e91 bne  0x0000005a , 0x00004801 
+ 00018429  0x00003e93 jam  0x0000005a , 0x00004648 
+ 00018430  0x00003e94 fetch  0x00000004 , 0x0000937a 
+ 00018431  0x00003e95 set1  0x0000001d , 0x0000003f 
+ 00018432  0x00003e96 store  0x00000004 , 0x000007b4 
+ 00018433  0x00003e98 call  0x00004818 
+ 00018434  0x00003e99 call  0x00007966 
+ 00018435  0x00003e9a call  0x00004805 
+ 00018436  0x00003e9b branch  0x0000480e 
+ 00018437  0x00003e9e fetch  0x00000001 , 0x0000085c 
+ 00018438  0x00003e9f rtn  0x00000034 
+ 00018439  0x00003ea0 fetch  0x00000001 , 0x00004648 
+ 00018440  0x00003ea1 beq  0x0000005a , 0x0000480c 
+ 00018441  0x00003ea3 fetch  0x00000004 , 0x0000085d 
+ 00018442  0x00003ea5 store  0x00000004 , 0x000007b4 
+ 00018443  0x00003ea6 rtn 
+ 00018444  0x00003ea8 fetch  0x00000004 , 0x00000861 
+ 00018445  0x00003ea9 branch  0x0000480a 
+ 00018446  0x00003eac fetch  0x00000001 , 0x00004648 
+ 00018447  0x00003ead beq  0x0000005a , 0x00004814 
+ 00018448  0x00003eae setarg  0x00009272 
+ 00018449  0x00003eaf store  0x00000002 , 0x000007a7 
+ 00018450  0x00003eb0 jam  0x0000001a , 0x000007d8 
+ 00018451  0x00003eb1 rtn 
+ 00018452  0x00003eb3 setarg  0x0000928d 
+ 00018453  0x00003eb4 store  0x00000002 , 0x000007a7 
+ 00018454  0x00003eb5 jam  0x0000003f , 0x000007d8 
+ 00018455  0x00003eb6 rtn 
+ 00018456  0x00003eb9 fetch  0x00000001 , 0x00004674 
+ 00018457  0x00003eba rtn  0x00000034 
+ 00018458  0x00003ebb arg  0x00004674 , 0x00000006 
+ 00018459  0x00003ebc arg  0x0000081d , 0x00000005 
+ 00018460  0x00003ebd arg  0x0000001e , 0x00000039 
+ 00018461  0x00003ebe branch  0x00007cda 
+ 00018462  0x00003ec2 call  0x00003460 
+ 00018463  0x00003ec4 call  0x000048a3 
+ 00018464  0x00003ec5 call  0x00004867 
+ 00018465  0x00003ec6 branch  0x0000481f 
+ 00018466  0x00003ec9 call  0x00003460 
+ 00018467  0x00003ecb call  0x000048a3 
+ 00018468  0x00003ecc call  0x00003469 
+ 00018469  0x00003ecd call  0x00004867 
+ 00018470  0x00003ece branch  0x00004823 
+ 00018471  0x00003ed1 call  0x0000482b 
+ 00018472  0x00003ed2 call  0x0000483b 
+ 00018473  0x00003ed3 call  0x0000484c 
+ 00018474  0x00003ed4 branch  0x00004859 
+ 00018475  0x00003ed7 bpatch  0x0000003a , 0x00004007 
+ 00018476  0x00003ed8 fetch  0x00000001 , 0x00004668 
+ 00018477  0x00003ed9 rtn  0x00000034 
+ 00018478  0x00003eda arg  0x0000000d , 0x00000007 
+ 00018479  0x00003edb call  0x00007cef 
+ 00018480  0x00003edc nrtn  0x00000034 
+ 00018481  0x00003edd jam  0x00000000 , 0x00004668 
+ 00018482  0x00003ede setarg  0x00000001 
+ 00018483  0x00003edf store  0x00000001 , 0x00000913 
+ 00018484  0x00003ee0 setarg  0x00000000 
+ 00018485  0x00003ee1 istore  0x00000007 , 0x00000005 
+ 00018486  0x00003ee3 jam  0x00000020 , 0x0000090c 
+ 00018487  0x00003ee5 fetch  0x00000001 , 0x0000090d 
+ 00018488  0x00003ee6 set1  0x00000002 , 0x0000003f 
+ 00018489  0x00003ee7 store  0x00000001 , 0x0000090d 
+ 00018490  0x00003ee8 rtn 
+ 00018491  0x00003eeb bpatch  0x0000003b , 0x00004007 
+ 00018492  0x00003eec fetch  0x00000001 , 0x00004665 
+ 00018493  0x00003eed rtn  0x00000034 
+ 00018494  0x00003eee arg  0x0000000e , 0x00000007 
+ 00018495  0x00003eef call  0x00007cef 
+ 00018496  0x00003ef0 nrtn  0x00000034 
+ 00018497  0x00003ef1 jam  0x00000000 , 0x00004665 
+ 00018498  0x00003ef2 arg  0x00000923 , 0x00000005 
+ 00018499  0x00003ef3 call  0x00007c99 
+ 00018500  0x00003ef4 fetch  0x00000008 , 0x00000923 
+ 00018501  0x00003ef5 store  0x00000008 , 0x00004651 
+ 00018502  0x00003ef7 jam  0x00000000 , 0x00000923 
+ 00018503  0x00003ef9 jam  0x00000010 , 0x0000090b 
+ 00018504  0x00003efa fetch  0x00000001 , 0x0000090d 
+ 00018505  0x00003efb set1  0x00000001 , 0x0000003f 
+ 00018506  0x00003efc store  0x00000001 , 0x0000090d 
+ 00018507  0x00003efd rtn 
+ 00018508  0x00003f00 fetch  0x00000001 , 0x00004667 
+ 00018509  0x00003f01 rtn  0x00000034 
+ 00018510  0x00003f02 arg  0x0000000a , 0x00000007 
+ 00018511  0x00003f03 call  0x00007cef 
+ 00018512  0x00003f04 nrtn  0x00000034 
+ 00018513  0x00003f05 jam  0x00000000 , 0x00004667 
+ 00018514  0x00003f06 arg  0x00000943 , 0x00000005 
+ 00018515  0x00003f07 call  0x00007c99 
+ 00018516  0x00003f08 jam  0x00000002 , 0x00000943 
+ 00018517  0x00003f09 fetch  0x00000002 , 0x00000943 
+ 00018518  0x00003f0a store  0x00000002 , 0x0000465f 
+ 00018519  0x00003f0c jam  0x00000022 , 0x0000090c 
+ 00018520  0x00003f0d branch  0x00004837 
+ 00018521  0x00003f10 bpatch  0x0000003c , 0x00004007 
+ 00018522  0x00003f11 fetch  0x00000001 , 0x00004666 
+ 00018523  0x00003f12 rtn  0x00000034 
+ 00018524  0x00003f13 arg  0x0000000c , 0x00000007 
+ 00018525  0x00003f14 call  0x00007cef 
+ 00018526  0x00003f15 nrtn  0x00000034 
+ 00018527  0x00003f16 jam  0x00000000 , 0x00004666 
+ 00018528  0x00003f17 arg  0x00000933 , 0x00000005 
+ 00018529  0x00003f18 call  0x00007c99 
+ 00018530  0x00003f19 jam  0x00000003 , 0x00000933 
+ 00018531  0x00003f1a fetch  0x00000003 , 0x00000933 
+ 00018532  0x00003f1b store  0x00000003 , 0x0000465c 
+ 00018533  0x00003f1d jam  0x00000021 , 0x0000090c 
+ 00018534  0x00003f1e branch  0x00004837 
+ 00018535  0x00003f21 bpatch  0x0000003d , 0x00004007 
+ 00018536  0x00003f22 fetch  0x00000001 , 0x00000901 
+ 00018537  0x00003f23 call  0x000048b5 , 0x00000034 
+ 00018538  0x00003f24 call  0x00007906 
+ 00018539  0x00003f25 fetch  0x00000001 , 0x000008f7 
+ 00018540  0x00003f26 rtn  0x00000034 
+ 00018541  0x00003f27 jam  0x00000000 , 0x000008f7 
+ 00018542  0x00003f28 fetch  0x00000002 , 0x000008f5 
+ 00018543  0x00003f29 arg  0x000002ba , 0x00000002 
+ 00018544  0x00003f2a isub  0x00000002 , 0x0000003e 
+ 00018545  0x00003f2b nrtn  0x00000005 
+ 00018546  0x00003f2d fetch  0x00000001 , 0x00000875 
+ 00018547  0x00003f2e rtnne  0x000000ba 
+ 00018548  0x00003f2f fetch  0x00000001 , 0x00000876 
+ 00018549  0x00003f30 beq  0x000000a0 , 0x0000487c 
+ 00018550  0x00003f31 beq  0x000000a1 , 0x00004882 
+ 00018551  0x00003f32 beq  0x000000a6 , 0x0000488e 
+ 00018552  0x00003f33 beq  0x000000a7 , 0x00004890 
+ 00018553  0x00003f34 beq  0x000000a9 , 0x00004896 
+ 00018554  0x00003f37 jam  0x00000000 , 0x000008f8 
+ 00018555  0x00003f38 rtn 
+ 00018556  0x00003f3b fetch  0x00000001 , 0x00000877 
+ 00018557  0x00003f3c beq  0x00000081 , 0x0000487f 
+ 00018558  0x00003f3d branch  0x0000487a 
+ 00018559  0x00003f3f call  0x000032fc 
+ 00018560  0x00003f41 jam  0x00000001 , 0x000008f8 
+ 00018561  0x00003f42 rtn 
+ 00018562  0x00003f45 fetch  0x00000001 , 0x00000877 
+ 00018563  0x00003f46 beq  0x00000001 , 0x00004887 
+ 00018564  0x00003f47 beq  0x00000084 , 0x0000488a 
+ 00018565  0x00003f48 beq  0x000000a7 , 0x0000488c 
+ 00018566  0x00003f49 branch  0x0000487a 
+ 00018567  0x00003f4b fetch  0x00000001 , 0x000045d5 
+ 00018568  0x00003f4c store  0x00000001 , 0x000008b6 
+ 00018569  0x00003f4d branch  0x00004880 
+ 00018570  0x00003f4f call  0x00003461 
+ 00018571  0x00003f50 branch  0x00004887 
+ 00018572  0x00003f53 jam  0x000000a1 , 0x000008b6 
+ 00018573  0x00003f54 branch  0x00004880 
+ 00018574  0x00003f57 jam  0x00000015 , 0x000008b6 
+ 00018575  0x00003f58 branch  0x00004880 
+ 00018576  0x00003f5b fetch  0x00000001 , 0x00004616 
+ 00018577  0x00003f5c beq  0x00000000 , 0x00004894 
+ 00018578  0x00003f5d beq  0x00000001 , 0x0000488c 
+ 00018579  0x00003f5e rtn 
+ 00018580  0x00003f60 jam  0x000000a0 , 0x000008b6 
+ 00018581  0x00003f61 branch  0x00004880 
+ 00018582  0x00003f64 jam  0x00000000 , 0x000008b6 
+ 00018583  0x00003f65 jam  0x00000000 , 0x000008b7 
+ 00018584  0x00003f66 jam  0x00000001 , 0x000008b8 
+ 00018585  0x00003f67 jam  0x00000007 , 0x000008b9 
+ 00018586  0x00003f68 branch  0x00004880 
+ 00018587  0x00003f71 call  0x00003402 
+ 00018588  0x00003f73 call  0x00003407 
+ 00018589  0x00003f74 call  0x0000342d 
+ 00018590  0x00003f75 call  0x000048a3 
+ 00018591  0x00003f76 call  0x00003469 
+ 00018592  0x00003f77 call  0x00003488 
+ 00018593  0x00003f78 call  0x00004867 
+ 00018594  0x00003f79 branch  0x0000489c 
+ 00018595  0x00003f7c bpatch  0x0000003e , 0x00004007 
+ 00018596  0x00003f7d fetch  0x00000001 , 0x00004616 
+ 00018597  0x00003f7e rtnne  0x00000000 
+ 00018598  0x00003f7f call  0x00003464 
+ 00018599  0x00003f80 call  0x00004827 
+ 00018600  0x00003f81 fetch  0x00000001 , 0x00004610 
+ 00018601  0x00003f82 nrtn  0x00000034 
+ 00018602  0x00003f83 branch  0x0000350a 
+ 00018603  0x00003f86 fetch  0x00000001 , 0x00004589 
+ 00018604  0x00003f87 beq  0x00000001 , 0x000048ae 
+ 00018605  0x00003f88 beq  0x00000002 , 0x000048b7 
+ 00018606  0x00003f8a fetch  0x00000001 , 0x00004693 
+ 00018607  0x00003f8b bbit1  0x00000000 , 0x000048bd 
+ 00018608  0x00003f8c branch  0x000048b9 
+ 00018609  0x00003f8f fetch  0x00000001 , 0x000043cb 
+ 00018610  0x00003f90 rtnne  0x00000004 
+ 00018611  0x00003f91 jam  0x00000003 , 0x00004693 
+ 00018612  0x00003f92 rtn 
+ 00018613  0x00003f94 jam  0x00000000 , 0x00004693 
+ 00018614  0x00003f95 rtn 
+ 00018615  0x00003f98 fetch  0x00000001 , 0x00004693 
+ 00018616  0x00003f99 bbit1  0x00000001 , 0x000048c1 
+ 00018617  0x00003f9b fetch  0x00000001 , 0x00004611 
+ 00018618  0x00003f9c beq  0x00000001 , 0x000048c8 
+ 00018619  0x00003f9d beq  0x00000003 , 0x000048cc 
+ 00018620  0x00003f9e rtn 
+ 00018621  0x00003fa1 fetch  0x00000001 , 0x00004693 
+ 00018622  0x00003fa2 set0  0x00000000 , 0x0000003f 
+ 00018623  0x00003fa3 store  0x00000001 , 0x00004693 
+ 00018624  0x00003fa4 branch  0x000048c4 
+ 00018625  0x00003fa7 fetch  0x00000001 , 0x00004693 
+ 00018626  0x00003fa8 set0  0x00000001 , 0x0000003f 
+ 00018627  0x00003fa9 store  0x00000001 , 0x00004693 
+ 00018628  0x00003fab jam  0x00000001 , 0x00004588 
+ 00018629  0x00003fac setarg  0x000000ff 
+ 00018630  0x00003fad store  0x00000001 , 0x00004519 
+ 00018631  0x00003fae rtn 
+ 00018632  0x00003fb2 jam  0x00000001 , 0x00004611 
+ 00018633  0x00003fb3 call  0x0000337e 
+ 00018634  0x00003fb4 nrtn  0x0000002f 
+ 00018635  0x00003fb5 branch  0x0000330a 
+ 00018636  0x00003fb8 fetch  0x00000001 , 0x000044f9 
+ 00018637  0x00003fb9 beq  0x00000001 , 0x000048c8 
+ 00018638  0x00003fba beq  0x000000ff , 0x000048c8 
+ 00018639  0x00003fbb jam  0x00000000 , 0x000008f9 
+ 00018640  0x00003fbc jam  0x00000001 , 0x00004588 
+ 00018641  0x00003fbd fetch  0x00000001 , 0x00004621 
+ 00018642  0x00003fbe store  0x00000001 , 0x00004519 
+ 00018643  0x00003fbf rtn 
+ 00018644  0x00003fc2 setarg  0x00000001 
+ 00018645  0x00003fc3 store  0x00000001 , 0x00000913 
+ 00018646  0x00003fc4 fetch  0x00000007 , 0x000045eb 
+ 00018647  0x00003fc5 istore  0x00000007 , 0x00000005 
+ 00018648  0x00003fc6 fetch  0x00000001 , 0x000045eb 
+ 00018649  0x00003fc7 ncall  0x000048dd , 0x00000034 
+ 00018650  0x00003fc8 fetch  0x00000001 , 0x000045eb 
+ 00018651  0x00003fc9 call  0x000048e1 , 0x00000034 
+ 00018652  0x00003fca branch  0x00004836 
+ 00018653  0x00003fcd jam  0x00000001 , 0x00004668 
+ 00018654  0x00003fce setarg  0x00000180 
+ 00018655  0x00003fcf arg  0x0000000d , 0x00000007 
+ 00018656  0x00003fd0 branch  0x00007ce1 
+ 00018657  0x00003fd3 jam  0x00000000 , 0x00004668 
+ 00018658  0x00003fd4 setarg  0x00000000 
+ 00018659  0x00003fd5 arg  0x0000000d , 0x00000007 
+ 00018660  0x00003fd6 branch  0x00007ce1 
+ 00018661  0x00003fd9 fetch  0x00000001 , 0x000045eb 
+ 00018662  0x00003fda beq  0x00000000 , 0x000048ea 
+ 00018663  0x00003fdb beq  0x00000002 , 0x0000491d 
+ 00018664  0x00003fdc beq  0x00000003 , 0x00004905 
+ 00018665  0x00003fdd branch  0x000033be 
+ 00018666  0x00003fe0 fetch  0x00000001 , 0x000045ed 
+ 00018667  0x00003fe1 store  0x00000001 , 0x00004611 
+ 00018668  0x00003fe2 jam  0x00000000 , 0x000045ed 
+ 00018669  0x00003fe3 arg  0x00000923 , 0x00000005 
+ 00018670  0x00003fe4 arg  0x000045ec , 0x00000006 
+ 00018671  0x00003fe5 arg  0x00000008 , 0x00000039 
+ 00018672  0x00003fe6 call  0x00007cda 
+ 00018673  0x00003fe7 fetch  0x00000008 , 0x00000923 
+ 00018674  0x00003fe8 ncall  0x000048fd , 0x00000034 
+ 00018675  0x00003fe9 fetch  0x00000008 , 0x00000923 
+ 00018676  0x00003fea call  0x00004901 , 0x00000034 
+ 00018677  0x00003feb fetch  0x00000008 , 0x00000923 
+ 00018678  0x00003fec store  0x00000008 , 0x00004649 
+ 00018679  0x00003fed fetcht  0x00000008 , 0x00004651 
+ 00018680  0x00003fee isub  0x00000002 , 0x0000003e 
+ 00018681  0x00003fef ncall  0x00004847 , 0x00000005 
+ 00018682  0x00003ff0 fetch  0x00000008 , 0x00004649 
+ 00018683  0x00003ff1 store  0x00000008 , 0x00004651 
+ 00018684  0x00003ff2 branch  0x000033be 
+ 00018685  0x00003ff5 jam  0x00000001 , 0x00004665 
+ 00018686  0x00003ff6 setarg  0x00000180 
+ 00018687  0x00003ff7 arg  0x0000000e , 0x00000007 
+ 00018688  0x00003ff8 branch  0x00007ce1 
+ 00018689  0x00003ffb jam  0x00000000 , 0x00004665 
+ 00018690  0x00003ffc setarg  0x00000000 
+ 00018691  0x00003ffd arg  0x0000000e , 0x00000007 
+ 00018692  0x00003ffe branch  0x00007ce1 
+ 00018693  0x00004001 arg  0x00000933 , 0x00000005 
+ 00018694  0x00004002 arg  0x000045eb , 0x00000006 
+ 00018695  0x00004003 arg  0x00000003 , 0x00000039 
+ 00018696  0x00004004 call  0x00007cda 
+ 00018697  0x00004005 fetch  0x00000002 , 0x00000934 
+ 00018698  0x00004006 ncall  0x00004915 , 0x00000034 
+ 00018699  0x00004007 fetch  0x00000002 , 0x00000934 
+ 00018700  0x00004008 call  0x00004919 , 0x00000034 
+ 00018701  0x00004009 fetch  0x00000003 , 0x00000933 
+ 00018702  0x0000400a store  0x00000003 , 0x00004659 
+ 00018703  0x0000400b fetcht  0x00000003 , 0x0000465c 
+ 00018704  0x0000400c isub  0x00000002 , 0x0000003e 
+ 00018705  0x0000400d ncall  0x00004865 , 0x00000005 
+ 00018706  0x0000400e fetch  0x00000003 , 0x00004659 
+ 00018707  0x0000400f store  0x00000003 , 0x0000465c 
+ 00018708  0x00004010 branch  0x000033be 
+ 00018709  0x00004013 jam  0x00000001 , 0x00004666 
+ 00018710  0x00004014 setarg  0x00000180 
+ 00018711  0x00004015 arg  0x0000000c , 0x00000007 
+ 00018712  0x00004016 branch  0x00007ce1 
+ 00018713  0x00004019 jam  0x00000000 , 0x00004666 
+ 00018714  0x0000401a setarg  0x00000000 
+ 00018715  0x0000401b arg  0x0000000c , 0x00000007 
+ 00018716  0x0000401c branch  0x00007ce1 
+ 00018717  0x0000401f arg  0x00000943 , 0x00000005 
+ 00018718  0x00004020 arg  0x000045eb , 0x00000006 
+ 00018719  0x00004021 arg  0x00000002 , 0x00000039 
+ 00018720  0x00004022 call  0x00007cda 
+ 00018721  0x00004023 fetch  0x00000002 , 0x00000943 
+ 00018722  0x00004024 ncall  0x0000492d , 0x00000034 
+ 00018723  0x00004025 fetch  0x00000002 , 0x00000943 
+ 00018724  0x00004026 call  0x00004931 , 0x00000034 
+ 00018725  0x00004027 fetch  0x00000002 , 0x00000943 
+ 00018726  0x00004028 store  0x00000002 , 0x0000465f 
+ 00018727  0x00004029 fetcht  0x00000002 , 0x00004662 
+ 00018728  0x0000402a isub  0x00000002 , 0x0000003e 
+ 00018729  0x0000402b ncall  0x00004935 , 0x00000005 
+ 00018730  0x0000402c fetch  0x00000002 , 0x0000465f 
+ 00018731  0x0000402d store  0x00000002 , 0x00004662 
+ 00018732  0x0000402e branch  0x000033be 
+ 00018733  0x00004031 jam  0x00000001 , 0x00004667 
+ 00018734  0x00004032 setarg  0x00000180 
+ 00018735  0x00004033 arg  0x0000000a , 0x00000007 
+ 00018736  0x00004034 branch  0x00007ce1 
+ 00018737  0x00004036 jam  0x00000000 , 0x00004667 
+ 00018738  0x00004037 setarg  0x00000000 
+ 00018739  0x00004038 arg  0x0000000a , 0x00000007 
+ 00018740  0x00004039 branch  0x00007ce1 
+ 00018741  0x0000403c jam  0x00000022 , 0x0000090c 
+ 00018742  0x0000403d branch  0x00004837 
+ 00018743  0x00004041 fetch  0x00000001 , 0x000043cb 
+ 00018744  0x00004042 rtnne  0x00000004 
+ 00018745  0x00004043 fetch  0x00000001 , 0x00004648 
+ 00018746  0x00004044 rtneq  0x0000005a 
+ 00018747  0x00004046 jam  0x00000001 , 0x00004692 
+ 00018748  0x00004047 rtn 
+ 00018749  0x0000404b fetch  0x00000001 , 0x000043cb 
+ 00018750  0x0000404c rtnne  0x00000004 
+ 00018751  0x0000404d fetch  0x00000001 , 0x00004692 
+ 00018752  0x0000404e rtn  0x00000034 
+ 00018753  0x0000404f jam  0x00000000 , 0x00000678 
+ 00018754  0x00004051 jam  0x0000005a , 0x00004648 
+ 00018755  0x00004052 call  0x000047f4 
+ 00018756  0x00004053 call  0x000047ef 
+ 00018757  0x00004054 fetch  0x00000001 , 0x00000678 
+ 00018758  0x00004055 increase  0x00000001 , 0x0000003f 
+ 00018759  0x00004056 store  0x00000001 , 0x00000678 
+ 00018760  0x00004057 beq  0x000000ff , 0x00006ca3 
+ 00018761  0x00004058 fetch  0x00000001 , 0x00004648 
+ 00018762  0x00004059 bne  0x0000005a , 0x00004942 
+ 00018763  0x0000405a branch  0x00006ca3 
+ 00018764  0x00004067 fetch  0x00000001 , 0x000043cb 
+ 00018765  0x00004068 rtnne  0x0000000f 
+ 00018766  0x00004069 call  0x000054ac 
+ 00018767  0x0000406a nbranch  0x00002002 , 0x00000028 
+ 00018768  0x0000406b fetch  0x00000001 , 0x00004846 
+ 00018769  0x0000406c branch  0x00002002 , 0x00000034 
+ 00018770  0x0000406d fetch  0x00000001 , 0x00004655 
+ 00018771  0x0000406e rtneq  0x000000ff 
+ 00018772  0x0000406f copy  0x0000003f , 0x00000007 
+ 00018773  0x00004070 fetch  0x00000004 , 0x0000069d 
+ 00018774  0x00004071 qisolate0  0x0000003f 
+ 00018775  0x00004072 call  0x00004e45 , 0x00000001 
+ 00018776  0x00004073 branch  0x00002003 
+ 00018777  0x00004076 call  0x00007396 
+ 00018778  0x00004077 call  0x000049a1 
+ 00018779  0x00004079 call  0x000049c8 
+ 00018780  0x0000407a call  0x000049ea 
+ 00018781  0x0000407b rtn  0x0000002b 
+ 00018782  0x0000407c call  0x00004966 
+ 00018783  0x0000407d call  0x00004a7a 
+ 00018784  0x0000407e fetch  0x00000001 , 0x00004663 
+ 00018785  0x0000407f rtnbit1  0x00000007 
+ 00018786  0x00004081 fetch  0x00000002 , 0x000044e9 
+ 00018787  0x00004082 bbit1  0x0000000c , 0x00004b95 
+ 00018788  0x00004083 call  0x00005eb6 
+ 00018789  0x00004084 branch  0x00004bcf 
+ 00018790  0x00004088 fetch  0x00000008 , 0x00004713 
+ 00018791  0x00004089 rtnbit0  0x0000000d 
+ 00018792  0x0000408a setarg  0x0000496c 
+ 00018793  0x0000408b store  0x00000002 , 0x00000859 
+ 00018794  0x0000408c jam  0x000000a5 , 0x00004664 
+ 00018795  0x0000408d branch  0x0000498e 
+ 00018796  0x00004090 call  0x0000496f 
+ 00018797  0x00004091 call  0x00004974 
+ 00018798  0x00004092 branch  0x00004984 
+ 00018799  0x00004095 jam  0x00000000 , 0x00004665 
+ 00018800  0x00004096 fetch  0x00000008 , 0x00004713 
+ 00018801  0x00004097 rtnbit0  0x00000016 
+ 00018802  0x00004098 jam  0x0000005a , 0x00004665 
+ 00018803  0x00004099 rtn 
+ 00018804  0x0000409c fetch  0x00000008 , 0x00004713 
+ 00018805  0x0000409d bbit1  0x0000001d , 0x0000497b 
+ 00018806  0x0000409e bbit1  0x0000001e , 0x0000497e 
+ 00018807  0x0000409f bbit1  0x0000001f , 0x00004981 
+ 00018808  0x000040a0 jam  0x00000019 , 0x00004662 
+ 00018809  0x000040a1 jam  0x00000008 , 0x0000085b 
+ 00018810  0x000040a2 rtn 
+ 00018811  0x000040a4 jam  0x0000000c , 0x00004662 
+ 00018812  0x000040a5 jam  0x00000004 , 0x0000085b 
+ 00018813  0x000040a6 rtn 
+ 00018814  0x000040a8 jam  0x00000006 , 0x00004662 
+ 00018815  0x000040a9 jam  0x00000002 , 0x0000085b 
+ 00018816  0x000040aa rtn 
+ 00018817  0x000040ac jam  0x00000003 , 0x00004662 
+ 00018818  0x000040ad jam  0x00000001 , 0x0000085b 
+ 00018819  0x000040ae rtn 
+ 00018820  0x000040b1 call  0x00007966 
+ 00018821  0x000040b2 call  0x00004987 
+ 00018822  0x000040b3 branch  0x0000498c 
+ 00018823  0x000040b6 fetch  0x00000001 , 0x0000085c 
+ 00018824  0x000040b7 rtn  0x00000034 
+ 00018825  0x000040b8 fetch  0x00000001 , 0x00004665 
+ 00018826  0x000040b9 beq  0x0000005a , 0x0000480c 
+ 00018827  0x000040ba branch  0x00004809 
+ 00018828  0x000040bd fetch  0x00000001 , 0x00004665 
+ 00018829  0x000040be branch  0x0000480f 
+ 00018830  0x000040c3 bpatch  0x00000041 , 0x00004008 
+ 00018831  0x000040c4 fetcht  0x00000001 , 0x0000086c 
+ 00018832  0x000040c5 call  0x00006ee6 
+ 00018833  0x000040c6 branch  0x00004993 , 0x00000001 
+ 00018834  0x000040c7 branch  0x0000499a 
+ 00018835  0x000040cb fetch  0x00000001 , 0x00004664 
+ 00018836  0x000040cc rtneq  0x000000a5 
+ 00018837  0x000040cd jam  0x000000a5 , 0x00004664 
+ 00018838  0x000040ce jam  0x00000000 , 0x0000090e 
+ 00018839  0x000040cf jam  0x00000000 , 0x00000709 
+ 00018840  0x000040d0 jam  0x00000000 , 0x00000900 
+ 00018841  0x000040d1 branch  0x00004962 
+ 00018842  0x000040d5 fetch  0x00000001 , 0x00004664 
+ 00018843  0x000040d6 rtneq  0x0000005a 
+ 00018844  0x000040d7 jam  0x0000005a , 0x00004664 
+ 00018845  0x000040d8 call  0x00006018 
+ 00018846  0x000040d9 call  0x00005aaa 
+ 00018847  0x000040da call  0x00004f70 
+ 00018848  0x000040db branch  0x00007912 
+ 00018849  0x000040e0 rtn  0x0000002b 
+ 00018850  0x000040e2 call  0x000035f0 
+ 00018851  0x000040e3 call  0x0000325b 
+ 00018852  0x000040e5 call  0x000049af 
+ 00018853  0x000040e6 fetcht  0x00000001 , 0x00004865 
+ 00018854  0x000040e7 call  0x00006ef3 
+ 00018855  0x000040e9 call  0x00004b6d 
+ 00018856  0x000040ea call  0x00006177 
+ 00018857  0x000040eb call  0x00002a41 
+ 00018858  0x000040ed fetch  0x00000008 , 0x00004713 
+ 00018859  0x000040ee bbit1  0x00000014 , 0x000049fd 
+ 00018860  0x000040ef bbit1  0x00000013 , 0x00005d60 
+ 00018861  0x000040f0 bbit1  0x00000012 , 0x00005d6e 
+ 00018862  0x000040f1 rtn 
+ 00018863  0x000040f8 call  0x0000543b 
+ 00018864  0x000040fa jam  0x00000000 , 0x000048eb 
+ 00018865  0x000040fb setarg  0x00230170 
+ 00018866  0x000040fc store  0x00000003 , 0x0000462d 
+ 00018867  0x000040fd setarg  0x00015301 
+ 00018868  0x000040fe istore  0x00000003 , 0x00000005 
+ 00018869  0x000040ff arg  0x000047a0 , 0x00000005 
+ 00018870  0x00004100 arg  0x00000014 , 0x00000039 
+ 00018871  0x00004101 call  0x00007ca1 
+ 00018872  0x00004103 fetch  0x00000001 , 0x0000426b 
+ 00018873  0x00004104 sub  0x0000003f , 0x0000000c , 0x0000003e 
+ 00018874  0x00004105 nbranch  0x000049c6 , 0x00000002 
+ 00018875  0x00004106 setarg  0x0006ff06 
+ 00018876  0x00004107 store  0x00000003 , 0x000047a0 
+ 00018877  0x00004108 setarg  0x00000300 
+ 00018878  0x00004109 istore  0x00000003 , 0x00000005 
+ 00018879  0x0000410a setarg  0x00000080 
+ 00018880  0x0000410b istore  0x00000001 , 0x00000005 
+ 00018881  0x0000410d fetch  0x00000001 , 0x0000426b 
+ 00018882  0x0000410e increase  0x00000001 , 0x0000003f 
+ 00018883  0x0000410f copy  0x0000003f , 0x00000039 
+ 00018884  0x00004110 arg  0x00004369 , 0x00000006 
+ 00018885  0x00004111 branch  0x00007cda 
+ 00018886  0x00004114 arg  0x000047a0 , 0x00000005 
+ 00018887  0x00004115 branch  0x000049c1 
+ 00018888  0x0000411b fetcht  0x00000001 , 0x00004864 
+ 00018889  0x0000411c call  0x00006f0f 
+ 00018890  0x0000411d fetcht  0x00000001 , 0x00004863 
+ 00018891  0x0000411e call  0x00006f0f 
+ 00018892  0x0000411f fetcht  0x00000001 , 0x00004865 
+ 00018893  0x00004120 call  0x00006f0f 
+ 00018894  0x00004122 setarg  0x0000486e 
+ 00018895  0x00004123 store  0x00000002 , 0x00004896 
+ 00018896  0x00004125 setarg  0x00004876 
+ 00018897  0x00004126 store  0x00000002 , 0x00004898 
+ 00018898  0x00004128 setarg  0x0000488a 
+ 00018899  0x00004129 store  0x00000002 , 0x0000489a 
+ 00018900  0x0000412b fetch  0x00000002 , 0x00004896 
+ 00018901  0x0000412c copy  0x0000003f , 0x00000012 
+ 00018902  0x0000412d arg  0x00000008 , 0x00000039 
+ 00018903  0x00004130 ifetcht  0x00000001 , 0x00000012 
+ 00018904  0x00004131 sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00018905  0x00004132 ncall  0x000049e7 , 0x00000005 
+ 00018906  0x00004133 increase  0x00000001 , 0x00000012 
+ 00018907  0x00004134 loop  0x000049d7 
+ 00018908  0x00004135 call  0x000023fd 
+ 00018909  0x00004136 fetch  0x00000002 , 0x00004898 
+ 00018910  0x00004137 copy  0x0000003f , 0x00000012 
+ 00018911  0x00004138 copy  0x0000003f , 0x00000013 
+ 00018912  0x00004139 arg  0x0000000b , 0x00000039 
+ 00018913  0x0000413c ifetcht  0x00000001 , 0x00000012 
+ 00018914  0x0000413d isolate1  0x00000007 , 0x00000002 
+ 00018915  0x0000413e ncall  0x00006f0f , 0x00000001 
+ 00018916  0x0000413f increase  0x00000001 , 0x00000012 
+ 00018917  0x00004140 loop  0x000049e1 
+ 00018918  0x00004141 rtn 
+ 00018919  0x00004144 call  0x00006f0f 
+ 00018920  0x00004145 ifetcht  0x00000001 , 0x00000012 
+ 00018921  0x00004146 branch  0x00006ec6 
+ 00018922  0x0000414b fetch  0x00000001 , 0x00004666 
+ 00018923  0x0000414c beq  0x00000001 , 0x000049f1 
+ 00018924  0x0000414d setarg  0x005d4800 
+ 00018925  0x0000414e store  0x00000004 , 0x00004613 
+ 00018926  0x0000414f fetch  0x00000001 , 0x0000440c 
+ 00018927  0x00004150 rtnbit0  0x00000000 
+ 00018928  0x00004151 branch  0x00005fe4 
+ 00018929  0x00004153 jam  0x0000000c , 0x0000496b 
+ 00018930  0x00004154 fetch  0x00000001 , 0x0000440c 
+ 00018931  0x00004155 rtnbit0  0x00000000 
+ 00018932  0x00004156 jam  0x00000010 , 0x0000496b 
+ 00018933  0x00004157 fetch  0x00000001 , 0x0000477e 
+ 00018934  0x00004158 branch  0x00005c01 , 0x00000034 
+ 00018935  0x00004159 rtn 
+ 00018936  0x0000415d fetch  0x00000002 , 0x000049df 
+ 00018937  0x0000415e arg  0x00000528 , 0x00000002 
+ 00018938  0x0000415f isub  0x00000002 , 0x0000003e 
+ 00018939  0x00004160 nrtn  0x00000002 
+ 00018940  0x00004161 branch  0x0000235a 
+ 00018941  0x00004164 bpatch  0x00000042 , 0x00004008 
+ 00018942  0x00004165 fetch  0x00000001 , 0x00004666 
+ 00018943  0x00004166 beq  0x00000000 , 0x00004a02 
+ 00018944  0x00004167 beq  0x00000001 , 0x00004a0c 
+ 00018945  0x00004168 rtn 
+ 00018946  0x0000416b arg  0x00000050 , 0x00000018 
+ 00018947  0x0000416c setarg  0x00000400 
+ 00018948  0x0000416d idiv  0x00000018 
+ 00018949  0x0000416e call  0x00007d62 
+ 00018950  0x0000416f quotient  0x0000003f 
+ 00018951  0x00004170 store  0x00000002 , 0x00000670 
+ 00018952  0x00004171 arg  0x00001fcc , 0x0000003f 
+ 00018953  0x00004172 arg  0x00000004 , 0x00000002 
+ 00018954  0x00004173 arg  0x00000004 , 0x0000002b 
+ 00018955  0x00004174 branch  0x00004a16 
+ 00018956  0x00004176 arg  0x00000118 , 0x00000018 
+ 00018957  0x00004177 setarg  0x00000400 
+ 00018958  0x00004178 idiv  0x00000018 
+ 00018959  0x00004179 call  0x00007d62 
+ 00018960  0x0000417a quotient  0x0000003f 
+ 00018961  0x0000417b store  0x00000002 , 0x00000670 
+ 00018962  0x0000417c arg  0x00001fc2 , 0x0000003f 
+ 00018963  0x0000417d arg  0x0000000e , 0x00000002 
+ 00018964  0x0000417e arg  0x0000000e , 0x0000002b 
+ 00018965  0x0000417f branch  0x00004a16 
+ 00018966  0x00004181 storet  0x00000001 , 0x00000678 
+ 00018967  0x00004182 arg  0x000049c7 , 0x00000011 
+ 00018968  0x00004183 arg  0x00000000 , 0x00000013 
+ 00018969  0x00004185 copy  0x0000003f , 0x00000012 
+ 00018970  0x00004186 fetchr  0x00000039 , 0x00000001 , 0x00000678 
+ 00018971  0x00004187 call  0x00006b74 
+ 00018972  0x00004188 fetch  0x00000008 , 0x000049c7 
+ 00018973  0x00004189 fetcht  0x00000008 , 0x000049cf 
+ 00018974  0x0000418a ior  0x00000002 , 0x0000003f 
+ 00018975  0x0000418b fetcht  0x00000008 , 0x000049d7 
+ 00018976  0x0000418c ior  0x00000002 , 0x0000003f 
+ 00018977  0x0000418d branch  0x00004a28 , 0x00000034 
+ 00018978  0x0000418e increase  0x00000001 , 0x00000013 
+ 00018979  0x0000418f fetch  0x00000002 , 0x00000670 
+ 00018980  0x00004190 isub  0x00000013 , 0x0000003e 
+ 00018981  0x00004192 copy  0x00000012 , 0x0000003f 
+ 00018982  0x00004193 isub  0x00000018 , 0x0000003f 
+ 00018983  0x00004194 branch  0x00004a19 
+ 00018984  0x00004197 sub  0x00000013 , 0x00000000 , 0x0000003e 
+ 00018985  0x00004198 branch  0x00004a38 , 0x00000005 
+ 00018986  0x0000419a copy  0x00000012 , 0x0000003f 
+ 00018987  0x0000419b iadd  0x00000018 , 0x0000003f 
+ 00018988  0x0000419d isub  0x0000002b , 0x0000003f 
+ 00018989  0x0000419e copy  0x0000003f , 0x00000012 
+ 00018990  0x0000419f fetchr  0x00000039 , 0x00000001 , 0x00000678 
+ 00018991  0x000041a0 call  0x00006b74 
+ 00018992  0x000041a1 fetch  0x00000008 , 0x000049c7 
+ 00018993  0x000041a2 fetcht  0x00000008 , 0x000049cf 
+ 00018994  0x000041a3 ior  0x00000002 , 0x0000003f 
+ 00018995  0x000041a4 fetcht  0x00000008 , 0x000049d7 
+ 00018996  0x000041a5 ior  0x00000002 , 0x0000003f 
+ 00018997  0x000041a6 branch  0x00004a3a , 0x00000034 
+ 00018998  0x000041a7 copy  0x00000012 , 0x0000003f 
+ 00018999  0x000041a8 branch  0x00004a2c 
+ 00019000  0x000041aa storer  0x0000002b , 0x00000001 , 0x000049df 
+ 00019001  0x000041ab rtn 
+ 00019002  0x000041ad bpatch  0x00000043 , 0x00004008 
+ 00019003  0x000041ae setarg  0x00001fd0 
+ 00019004  0x000041af isub  0x00000012 , 0x0000003f 
+ 00019005  0x000041b0 store  0x00000002 , 0x000049df 
+ 00019006  0x000041b1 copy  0x00000012 , 0x0000003f 
+ 00019007  0x000041b2 iadd  0x0000002b , 0x00000012 
+ 00019008  0x000041b3 fetchr  0x00000039 , 0x00000001 , 0x00000678 
+ 00019009  0x000041b4 arg  0x000049c7 , 0x00000011 
+ 00019010  0x000041b5 call  0x00006b74 
+ 00019011  0x000041b6 fetch  0x00000001 , 0x00004666 
+ 00019012  0x000041b7 beq  0x00000000 , 0x00004a47 
+ 00019013  0x000041b8 beq  0x00000001 , 0x00004a4a 
+ 00019014  0x000041b9 rtn 
+ 00019015  0x000041bc fetch  0x00000006 , 0x000049c7 
+ 00019016  0x000041bd store  0x00000004 , 0x00004691 
+ 00019017  0x000041be branch  0x00004a76 
+ 00019018  0x000041c1 fetch  0x00000001 , 0x000049c7 
+ 00019019  0x000041c2 sub  0x0000003f , 0x00000003 , 0x0000003e 
+ 00019020  0x000041c3 ncall  0x00007dca , 0x00000002 
+ 00019021  0x000041c4 store  0x00000001 , 0x000049c6 
+ 00019022  0x000041c5 fetch  0x00000001 , 0x000049c8 
+ 00019023  0x000041c6 store  0x00000001 , 0x00004667 
+ 00019024  0x000041c7 fetch  0x00000006 , 0x000049c9 
+ 00019025  0x000041c8 store  0x00000006 , 0x00004668 
+ 00019026  0x000041c9 fetch  0x00000006 , 0x000049cf 
+ 00019027  0x000041ca store  0x00000006 , 0x0000466e 
+ 00019028  0x000041cb branch  0x00005c6f 
+ 00019029  0x000041cf branch  0x0000235a 
+ 00019030  0x000041d3 bpatch  0x00000044 , 0x00004008 
+ 00019031  0x000041d4 fetch  0x00000008 , 0x00004713 
+ 00019032  0x000041d5 bbit1  0x00000014 , 0x00004a5c 
+ 00019033  0x000041d6 bbit1  0x00000013 , 0x00005cb1 
+ 00019034  0x000041d7 bbit1  0x00000012 , 0x00005cb9 
+ 00019035  0x000041d8 rtn 
+ 00019036  0x000041db rtn 
+ 00019037  0x000041dc fetch  0x00000001 , 0x00004666 
+ 00019038  0x000041dd beq  0x00000000 , 0x00004a61 
+ 00019039  0x000041de beq  0x00000001 , 0x00004a6b 
+ 00019040  0x000041df rtn 
+ 00019041  0x000041e2 fetcht  0x00000002 , 0x000049df 
+ 00019042  0x000041e3 setarg  0x00001fd0 
+ 00019043  0x000041e4 isub  0x00000002 , 0x00000012 
+ 00019044  0x000041e5 arg  0x00004691 , 0x00000011 
+ 00019045  0x000041e6 arg  0x00000004 , 0x00000039 
+ 00019046  0x000041e7 call  0x00006b45 
+ 00019047  0x000041e8 fetcht  0x00000002 , 0x000049df 
+ 00019048  0x000041e9 increase  0x00000004 , 0x00000002 
+ 00019049  0x000041ea storet  0x00000002 , 0x000049df 
+ 00019050  0x000041eb rtn 
+ 00019051  0x000041ee fetcht  0x00000002 , 0x000049df 
+ 00019052  0x000041ef setarg  0x00001fd0 
+ 00019053  0x000041f0 isub  0x00000002 , 0x00000012 
+ 00019054  0x000041f3 add  0x00000012 , 0x00000001 , 0x00000012 
+ 00019055  0x000041f4 arg  0x00004668 , 0x00000011 
+ 00019056  0x000041f5 arg  0x00000006 , 0x00000039 
+ 00019057  0x000041f6 call  0x00006b45 
+ 00019058  0x000041f8 add  0x00000012 , 0x00000007 , 0x00000012 
+ 00019059  0x000041f9 arg  0x0000466e , 0x00000011 
+ 00019060  0x000041fa arg  0x00000006 , 0x00000039 
+ 00019061  0x000041fb branch  0x00006b45 
+ 00019062  0x000041fe fetch  0x00000004 , 0x00004691 
+ 00019063  0x000041ff store  0x00000004 , 0x000045e8 
+ 00019064  0x00004200 store  0x00000004 , 0x0000458f 
+ 00019065  0x00004201 rtn 
+ 00019066  0x00004205 bpatch  0x00000045 , 0x00004008 
+ 00019067  0x00004206 setarg  0x00006109 
+ 00019068  0x00004207 store  0x00000002 , 0x000043e9 
+ 00019069  0x00004208 setarg  0x00004fe5 
+ 00019070  0x00004209 store  0x00000002 , 0x000045f2 
+ 00019071  0x0000420a setarg  0x00004ff8 
+ 00019072  0x0000420b store  0x00000002 , 0x000045f4 
+ 00019073  0x0000420c setarg  0x00004f41 
+ 00019074  0x0000420d store  0x00000002 , 0x000045f6 
+ 00019075  0x0000420e setarg  0x00004be6 
+ 00019076  0x0000420f store  0x00000002 , 0x000043d9 
+ 00019077  0x00004211 setarg  0x00004f5d 
+ 00019078  0x00004212 store  0x00000002 , 0x000043d7 
+ 00019079  0x00004214 setarg  0x00004a9a 
+ 00019080  0x00004215 store  0x00000002 , 0x000043dd 
+ 00019081  0x00004216 setarg  0x00004bcc 
+ 00019082  0x00004217 store  0x00000002 , 0x000043db 
+ 00019083  0x00004218 setarg  0x00004f62 
+ 00019084  0x00004219 store  0x00000002 , 0x000043d5 
+ 00019085  0x0000421a setarg  0x00005b08 
+ 00019086  0x0000421b store  0x00000002 , 0x000043df 
+ 00019087  0x0000421c setarg  0x00004b19 
+ 00019088  0x0000421d store  0x00000002 , 0x000043e3 
+ 00019089  0x0000421e setarg  0x000055fa 
+ 00019090  0x0000421f store  0x00000002 , 0x000043e7 
+ 00019091  0x00004220 setarg  0x000054c5 
+ 00019092  0x00004221 store  0x00000002 , 0x000043d3 
+ 00019093  0x00004222 setarg  0x00006221 
+ 00019094  0x00004223 store  0x00000002 , 0x000043e1 
+ 00019095  0x00004224 setarg  0x00006228 
+ 00019096  0x00004225 store  0x00000002 , 0x000043e5 
+ 00019097  0x00004226 rtn 
+ 00019098  0x0000422b bpatch  0x00000046 , 0x00004008 
+ 00019099  0x0000422c copy  0x00000013 , 0x0000003f 
+ 00019100  0x0000422e beq  0x00000032 , 0x00004acb 
+ 00019101  0x0000422f beq  0x00000044 , 0x00004ad3 
+ 00019102  0x00004230 beq  0x00000040 , 0x00004add 
+ 00019103  0x00004231 beq  0x00000015 , 0x00004ab8 
+ 00019104  0x00004233 beq  0x00000014 , 0x00004aaa 
+ 00019105  0x00004234 beq  0x00000010 , 0x00004b90 
+ 00019106  0x00004235 beq  0x00000031 , 0x00005aed 
+ 00019107  0x00004236 beq  0x00000029 , 0x00005aef 
+ 00019108  0x00004238 beq  0x0000003e , 0x00004329 
+ 00019109  0x00004239 beq  0x00000044 , 0x00005b10 
+ 00019110  0x0000423b beq  0x00000039 , 0x00004ae2 
+ 00019111  0x0000423c beq  0x0000003c , 0x00004ae5 
+ 00019112  0x0000423d beq  0x0000003a , 0x00004afe 
+ 00019113  0x00004240 rtn 
+ 00019114  0x00004247 jam  0x00000000 , 0x0000477d 
+ 00019115  0x00004249 jam  0x00000001 , 0x00004794 
+ 00019116  0x0000424a call  0x00006042 
+ 00019117  0x0000424b fetch  0x00000001 , 0x00004795 
+ 00019118  0x0000424c nbranch  0x00004ab0 , 0x00000034 
+ 00019119  0x0000424d jam  0x00000014 , 0x00004796 
+ 00019120  0x0000424f fetch  0x00000002 , 0x000043f1 
+ 00019121  0x00004250 set0  0x00000000 , 0x0000003f 
+ 00019122  0x00004251 store  0x00000002 , 0x000043f1 
+ 00019123  0x00004252 jam  0x00000000 , 0x00004845 
+ 00019124  0x00004253 fetch  0x00000002 , 0x000047be 
+ 00019125  0x00004254 store  0x00000002 , 0x000047c0 
+ 00019126  0x00004255 call  0x00005c0b 
+ 00019127  0x00004256 branch  0x00004bbd 
+ 00019128  0x0000425a setarg  0x00000000 
+ 00019129  0x0000425b store  0x00000002 , 0x000047c0 
+ 00019130  0x0000425c store  0x00000001 , 0x00004860 
+ 00019131  0x0000425d store  0x00000001 , 0x00004861 
+ 00019132  0x0000425e store  0x00000001 , 0x00004794 
+ 00019133  0x00004260 jam  0x00000000 , 0x000047c2 
+ 00019134  0x00004261 jam  0x00000000 , 0x00004956 
+ 00019135  0x00004262 call  0x000029cb 
+ 00019136  0x00004263 branch  0x00004ac1 
+ 00019137  0x00004265 call  0x00005b7b 
+ 00019138  0x00004266 fetch  0x00000002 , 0x000043ef 
+ 00019139  0x00004267 bbit1  0x00000007 , 0x00004ac6 
+ 00019140  0x00004268 bbit1  0x00000000 , 0x000042fc 
+ 00019141  0x00004269 branch  0x00004b95 
+ 00019142  0x0000426b call  0x00005b21 
+ 00019143  0x0000426c fetch  0x00000002 , 0x000043ef 
+ 00019144  0x0000426d bbit1  0x00000000 , 0x000042fc 
+ 00019145  0x0000426e call  0x00007d7c 
+ 00019146  0x0000426f branch  0x00004f6c 
+ 00019147  0x00004273 fetch  0x00000001 , 0x00004795 
+ 00019148  0x00004274 beq  0x00000001 , 0x00004ad0 
+ 00019149  0x00004275 jam  0x00000014 , 0x00004844 
+ 00019150  0x00004276 jam  0x00000005 , 0x00004862 
+ 00019151  0x00004277 branch  0x00005af6 
+ 00019152  0x00004279 call  0x00005aef 
+ 00019153  0x0000427a jam  0x00000005 , 0x00004844 
+ 00019154  0x0000427b branch  0x00005af6 
+ 00019155  0x0000427e fetch  0x00000001 , 0x000001a2 
+ 00019156  0x0000427f sub  0x0000003f , 0x0000000c , 0x0000003e 
+ 00019157  0x00004280 nbranch  0x00005b06 , 0x00000002 
+ 00019158  0x00004281 fetch  0x00000001 , 0x000001a4 
+ 00019159  0x00004282 fetcht  0x00000001 , 0x0000496b 
+ 00019160  0x00004283 isub  0x00000002 , 0x0000003e 
+ 00019161  0x00004284 branch  0x00005b1d , 0x00000002 
+ 00019162  0x00004285 fetch  0x00000001 , 0x000001a4 
+ 00019163  0x00004286 store  0x00000001 , 0x000040c0 
+ 00019164  0x00004287 branch  0x00005b1f 
+ 00019165  0x0000428a fetch  0x00000001 , 0x00004860 
+ 00019166  0x0000428b nrtn  0x00000034 
+ 00019167  0x0000428c jam  0x00000001 , 0x00004860 
+ 00019168  0x0000428d jam  0x0000001e , 0x00004861 
+ 00019169  0x0000428e rtn 
+ 00019170  0x00004291 call  0x00004af9 
+ 00019171  0x00004292 call  0x00005c0b 
+ 00019172  0x00004293 branch  0x00006086 
+ 00019173  0x00004296 call  0x00004af9 
+ 00019174  0x00004297 fetch  0x00000004 , 0x0000458f 
+ 00019175  0x00004298 store  0x00000004 , 0x000045e8 
+ 00019176  0x00004299 store  0x00000004 , 0x00004691 
+ 00019177  0x0000429a call  0x0000355a 
+ 00019178  0x0000429b call  0x0000618e 
+ 00019179  0x0000429c call  0x00005c0b 
+ 00019180  0x0000429d branch  0x00006075 
+ 00019181  0x000042a0 jam  0x00000002 , 0x0000485f 
+ 00019182  0x000042a1 call  0x00004f3e 
+ 00019183  0x000042a2 jam  0x00000003 , 0x0000472c 
+ 00019184  0x000042a3 rtn 
+ 00019185  0x000042a6 arg  0x00000006 , 0x00000039 
+ 00019186  0x000042a7 arg  0x00004858 , 0x00000006 
+ 00019187  0x000042a9 ifetch  0x00000001 , 0x00000006 
+ 00019188  0x000042aa beq  0x00000053 , 0x00004af9 
+ 00019189  0x000042ab beq  0x00000039 , 0x00004af9 
+ 00019190  0x000042ac beq  0x00000047 , 0x00004af9 
+ 00019191  0x000042ad loop  0x00004af3 
+ 00019192  0x000042ae rtn 
+ 00019193  0x000042b1 jam  0x00000003 , 0x000049ab 
+ 00019194  0x000042b2 jam  0x00000001 , 0x000048f4 
+ 00019195  0x000042b3 rtn 
+ 00019196  0x000042b6 jam  0x00000001 , 0x000049a9 
+ 00019197  0x000042b7 rtn 
+ 00019198  0x000042bb fetch  0x00000001 , 0x00004600 
+ 00019199  0x000042bc nbranch  0x00004b11 , 0x00000034 
+ 00019200  0x000042bd fetch  0x00000001 , 0x000045e2 
+ 00019201  0x000042be beq  0x00000002 , 0x00004b0a 
+ 00019202  0x000042bf beq  0x00000003 , 0x00004b04 
+ 00019203  0x000042c0 branch  0x00004b04 
+ 00019204  0x000042c3 call  0x00006018 
+ 00019205  0x000042c4 fetch  0x00000001 , 0x0000477f 
+ 00019206  0x000042c5 nbranch  0x00005f1b , 0x00000034 
+ 00019207  0x000042c6 fetch  0x00000001 , 0x00004666 
+ 00019208  0x000042c7 beq  0x00000000 , 0x00004f6c 
+ 00019209  0x000042c8 rtn 
+ 00019210  0x000042cb fetch  0x00000008 , 0x00004713 
+ 00019211  0x000042cc bbit1  0x0000003e , 0x00006034 
+ 00019212  0x000042cd bbit1  0x00000030 , 0x00006034 
+ 00019213  0x000042ce bbit0  0x0000003a , 0x00006067 
+ 00019214  0x000042cf fetch  0x00000004 , 0x00004691 
+ 00019215  0x000042d0 branch  0x00004e39 , 0x00000034 
+ 00019216  0x000042d1 branch  0x00006067 
+ 00019217  0x000042d4 jam  0x00000000 , 0x00004600 
+ 00019218  0x000042d5 call  0x00003647 
+ 00019219  0x000042d6 setarg  0xffffffff 
+ 00019220  0x000042d7 store  0x00000008 , 0x000045af 
+ 00019221  0x000042d8 setarg  0x00000000 
+ 00019222  0x000042d9 store  0x00000007 , 0x00004846 
+ 00019223  0x000042da jam  0x00000001 , 0x0000473f 
+ 00019224  0x000042db branch  0x00004f9a 
+ 00019225  0x000042e1 bpatch  0x00000047 , 0x00004008 
+ 00019226  0x000042e2 call  0x0000553d 
+ 00019227  0x000042e3 call  0x00004b4f 
+ 00019228  0x000042e4 call  0x0000614d 
+ 00019229  0x000042e6 call  0x0000328e 
+ 00019230  0x000042e7 call  0x00003531 
+ 00019231  0x000042e8 call  0x00005fdd 
+ 00019232  0x000042e9 call  0x00004b62 
+ 00019233  0x000042ea call  0x00004b68 
+ 00019234  0x000042ee call  0x00004b43 
+ 00019235  0x000042f0 call  0x00004b58 
+ 00019236  0x000042f1 call  0x00005be1 
+ 00019237  0x000042f2 call  0x00004b5c 
+ 00019238  0x000042f3 call  0x00005be4 
+ 00019239  0x000042f4 call  0x00004b5f 
+ 00019240  0x000042f5 call  0x00004b55 
+ 00019241  0x000042f7 call  0x00005bfe 
+ 00019242  0x000042f8 call  0x000056b6 
+ 00019243  0x000042f9 call  0x00004b48 
+ 00019244  0x000042fa call  0x00004b72 
+ 00019245  0x000042fb call  0x00004b82 
+ 00019246  0x000042fc call  0x00004b87 
+ 00019247  0x000042fd fetch  0x00000001 , 0x00004666 
+ 00019248  0x000042fe beq  0x00000000 , 0x00004b8a 
+ 00019249  0x000042ff branch  0x00005c05 
+ 00019250  0x00004303 fetch  0x00000001 , 0x00004980 
+ 00019251  0x00004304 rtnne  0x00000001 
+ 00019252  0x00004305 arg  0x00004981 , 0x00000013 
+ 00019253  0x00004306 arg  0x00005a94 , 0x00000012 
+ 00019254  0x00004307 branch  0x000042e0 
+ 00019255  0x0000430a fetch  0x00000002 , 0x000048fa 
+ 00019256  0x0000430b fetcht  0x00000002 , 0x000049ff 
+ 00019257  0x0000430c isub  0x00000002 , 0x0000003e 
+ 00019258  0x0000430d branch  0x00004b3f , 0x00000005 
+ 00019259  0x0000430e byteswap  0x00000002 , 0x00000002 
+ 00019260  0x0000430f isub  0x00000002 , 0x0000003e 
+ 00019261  0x00004310 branch  0x00004b3f , 0x00000005 
+ 00019262  0x00004311 branch  0x00005bba 
+ 00019263  0x00004314 fetch  0x00000001 , 0x00004980 
+ 00019264  0x00004315 rtneq  0x00000001 
+ 00019265  0x00004316 jam  0x00000001 , 0x00004980 
+ 00019266  0x00004317 rtn 
+ 00019267  0x0000431b arg  0x00004790 , 0x00000013 
+ 00019268  0x0000431c arg  0x00004b46 , 0x00000012 
+ 00019269  0x0000431d branch  0x000042e7 
+ 00019270  0x00004320 call  0x00004bbd 
+ 00019271  0x00004321 branch  0x00004f6c 
+ 00019272  0x00004327 arg  0x000046f3 , 0x00000013 
+ 00019273  0x00004328 arg  0x00004b4b , 0x00000012 
+ 00019274  0x00004329 branch  0x000042e0 
+ 00019275  0x0000432c call  0x00004a56 
+ 00019276  0x0000432d fetch  0x00000001 , 0x00004793 
+ 00019277  0x0000432e nbranch  0x00005ed1 , 0x00000034 
+ 00019278  0x0000432f rtn 
+ 00019279  0x00004332 fetch  0x00000001 , 0x00004637 
+ 00019280  0x00004333 branch  0x00004b53 , 0x00000034 
+ 00019281  0x00004334 jam  0x0000003a , 0x00004631 
+ 00019282  0x00004335 rtn 
+ 00019283  0x00004337 jam  0x00000035 , 0x00004631 
+ 00019284  0x00004338 rtn 
+ 00019285  0x0000433c arg  0x00004862 , 0x00000013 
+ 00019286  0x0000433d arg  0x0000502f , 0x00000012 
+ 00019287  0x0000433e branch  0x000042e0 
+ 00019288  0x00004341 arg  0x00004845 , 0x00000013 
+ 00019289  0x00004342 arg  0x00005bd9 , 0x00000012 
+ 00019290  0x00004343 call  0x000042e0 
+ 00019291  0x00004344 branch  0x00005bd6 
+ 00019292  0x00004347 fetch  0x00000008 , 0x00004713 
+ 00019293  0x00004348 rtnbit1  0x0000003b 
+ 00019294  0x00004349 branch  0x00005bee 
+ 00019295  0x0000434c arg  0x00004861 , 0x00000013 
+ 00019296  0x0000434d arg  0x00005aef , 0x00000012 
+ 00019297  0x0000434e branch  0x000042e0 
+ 00019298  0x00004351 fetch  0x00000001 , 0x000049a9 
+ 00019299  0x00004352 rtn  0x00000034 
+ 00019300  0x00004353 jam  0x00000000 , 0x000049a9 
+ 00019301  0x00004354 jam  0x00000001 , 0x000048f4 
+ 00019302  0x00004355 call  0x00003625 
+ 00019303  0x00004356 branch  0x00004fa0 
+ 00019304  0x00004359 arg  0x000049ac , 0x00000013 
+ 00019305  0x0000435a arg  0x00004b6b , 0x00000012 
+ 00019306  0x0000435b branch  0x000042e0 
+ 00019307  0x0000435e jam  0x00000000 , 0x000049ab 
+ 00019308  0x0000435f rtn 
+ 00019309  0x00004366 call  0x000061ea 
+ 00019310  0x00004367 call  0x00004b7c 
+ 00019311  0x00004369 fetcht  0x00000001 , 0x00004868 
+ 00019312  0x0000436a branch  0x00006ef3 
+ 00019313  0x0000436c rtn 
+ 00019314  0x00004370 fetch  0x00000001 , 0x00004866 
+ 00019315  0x00004371 rtneq  0x000000ff 
+ 00019316  0x00004372 fetch  0x00000002 , 0x00004781 
+ 00019317  0x00004373 rtn  0x00000034 
+ 00019318  0x00004374 fetch  0x00000002 , 0x00004725 
+ 00019319  0x00004375 fetcht  0x00000002 , 0x00004781 
+ 00019320  0x00004376 isub  0x00000002 , 0x00000002 
+ 00019321  0x00004377 fetch  0x00000002 , 0x00004869 
+ 00019322  0x00004378 isub  0x00000002 , 0x0000003f 
+ 00019323  0x00004379 branch  0x00004b7e , 0x00000002 
+ 00019324  0x0000437b fetcht  0x00000001 , 0x00004866 
+ 00019325  0x0000437c branch  0x00006ef3 
+ 00019326  0x00004381 fetch  0x00000001 , 0x000049aa 
+ 00019327  0x00004382 bbit0  0x00000001 , 0x00004b7c 
+ 00019328  0x00004383 fetcht  0x00000001 , 0x00004866 
+ 00019329  0x00004384 branch  0x00006ef7 
+ 00019330  0x00004387 arg  0x000048ee , 0x00000013 
+ 00019331  0x00004388 arg  0x00004b85 , 0x00000012 
+ 00019332  0x00004389 branch  0x000042e7 
+ 00019333  0x0000438c jam  0x00000001 , 0x000048eb 
+ 00019334  0x0000438d branch  0x00004327 
+ 00019335  0x00004390 arg  0x000049c4 , 0x00000013 
+ 00019336  0x00004391 arg  0x00004d9e , 0x00000012 
+ 00019337  0x00004392 branch  0x000042e0 
+ 00019338  0x00004396 arg  0x00004781 , 0x00000013 
+ 00019339  0x00004397 arg  0x00004b8d , 0x00000012 
+ 00019340  0x00004398 branch  0x000042e7 
+ 00019341  0x0000439b fetch  0x00000001 , 0x00004666 
+ 00019342  0x0000439c beq  0x00000000 , 0x00004b11 
+ 00019343  0x0000439d branch  0x00005aad 
+ 00019344  0x000043a1 isolate1  0x00000026 , 0x00000000 
+ 00019345  0x000043a2 call  0x00006018 , 0x00000001 
+ 00019346  0x000043a3 call  0x00005aad 
+ 00019347  0x000043a4 call  0x00005b21 
+ 00019348  0x000043a5 branch  0x00004b95 
+ 00019349  0x000043a8 bpatch  0x00000048 , 0x00004009 
+ 00019350  0x000043a9 call  0x000061ab 
+ 00019351  0x000043aa fetch  0x00000002 , 0x000044e9 
+ 00019352  0x000043ab isolate1  0x0000000b , 0x0000003f 
+ 00019353  0x000043ac call  0x00005c3e , 0x00000001 
+ 00019354  0x000043ae setarg  0x00000000 
+ 00019355  0x000043af store  0x00000002 , 0x000047c0 
+ 00019356  0x000043b0 call  0x00004b7c 
+ 00019357  0x000043b1 jam  0x000000ff , 0x000049c6 
+ 00019358  0x000043b3 fetch  0x00000002 , 0x000044e9 
+ 00019359  0x000043b4 isolate1  0x0000000b , 0x0000003f 
+ 00019360  0x000043b5 call  0x00005c3e , 0x00000001 
+ 00019361  0x000043b6 call  0x00005aa8 
+ 00019362  0x000043b7 fetch  0x00000002 , 0x000044e9 
+ 00019363  0x000043b8 bbit1  0x0000000b , 0x00004bac 
+ 00019364  0x000043b9 fetch  0x00000008 , 0x00004713 
+ 00019365  0x000043ba bbit0  0x00000008 , 0x00004bac 
+ 00019366  0x000043bb fetcht  0x00000002 , 0x00004695 
+ 00019367  0x000043bc increase  0x00000001 , 0x00000002 
+ 00019368  0x000043bd storet  0x00000002 , 0x00004695 
+ 00019369  0x000043be storet  0x00000002 , 0x000042dc 
+ 00019370  0x000043bf random  0x0000003f 
+ 00019371  0x000043c0 store  0x00000001 , 0x000042db 
+ 00019372  0x000043c2 fetch  0x00000003 , 0x00004797 
+ 00019373  0x000043c3 store  0x00000003 , 0x000042de 
+ 00019374  0x000043c4 call  0x0000432d 
+ 00019375  0x000043c5 fetch  0x00000002 , 0x00004638 
+ 00019376  0x000043c6 store  0x00000002 , 0x00004790 
+ 00019377  0x000043c7 setarg  0x00000000 
+ 00019378  0x000043c8 store  0x00000002 , 0x00004781 
+ 00019379  0x000043c9 store  0x00000002 , 0x000047c0 
+ 00019380  0x000043ca store  0x00000001 , 0x00004845 
+ 00019381  0x000043cb store  0x00000001 , 0x00004792 
+ 00019382  0x000043cc store  0x00000001 , 0x00004956 
+ 00019383  0x000043cd arg  0x00000002 , 0x00000007 
+ 00019384  0x000043ce call  0x00005f00 
+ 00019385  0x000043cf call  0x00005ef4 
+ 00019386  0x000043d0 branch  0x00005b62 
+ 00019387  0x000043d4 jam  0x00000000 , 0x00004637 
+ 00019388  0x000043d5 branch  0x0000616e 
+ 00019389  0x000043d8 bpatch  0x00000049 , 0x00004009 
+ 00019390  0x000043d9 setarg  0x00000000 
+ 00019391  0x000043da store  0x00000002 , 0x00004790 
+ 00019392  0x000043db arg  0x00000006 , 0x00000007 
+ 00019393  0x000043dc call  0x00005f04 
+ 00019394  0x000043dd jam  0x00000000 , 0x00004792 
+ 00019395  0x000043de call  0x00005c3e 
+ 00019396  0x000043df branch  0x00004b6d 
+ 00019397  0x000043e3 bpatch  0x0000004a , 0x00004009 
+ 00019398  0x000043e4 fetch  0x00000008 , 0x00004713 
+ 00019399  0x000043e5 rtnbit0  0x00000002 
+ 00019400  0x000043e6 arg  0x00000002 , 0x00000007 
+ 00019401  0x000043e7 call  0x00005f04 
+ 00019402  0x000043e8 call  0x00005c4a 
+ 00019403  0x000043e9 branch  0x00005c48 
+ 00019404  0x000043ed bpatch  0x0000004b , 0x00004009 
+ 00019405  0x000043ee call  0x0000620e 
+ 00019406  0x000043ef branch  0x000078aa 
+ 00019407  0x000043f4 bpatch  0x0000004c , 0x00004009 
+ 00019408  0x000043f5 fetch  0x00000008 , 0x00004713 
+ 00019409  0x000043f6 bbit0  0x00000015 , 0x00004bdc 
+ 00019410  0x000043f7 call  0x00006f82 
+ 00019411  0x000043f8 call  0x00006fb0 
+ 00019412  0x000043f9 store  0x00000002 , 0x00004633 
+ 00019413  0x000043fb fetch  0x00000002 , 0x0000440a 
+ 00019414  0x000043fc isub  0x00000002 , 0x0000003e 
+ 00019415  0x000043fd branch  0x00004bcf , 0x00000002 
+ 00019416  0x000043fe arg  0x0000462d , 0x00000011 
+ 00019417  0x000043ff call  0x00005563 
+ 00019418  0x00004400 fetch  0x00000001 , 0x0000440c 
+ 00019419  0x00004401 bbit1  0x00000001 , 0x00004f6b 
+ 00019420  0x00004404 fetch  0x00000001 , 0x000049a4 
+ 00019421  0x00004405 call  0x00004e24 , 0x00000034 
+ 00019422  0x00004406 fetch  0x00000001 , 0x000049a3 
+ 00019423  0x00004407 nrtn  0x00000034 
+ 00019424  0x00004408 fetch  0x00000001 , 0x00004666 
+ 00019425  0x00004409 beq  0x00000000 , 0x0000602f 
+ 00019426  0x0000440a call  0x00005aa8 
+ 00019427  0x0000440b fetch  0x00000006 , 0x00004668 
+ 00019428  0x0000440c branch  0x00005a94 , 0x00000034 
+ 00019429  0x0000440d branch  0x000054a0 
+ 00019430  0x0000441a bpatch  0x0000004d , 0x00004009 
+ 00019431  0x0000441b call  0x00002a28 
+ 00019432  0x0000441c nrtn  0x00000034 
+ 00019433  0x0000441d fetch  0x00000001 , 0x0000478f 
+ 00019434  0x0000441e beq  0x000000ff , 0x00004bee 
+ 00019435  0x0000441f fetch  0x00000001 , 0x00004843 
+ 00019436  0x00004420 and  0x0000003f , 0x00000003 , 0x0000003f 
+ 00019437  0x00004421 rtnne  0x00000003 
+ 00019438  0x00004423 fetch  0x00000008 , 0x00004713 
+ 00019439  0x00004424 bbit1  0x00000001 , 0x00005b5b 
+ 00019440  0x00004425 bbit1  0x00000000 , 0x00005b5b 
+ 00019441  0x00004426 bbit1  0x00000005 , 0x00005b5b 
+ 00019442  0x00004427 bbit1  0x00000006 , 0x00005b5b 
+ 00019443  0x00004428 call  0x00004e47 
+ 00019444  0x00004429 nrtn  0x00000028 
+ 00019445  0x0000442a call  0x00005abc 
+ 00019446  0x0000442b call  0x000056b1 
+ 00019447  0x0000442c fetch  0x00000008 , 0x00004713 
+ 00019448  0x0000442d bbit0  0x00000016 , 0x00005b3c 
+ 00019449  0x0000442e fetch  0x00000001 , 0x0000496c 
+ 00019450  0x0000442f branch  0x00005b3d 
+ 00019451  0x00004437 fetch  0x00000001 , 0x000043cb 
+ 00019452  0x00004438 rtnne  0x0000000f 
+ 00019453  0x00004439 call  0x00004c00 
+ 00019454  0x0000443a call  0x00004c8b 
+ 00019455  0x0000443b branch  0x00004df5 
+ 00019456  0x00004443 bpatch  0x0000004e , 0x00004009 
+ 00019457  0x00004444 call  0x00004c85 
+ 00019458  0x00004445 setarg  0x00000000 
+ 00019459  0x00004446 store  0x00000002 , 0x000048e9 
+ 00019460  0x00004447 arg  0x0000489c , 0x00000006 
+ 00019461  0x00004448 arg  0x000048b0 , 0x00000005 
+ 00019462  0x00004449 arg  0x00000014 , 0x00000039 
+ 00019463  0x0000444a call  0x00007cda 
+ 00019464  0x0000444b setarg  0x0000489c 
+ 00019465  0x0000444c store  0x00000002 , 0x000048e3 
+ 00019466  0x0000444d setarg  0x000048d8 
+ 00019467  0x0000444e store  0x00000002 , 0x000048e5 
+ 00019468  0x0000444f call  0x00004c2f 
+ 00019469  0x00004450 call  0x00004c53 
+ 00019470  0x00004451 call  0x00004c83 
+ 00019471  0x00004453 fetch  0x00000002 , 0x0000489a 
+ 00019472  0x00004454 copy  0x0000003f , 0x00000012 
+ 00019473  0x00004455 jam  0x00000000 , 0x000048e8 
+ 00019474  0x00004457 ifetcht  0x00000001 , 0x00000012 
+ 00019475  0x00004458 fetch  0x00000002 , 0x00004898 
+ 00019476  0x00004459 copy  0x0000003f , 0x00000011 
+ 00019477  0x0000445a copy  0x00000011 , 0x00000013 
+ 00019478  0x0000445b arg  0x00000014 , 0x00000039 
+ 00019479  0x0000445d ifetch  0x00000001 , 0x00000011 
+ 00019480  0x0000445e isub  0x00000002 , 0x0000003e 
+ 00019481  0x0000445f branch  0x00004c23 , 0x00000005 
+ 00019482  0x00004460 increase  0x00000001 , 0x00000011 
+ 00019483  0x00004461 loop  0x00004c17 
+ 00019484  0x00004463 increase  0x00000001 , 0x00000012 
+ 00019485  0x00004464 fetch  0x00000001 , 0x000048e8 
+ 00019486  0x00004465 increase  0x00000001 , 0x0000003f 
+ 00019487  0x00004466 store  0x00000001 , 0x000048e8 
+ 00019488  0x00004467 sub  0x0000003f , 0x0000000a , 0x0000003e 
+ 00019489  0x00004468 branch  0x00004c12 , 0x00000002 
+ 00019490  0x0000446a rtn 
+ 00019491  0x0000446d fetch  0x00000002 , 0x000048e3 
+ 00019492  0x0000446e copy  0x0000003f , 0x00000005 
+ 00019493  0x0000446f copy  0x00000011 , 0x0000003f 
+ 00019494  0x00004470 isub  0x00000013 , 0x0000003f 
+ 00019495  0x00004471 iadd  0x00000005 , 0x00000005 
+ 00019496  0x00004472 fetch  0x00000002 , 0x000048e5 
+ 00019497  0x00004473 copy  0x0000003f , 0x00000013 
+ 00019498  0x00004474 fetch  0x00000001 , 0x000048e8 
+ 00019499  0x00004475 iadd  0x00000013 , 0x00000013 
+ 00019500  0x00004476 ifetch  0x00000001 , 0x00000013 
+ 00019501  0x00004477 istore  0x00000001 , 0x00000005 
+ 00019502  0x00004478 branch  0x00004c1c 
+ 00019503  0x0000447b bpatch  0x0000004f , 0x00004009 
+ 00019504  0x0000447c call  0x00004c83 
+ 00019505  0x0000447d call  0x00004c81 
+ 00019506  0x0000447f fetch  0x00000002 , 0x000048e9 
+ 00019507  0x00004480 increase  0x00000001 , 0x0000003f 
+ 00019508  0x00004481 store  0x00000002 , 0x000048e9 
+ 00019509  0x00004482 bbit1  0x00000009 , 0x00004c71 
+ 00019510  0x00004483 fetcht  0x00000001 , 0x00004864 
+ 00019511  0x00004484 call  0x00006ee6 
+ 00019512  0x00004485 nbranch  0x00004c32 , 0x00000001 
+ 00019513  0x00004486 nop  0x00000014 
+ 00019514  0x00004487 call  0x00004c79 
+ 00019515  0x00004488 call  0x00004c85 
+ 00019516  0x00004489 jam  0x00000000 , 0x000048e8 
+ 00019517  0x0000448b call  0x00004c7b 
+ 00019518  0x0000448c call  0x00004c46 
+ 00019519  0x0000448d call  0x00004c79 
+ 00019520  0x0000448e call  0x00004c46 
+ 00019521  0x0000448f sub  0x0000003f , 0x00000009 , 0x0000003e 
+ 00019522  0x00004490 branch  0x00004c3d , 0x00000002 
+ 00019523  0x00004491 call  0x00004c7b 
+ 00019524  0x00004492 call  0x00004c46 
+ 00019525  0x00004493 branch  0x00004c79 
+ 00019526  0x00004496 jam  0x00000000 , 0x000048e7 
+ 00019527  0x00004497 nop  0x00000032 
+ 00019528  0x00004498 call  0x00004c65 
+ 00019529  0x00004499 fetch  0x00000002 , 0x000048e5 
+ 00019530  0x0000449b copy  0x0000003f , 0x00000005 
+ 00019531  0x0000449c fetch  0x00000001 , 0x000048e8 
+ 00019532  0x0000449d iadd  0x00000005 , 0x00000005 
+ 00019533  0x0000449e fetch  0x00000001 , 0x000048e7 
+ 00019534  0x0000449f istore  0x00000001 , 0x00000005 
+ 00019535  0x000044a0 fetch  0x00000001 , 0x000048e8 
+ 00019536  0x000044a1 increase  0x00000001 , 0x0000003f 
+ 00019537  0x000044a2 store  0x00000001 , 0x000048e8 
+ 00019538  0x000044a3 rtn 
+ 00019539  0x000044a7 nop  0x00000014 
+ 00019540  0x000044a8 fetch  0x00000002 , 0x00004898 
+ 00019541  0x000044a9 copy  0x0000003f , 0x00000012 
+ 00019542  0x000044aa jam  0x00000000 , 0x000048e8 
+ 00019543  0x000044ac jam  0x00000000 , 0x000048e7 
+ 00019544  0x000044ad ifetcht  0x00000001 , 0x00000012 
+ 00019545  0x000044ae isolate1  0x00000007 , 0x00000002 
+ 00019546  0x000044af branch  0x00004c5f , 0x00000001 
+ 00019547  0x000044b0 call  0x00006ef7 
+ 00019548  0x000044b1 call  0x00004c65 
+ 00019549  0x000044b2 ifetcht  0x00000001 , 0x00000012 
+ 00019550  0x000044b3 call  0x00006f0f 
+ 00019551  0x000044b5 increase  0x00000001 , 0x00000012 
+ 00019552  0x000044b6 fetch  0x00000002 , 0x000048e3 
+ 00019553  0x000044b7 call  0x00004c4a 
+ 00019554  0x000044b8 sub  0x0000003f , 0x00000013 , 0x0000003e 
+ 00019555  0x000044b9 branch  0x00004c57 , 0x00000002 
+ 00019556  0x000044ba rtn 
+ 00019557  0x000044be fetch  0x00000002 , 0x00004896 
+ 00019558  0x000044bf copy  0x0000003f , 0x00000013 
+ 00019559  0x000044c0 arg  0x00000008 , 0x00000039 
+ 00019560  0x000044c3 ifetcht  0x00000001 , 0x00000013 
+ 00019561  0x000044c4 call  0x00006ee6 
+ 00019562  0x000044c5 fetch  0x00000001 , 0x000048e7 
+ 00019563  0x000044c6 rshift  0x0000003f , 0x0000003f 
+ 00019564  0x000044c7 setflag  0x00000001 , 0x00000007 , 0x0000003f 
+ 00019565  0x000044c8 store  0x00000001 , 0x000048e7 
+ 00019566  0x000044c9 increase  0x00000001 , 0x00000013 
+ 00019567  0x000044ca loop  0x00004c68 
+ 00019568  0x000044cb rtn 
+ 00019569  0x000044cd fetcht  0x00000001 , 0x00004865 
+ 00019570  0x000044ce call  0x00006ef7 
+ 00019571  0x000044cf nop  0x00000014 
+ 00019572  0x000044d0 fetcht  0x00000001 , 0x00004865 
+ 00019573  0x000044d1 call  0x00006ef3 
+ 00019574  0x000044d2 nop  0x00001770 
+ 00019575  0x000044d3 rtn 
+ 00019576  0x000044d4 branch  0x00004c00 
+ 00019577  0x000044d6 fetcht  0x00000001 , 0x00004864 
+ 00019578  0x000044d7 branch  0x00006ef3 
+ 00019579  0x000044da fetcht  0x00000001 , 0x00004864 
+ 00019580  0x000044db branch  0x00006ef7 
+ 00019581  0x000044dd sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00019582  0x000044de rtn  0x00000005 
+ 00019583  0x000044df set0  0x00000007 , 0x00000002 
+ 00019584  0x000044e0 branch  0x00006edd 
+ 00019585  0x000044e2 fetcht  0x00000001 , 0x00004864 
+ 00019586  0x000044e3 branch  0x00006edd 
+ 00019587  0x000044e6 fetcht  0x00000001 , 0x00004863 
+ 00019588  0x000044e7 branch  0x00006ef3 
+ 00019589  0x000044ea fetcht  0x00000001 , 0x00004863 
+ 00019590  0x000044eb branch  0x00006ef7 
+ 00019591  0x000044f7 jam  0x00000000 , 0x000048eb 
+ 00019592  0x000044f8 fetch  0x00000002 , 0x000048ec 
+ 00019593  0x000044f9 store  0x00000002 , 0x000048ee 
+ 00019594  0x000044fa rtn 
+ 00019595  0x000044fe bpatch  0x00000050 , 0x0000400a 
+ 00019596  0x000044ff arg  0x0000489c , 0x00000011 
+ 00019597  0x00004500 arg  0x000048b0 , 0x00000012 
+ 00019598  0x00004501 arg  0x00000014 , 0x00000039 
+ 00019599  0x00004502 call  0x00007d64 
+ 00019600  0x00004503 nbranch  0x00004c87 , 0x00000005 
+ 00019601  0x00004504 call  0x00004cc5 
+ 00019602  0x00004505 call  0x00004c87 , 0x00000034 
+ 00019603  0x00004507 call  0x00004ccd 
+ 00019604  0x00004508 fetch  0x00000001 , 0x0000497b 
+ 00019605  0x00004509 nrtn  0x00000034 
+ 00019606  0x0000450a fetch  0x00000001 , 0x000049c1 
+ 00019607  0x0000450b rtneq  0x00000001 
+ 00019608  0x0000450c rtneq  0x00000002 
+ 00019609  0x0000450d rtneq  0x00000004 
+ 00019610  0x00004510 jam  0x00000000 , 0x000048e8 
+ 00019611  0x00004511 arg  0x0000489c , 0x00000011 
+ 00019612  0x00004512 arg  0x000048c4 , 0x00000012 
+ 00019613  0x00004514 ifetcht  0x00000001 , 0x00000011 
+ 00019614  0x00004515 ifetch  0x00000001 , 0x00000012 
+ 00019615  0x00004516 ixor  0x00000002 , 0x0000003f 
+ 00019616  0x00004517 branch  0x00004cbd , 0x00000034 
+ 00019617  0x00004518 store  0x00000001 , 0x000048e7 
+ 00019618  0x00004519 storet  0x00000001 , 0x000048f6 
+ 00019619  0x0000451a istoret  0x00000001 , 0x00000012 
+ 00019620  0x0000451b jam  0x00000001 , 0x000048f4 
+ 00019621  0x0000451c jam  0x00000000 , 0x000048f7 
+ 00019622  0x0000451e fetch  0x00000001 , 0x000048e7 
+ 00019623  0x0000451f bbit0  0x00000000 , 0x00004cb3 
+ 00019624  0x00004520 fetch  0x00000001 , 0x000048e8 
+ 00019625  0x00004521 mul32  0x0000003f , 0x00000008 , 0x0000003f 
+ 00019626  0x00004522 fetcht  0x00000001 , 0x000048f7 
+ 00019627  0x00004523 iadd  0x00000002 , 0x0000003f 
+ 00019628  0x00004524 arg  0x00004901 , 0x00000006 
+ 00019629  0x00004525 iadd  0x00000006 , 0x00000006 
+ 00019630  0x00004526 ifetch  0x00000001 , 0x00000006 
+ 00019631  0x00004527 store  0x00000001 , 0x000048f5 
+ 00019632  0x00004528 call  0x00004cfc 
+ 00019633  0x00004529 call  0x00004d3a 
+ 00019634  0x0000452a call  0x00004dbb 
+ 00019635  0x0000452c fetch  0x00000001 , 0x000048e7 
+ 00019636  0x0000452d rshift  0x0000003f , 0x0000003f 
+ 00019637  0x0000452e store  0x00000001 , 0x000048e7 
+ 00019638  0x0000452f fetch  0x00000001 , 0x000048f6 
+ 00019639  0x00004530 rshift  0x0000003f , 0x0000003f 
+ 00019640  0x00004531 store  0x00000001 , 0x000048f6 
+ 00019641  0x00004532 fetch  0x00000001 , 0x000048f7 
+ 00019642  0x00004533 increase  0x00000001 , 0x0000003f 
+ 00019643  0x00004534 store  0x00000001 , 0x000048f7 
+ 00019644  0x00004535 loop  0x00004ca6 
+ 00019645  0x00004537 increase  0x00000001 , 0x00000011 
+ 00019646  0x00004538 increase  0x00000001 , 0x00000012 
+ 00019647  0x00004539 fetch  0x00000001 , 0x000048e8 
+ 00019648  0x0000453a increase  0x00000001 , 0x0000003f 
+ 00019649  0x0000453b store  0x00000001 , 0x000048e8 
+ 00019650  0x0000453c sub  0x0000003f , 0x00000013 , 0x0000003e 
+ 00019651  0x0000453d branch  0x00004c9d , 0x00000002 
+ 00019652  0x0000453e rtn 
+ 00019653  0x00004541 fetch  0x00000008 , 0x0000489c 
+ 00019654  0x00004542 nrtn  0x00000034 
+ 00019655  0x00004543 fetch  0x00000008 , 0x000048a4 
+ 00019656  0x00004544 nrtn  0x00000034 
+ 00019657  0x00004545 fetch  0x00000004 , 0x000048ac 
+ 00019658  0x00004546 nrtn  0x00000034 
+ 00019659  0x00004547 jam  0x00000000 , 0x000049c1 
+ 00019660  0x00004548 rtn 
+ 00019661  0x0000454d bpatch  0x00000051 , 0x0000400a 
+ 00019662  0x0000454e jam  0x00000000 , 0x0000497b 
+ 00019663  0x0000454f jam  0x00000000 , 0x000048f1 
+ 00019664  0x00004550 arg  0x0000489c , 0x00000011 
+ 00019665  0x00004551 arg  0x00000014 , 0x00000039 
+ 00019666  0x00004553 jam  0x00000000 , 0x000048f0 
+ 00019667  0x00004554 ifetch  0x00000001 , 0x00000011 
+ 00019668  0x00004555 branch  0x00004cf7 , 0x00000034 
+ 00019669  0x00004557 fetcht  0x00000001 , 0x000048f0 
+ 00019670  0x00004558 increase  0x00000001 , 0x00000002 
+ 00019671  0x00004559 storet  0x00000001 , 0x000048f0 
+ 00019672  0x0000455a copy  0x0000003f , 0x00000002 
+ 00019673  0x0000455b increase  0xffffffff , 0x0000003f 
+ 00019674  0x0000455c iand  0x00000002 , 0x0000003f 
+ 00019675  0x0000455d nbranch  0x00004cd5 , 0x00000005 
+ 00019676  0x0000455e fetch  0x00000001 , 0x000048f0 
+ 00019677  0x0000455f fetcht  0x00000001 , 0x000048f1 
+ 00019678  0x00004560 iadd  0x00000002 , 0x00000002 
+ 00019679  0x00004561 storet  0x00000001 , 0x000048f1 
+ 00019680  0x00004562 sub  0x0000003f , 0x00000001 , 0x0000003e 
+ 00019681  0x00004563 branch  0x00004cf7 , 0x00000002 
+ 00019682  0x00004564 sub  0x00000002 , 0x00000002 , 0x0000003e 
+ 00019683  0x00004565 branch  0x00004cf7 , 0x00000002 
+ 00019684  0x00004566 jam  0x00000000 , 0x000048e8 
+ 00019685  0x00004567 jam  0x00000000 , 0x000048f2 
+ 00019686  0x00004568 ifetcht  0x00000001 , 0x00000011 
+ 00019687  0x00004569 arg  0x0000489c , 0x00000012 
+ 00019688  0x0000456b fetch  0x00000001 , 0x000048e8 
+ 00019689  0x0000456c increase  0x00000001 , 0x0000003f 
+ 00019690  0x0000456d store  0x00000001 , 0x000048e8 
+ 00019691  0x0000456e sub  0x0000003f , 0x00000013 , 0x0000003e 
+ 00019692  0x0000456f nbranch  0x00004cf7 , 0x00000002 
+ 00019693  0x00004570 ifetch  0x00000001 , 0x00000012 
+ 00019694  0x00004571 iand  0x00000002 , 0x0000003e 
+ 00019695  0x00004572 branch  0x00004cfa , 0x00000005 
+ 00019696  0x00004573 fetch  0x00000001 , 0x000048f2 
+ 00019697  0x00004574 increase  0x00000001 , 0x0000003f 
+ 00019698  0x00004575 store  0x00000001 , 0x000048f2 
+ 00019699  0x00004576 sub  0x0000003f , 0x00000001 , 0x0000003e 
+ 00019700  0x00004577 branch  0x00004cfa , 0x00000002 
+ 00019701  0x00004578 jam  0x00000001 , 0x0000497b 
+ 00019702  0x00004579 rtn 
+ 00019703  0x0000457c increase  0x00000001 , 0x00000011 
+ 00019704  0x0000457d loop  0x00004cd2 
+ 00019705  0x0000457e rtn 
+ 00019706  0x00004581 increase  0x00000001 , 0x00000012 
+ 00019707  0x00004582 branch  0x00004ce8 
+ 00019708  0x0000458b bpatch  0x00000052 , 0x0000400a 
+ 00019709  0x0000458c fetch  0x00000001 , 0x000048f6 
+ 00019710  0x0000458d ncall  0x00004d4e , 0x00000034 
+ 00019711  0x0000458e fetch  0x00000001 , 0x000049a1 
+ 00019712  0x0000458f ncall  0x00004d11 , 0x00000034 
+ 00019713  0x00004590 fetch  0x00000001 , 0x000049ae 
+ 00019714  0x00004591 fetcht  0x00000001 , 0x000049a1 
+ 00019715  0x00004592 ixor  0x00000002 , 0x0000003f 
+ 00019716  0x00004593 rtn  0x00000005 
+ 00019717  0x00004594 fetch  0x00000001 , 0x000048f5 
+ 00019718  0x00004595 beq  0x00000029 , 0x00004d19 
+ 00019719  0x00004596 beq  0x0000004c , 0x00004d1b 
+ 00019720  0x00004597 sub  0x0000003f , 0x00000045 , 0x0000003e 
+ 00019721  0x00004598 nrtn  0x00000002 
+ 00019722  0x00004599 arg  0x0000003a , 0x00000002 
+ 00019723  0x0000459a isub  0x00000002 , 0x0000003f 
+ 00019724  0x0000459b nrtn  0x00000002 
+ 00019725  0x0000459c arg  0x000049b0 , 0x00000006 
+ 00019726  0x0000459d iadd  0x00000006 , 0x00000006 
+ 00019727  0x0000459e ifetch  0x00000001 , 0x00000006 
+ 00019728  0x0000459f branch  0x00004d38 
+ 00019729  0x000045a2 fetch  0x00000001 , 0x000048f5 
+ 00019730  0x000045a3 beq  0x00000052 , 0x00004d1d 
+ 00019731  0x000045a4 beq  0x00000051 , 0x00004d21 
+ 00019732  0x000045a5 beq  0x00000050 , 0x00004d25 
+ 00019733  0x000045a6 beq  0x0000004f , 0x00004d29 
+ 00019734  0x000045a7 beq  0x000000e0 , 0x00004d2d 
+ 00019735  0x000045a8 beq  0x0000002c , 0x00004d35 
+ 00019736  0x000045a9 rtn 
+ 00019737  0x000045ac fetch  0x00000001 , 0x000049af 
+ 00019738  0x000045ad branch  0x00004d38 
+ 00019739  0x000045b0 fetch  0x00000001 , 0x000049bc 
+ 00019740  0x000045b1 branch  0x00004d38 
+ 00019741  0x000045b4 fetch  0x00000001 , 0x000049bd 
+ 00019742  0x000045b5 rtn  0x00000034 
+ 00019743  0x000045b6 setarg  0x0000004b 
+ 00019744  0x000045b7 branch  0x00004d38 
+ 00019745  0x000045ba fetch  0x00000001 , 0x000049bd 
+ 00019746  0x000045bb rtn  0x00000034 
+ 00019747  0x000045bc setarg  0x0000004e 
+ 00019748  0x000045bd branch  0x00004d38 
+ 00019749  0x000045c0 fetch  0x00000001 , 0x000049bd 
+ 00019750  0x000045c1 rtn  0x00000034 
+ 00019751  0x000045c2 setarg  0x0000004a 
+ 00019752  0x000045c3 branch  0x00004d38 
+ 00019753  0x000045c6 fetch  0x00000001 , 0x000049bd 
+ 00019754  0x000045c7 rtn  0x00000034 
+ 00019755  0x000045c8 setarg  0x0000004d 
+ 00019756  0x000045c9 branch  0x00004d38 
+ 00019757  0x000045cc fetch  0x00000001 , 0x000049be 
+ 00019758  0x000045cd rtn  0x00000034 
+ 00019759  0x000045ce fetch  0x00000001 , 0x000049c6 
+ 00019760  0x000045cf beq  0x00000000 , 0x00004d33 
+ 00019761  0x000045d0 setarg  0x000000fd 
+ 00019762  0x000045d1 branch  0x00004d38 
+ 00019763  0x000045d3 setarg  0x000000aa 
+ 00019764  0x000045d4 branch  0x00004d38 
+ 00019765  0x000045d7 fetch  0x00000001 , 0x000049bf 
+ 00019766  0x000045d8 rtn  0x00000034 
+ 00019767  0x000045d9 setarg  0x000000ab 
+ 00019768  0x000045db store  0x00000001 , 0x000048f5 
+ 00019769  0x000045dc rtn 
+ 00019770  0x000045e3 bpatch  0x00000053 , 0x0000400a 
+ 00019771  0x000045e4 fetch  0x00000001 , 0x000048f5 
+ 00019772  0x000045e5 beq  0x00000046 , 0x00004d50 
+ 00019773  0x000045e6 beq  0x0000004b , 0x00004d56 
+ 00019774  0x000045e7 beq  0x0000004e , 0x00004d5c 
+ 00019775  0x000045e8 beq  0x0000004a , 0x00004d5e 
+ 00019776  0x000045e9 beq  0x0000004d , 0x00004d60 
+ 00019777  0x000045ea beq  0x000000a5 , 0x00004d62 
+ 00019778  0x000045eb beq  0x000000a6 , 0x00004d69 
+ 00019779  0x000045ec beq  0x000000a7 , 0x00004d6b 
+ 00019780  0x000045ed beq  0x000000a8 , 0x00004d6d 
+ 00019781  0x000045ee beq  0x000000a9 , 0x00004d6f 
+ 00019782  0x000045ef beq  0x000000aa , 0x00004d7a 
+ 00019783  0x000045f0 beq  0x000000ab , 0x00004d81 
+ 00019784  0x000045f1 beq  0x000000ac , 0x00004d8c 
+ 00019785  0x000045f2 rtn 
+ 00019786  0x000045f5 fetch  0x00000001 , 0x000048f6 
+ 00019787  0x000045f6 nrtn  0x00000034 
+ 00019788  0x000045f7 jam  0x0000000a , 0x000049c4 
+ 00019789  0x000045f8 rtn 
+ 00019790  0x000045fb jam  0x00000000 , 0x000049c4 
+ 00019791  0x000045fc rtn 
+ 00019792  0x000045ff fetch  0x00000001 , 0x000049c6 
+ 00019793  0x00004600 rtneq  0x00000000 
+ 00019794  0x00004601 rtneq  0x00000001 
+ 00019795  0x00004602 jam  0x0000000a , 0x000049c2 
+ 00019796  0x00004603 jam  0x00000020 , 0x000049c3 
+ 00019797  0x00004604 branch  0x00004d95 
+ 00019798  0x00004607 jam  0x00000052 , 0x000049c3 
+ 00019799  0x00004609 fetch  0x00000001 , 0x000049c6 
+ 00019800  0x0000460a rtneq  0x00000000 
+ 00019801  0x0000460b rtneq  0x00000001 
+ 00019802  0x0000460c jam  0x00000008 , 0x000049c2 
+ 00019803  0x0000460d branch  0x00004d95 
+ 00019804  0x00004610 jam  0x00000051 , 0x000049c3 
+ 00019805  0x00004611 branch  0x00004d57 
+ 00019806  0x00004614 jam  0x00000050 , 0x000049c3 
+ 00019807  0x00004615 branch  0x00004d57 
+ 00019808  0x00004618 jam  0x0000004f , 0x000049c3 
+ 00019809  0x00004619 branch  0x00004d57 
+ 00019810  0x0000461c jam  0x00000004 , 0x000049c3 
+ 00019811  0x0000461e jam  0x00000001 , 0x000049c2 
+ 00019812  0x0000461f fetch  0x00000001 , 0x000049c6 
+ 00019813  0x00004620 beq  0x00000000 , 0x00004d95 
+ 00019814  0x00004621 beq  0x00000001 , 0x00004d95 
+ 00019815  0x00004622 jam  0x00000008 , 0x000049c2 
+ 00019816  0x00004623 branch  0x00004d95 
+ 00019817  0x00004626 jam  0x00000006 , 0x000049c3 
+ 00019818  0x00004627 branch  0x00004d63 
+ 00019819  0x0000462a jam  0x00000019 , 0x000049c3 
+ 00019820  0x0000462b branch  0x00004d63 
+ 00019821  0x0000462e jam  0x0000001b , 0x000049c3 
+ 00019822  0x0000462f branch  0x00004d63 
+ 00019823  0x00004632 fetch  0x00000001 , 0x000049c6 
+ 00019824  0x00004633 beq  0x00000000 , 0x00004d74 
+ 00019825  0x00004634 beq  0x00000003 , 0x00004d77 
+ 00019826  0x00004635 setarg  0x000000fc 
+ 00019827  0x00004636 branch  0x00004d38 
+ 00019828  0x00004638 jam  0x00000008 , 0x000049c2 
+ 00019829  0x00004639 jam  0x0000000f , 0x000049c3 
+ 00019830  0x0000463a branch  0x00004d95 
+ 00019831  0x0000463c jam  0x00000009 , 0x000049c2 
+ 00019832  0x0000463d jam  0x00000014 , 0x000049c3 
+ 00019833  0x0000463e branch  0x00004d95 
+ 00019834  0x00004641 fetch  0x00000001 , 0x000049c6 
+ 00019835  0x00004642 beq  0x00000000 , 0x00004d7e 
+ 00019836  0x00004643 setarg  0x000000fd 
+ 00019837  0x00004644 branch  0x00004d38 
+ 00019838  0x00004646 jam  0x00000009 , 0x000049c2 
+ 00019839  0x00004647 jam  0x00000012 , 0x000049c3 
+ 00019840  0x00004648 branch  0x00004d95 
+ 00019841  0x0000464b fetch  0x00000001 , 0x000049c6 
+ 00019842  0x0000464c beq  0x00000000 , 0x00004d88 
+ 00019843  0x0000464d beq  0x00000001 , 0x00004d8a 
+ 00019844  0x0000464e jam  0x00000001 , 0x000049c2 
+ 00019845  0x00004650 jam  0x0000002c , 0x000049c3 
+ 00019846  0x00004651 call  0x00004d4a 
+ 00019847  0x00004652 branch  0x00004d95 
+ 00019848  0x00004654 jam  0x00000008 , 0x000049c2 
+ 00019849  0x00004655 branch  0x00004d85 
+ 00019850  0x00004657 jam  0x00000002 , 0x000049c2 
+ 00019851  0x00004658 branch  0x00004d85 
+ 00019852  0x0000465b fetch  0x00000001 , 0x000049c6 
+ 00019853  0x0000465c beq  0x00000000 , 0x00004d92 
+ 00019854  0x0000465d beq  0x00000001 , 0x00004d92 
+ 00019855  0x0000465e jam  0x00000001 , 0x000049c2 
+ 00019856  0x0000465f jam  0x00000052 , 0x000049c3 
+ 00019857  0x00004660 branch  0x00004d95 
+ 00019858  0x00004662 jam  0x00000008 , 0x000049c2 
+ 00019859  0x00004663 jam  0x0000002b , 0x000049c3 
+ 00019860  0x00004664 branch  0x00004d95 
+ 00019861  0x00004667 jam  0x00000000 , 0x000048f5 
+ 00019862  0x00004668 fetch  0x00000001 , 0x000048f6 
+ 00019863  0x00004669 bbit0  0x00000000 , 0x00004d9c 
+ 00019864  0x0000466a fetch  0x00000001 , 0x000049c1 
+ 00019865  0x0000466b beq  0x00000003 , 0x00004da8 
+ 00019866  0x0000466d jam  0x00000001 , 0x000049c1 
+ 00019867  0x0000466e rtn 
+ 00019868  0x00004671 jam  0x00000004 , 0x000049c1 
+ 00019869  0x00004672 rtn 
+ 00019870  0x00004675 jam  0x00000006 , 0x000049c1 
+ 00019871  0x00004676 rtn 
+ 00019872  0x0000467a store  0x00000001 , 0x00004856 
+ 00019873  0x0000467b storet  0x00000001 , 0x00004858 
+ 00019874  0x0000467c call  0x00007dba 
+ 00019875  0x0000467d jam  0x00000000 , 0x00004855 
+ 00019876  0x0000467e branch  0x00004e89 
+ 00019877  0x00004681 fetch  0x00000001 , 0x000049c2 
+ 00019878  0x00004682 arg  0x00000000 , 0x00000002 
+ 00019879  0x00004683 call  0x00004da0 
+ 00019880  0x00004685 jam  0x00000002 , 0x000049c1 
+ 00019881  0x00004686 rtn 
+ 00019882  0x00004689 jam  0x00000003 , 0x000049c1 
+ 00019883  0x0000468a fetch  0x00000001 , 0x000049c2 
+ 00019884  0x0000468b fetcht  0x00000001 , 0x000049c3 
+ 00019885  0x0000468c branch  0x00004da0 
+ 00019886  0x0000468f jam  0x00000000 , 0x00004855 
+ 00019887  0x00004690 fetch  0x00000001 , 0x000049c2 
+ 00019888  0x00004691 arg  0x00000000 , 0x00000002 
+ 00019889  0x00004692 call  0x00004da0 
+ 00019890  0x00004693 fetch  0x00000001 , 0x000049c4 
+ 00019891  0x00004694 branch  0x00004d9e , 0x00000034 
+ 00019892  0x00004696 jam  0x00000005 , 0x000049c1 
+ 00019893  0x00004697 rtn 
+ 00019894  0x0000469a branch  0x00004da2 
+ 00019895  0x0000469d jam  0x00000000 , 0x000049c1 
+ 00019896  0x0000469e arg  0x00000000 , 0x0000003f 
+ 00019897  0x0000469f arg  0x00000000 , 0x00000002 
+ 00019898  0x000046a0 branch  0x00004da0 
+ 00019899  0x000046a5 bpatch  0x00000054 , 0x0000400a 
+ 00019900  0x000046a6 fetch  0x00000001 , 0x000048f5 
+ 00019901  0x000046a7 sub  0x0000003f , 0x000000e7 , 0x0000003e 
+ 00019902  0x000046a8 branch  0x00004dc3 , 0x00000002 
+ 00019903  0x000046a9 jam  0x00000001 , 0x000049c5 
+ 00019904  0x000046aa fetch  0x00000001 , 0x000048f6 
+ 00019905  0x000046ab bbit1  0x00000000 , 0x00004dc3 
+ 00019906  0x000046ac jam  0x00000002 , 0x000049c5 
+ 00019907  0x000046ae jam  0x00000000 , 0x00004900 
+ 00019908  0x000046af fetch  0x00000001 , 0x000048f6 
+ 00019909  0x000046b0 bbit1  0x00000000 , 0x00004ddd 
+ 00019910  0x000046b2 fetcht  0x00000001 , 0x000048f5 
+ 00019911  0x000046b3 arg  0x00000006 , 0x00000039 
+ 00019912  0x000046b4 arg  0x000048fa , 0x00000006 
+ 00019913  0x000046b6 ifetch  0x00000001 , 0x00000006 
+ 00019914  0x000046b7 branch  0x00004dd4 , 0x00000034 
+ 00019915  0x000046b8 isub  0x00000002 , 0x0000003e 
+ 00019916  0x000046b9 nbranch  0x00004dd3 , 0x00000005 
+ 00019917  0x000046ba ifetch  0x00000001 , 0x00000006 
+ 00019918  0x000046bb increase  0xfffffffe , 0x00000006 
+ 00019919  0x000046bc istore  0x00000001 , 0x00000006 
+ 00019920  0x000046bd rtn  0x00000034 
+ 00019921  0x000046be increase  0x00000001 , 0x00000006 
+ 00019922  0x000046bf istoret  0x00000001 , 0x00000006 
+ 00019923  0x000046c1 loop  0x00004dc9 
+ 00019924  0x000046c2 sub  0x00000002 , 0x000000e7 , 0x0000003e 
+ 00019925  0x000046c3 nrtn  0x00000002 
+ 00019926  0x000046c4 sub  0x00000002 , 0x000000bf , 0x0000003e 
+ 00019927  0x000046c5 rtn  0x00000002 
+ 00019928  0x000046c7 and  0x00000002 , 0x00000007 , 0x00000007 
+ 00019929  0x000046c8 fetch  0x00000001 , 0x000048f8 
+ 00019930  0x000046c9 qset0  0x0000003f 
+ 00019931  0x000046ca store  0x00000001 , 0x000048f8 
+ 00019932  0x000046cb rtn 
+ 00019933  0x000046ce fetcht  0x00000001 , 0x000048f5 
+ 00019934  0x000046cf arg  0x00000006 , 0x00000039 
+ 00019935  0x000046d0 arg  0x000048fa , 0x00000006 
+ 00019936  0x000046d2 ifetch  0x00000001 , 0x00000006 
+ 00019937  0x000046d3 branch  0x00004dee , 0x00000034 
+ 00019938  0x000046d4 isub  0x00000002 , 0x0000003e 
+ 00019939  0x000046d5 rtn  0x00000005 
+ 00019940  0x000046d6 loop  0x00004de0 
+ 00019941  0x000046d7 sub  0x00000002 , 0x000000e7 , 0x0000003e 
+ 00019942  0x000046d8 nrtn  0x00000002 
+ 00019943  0x000046d9 sub  0x00000002 , 0x000000bf , 0x0000003e 
+ 00019944  0x000046da rtn  0x00000002 
+ 00019945  0x000046dc and  0x00000002 , 0x00000007 , 0x00000007 
+ 00019946  0x000046dd fetch  0x00000001 , 0x000048f8 
+ 00019947  0x000046de qset1  0x0000003f 
+ 00019948  0x000046df store  0x00000001 , 0x000048f8 
+ 00019949  0x000046e0 rtn 
+ 00019950  0x000046e3 sub  0x00000002 , 0x000000e7 , 0x0000003e 
+ 00019951  0x000046e4 nbranch  0x00004df2 , 0x00000002 
+ 00019952  0x000046e5 sub  0x00000002 , 0x000000bf , 0x0000003e 
+ 00019953  0x000046e6 nbranch  0x00004de9 , 0x00000002 
+ 00019954  0x000046e8 increase  0xffffffff , 0x00000006 
+ 00019955  0x000046e9 istoret  0x00000001 , 0x00000006 
+ 00019956  0x000046ea rtn 
+ 00019957  0x000046ef bpatch  0x00000055 , 0x0000400a 
+ 00019958  0x000046f0 call  0x00004e14 
+ 00019959  0x000046f1 jam  0x00000000 , 0x000049a1 
+ 00019960  0x000046f2 jam  0x00000000 , 0x000049a2 
+ 00019961  0x000046f3 jam  0x00000000 , 0x000049a3 
+ 00019962  0x000046f4 fetch  0x00000001 , 0x000048f8 
+ 00019963  0x000046f5 ncall  0x00004e41 , 0x00000034 
+ 00019964  0x000046f6 arg  0x000048fa , 0x00000006 
+ 00019965  0x000046f7 arg  0x00000006 , 0x00000039 
+ 00019966  0x000046f9 ifetch  0x00000001 , 0x00000006 
+ 00019967  0x000046fa sub  0x0000003f , 0x0000007f , 0x0000003e 
+ 00019968  0x000046fb call  0x00004e43 , 0x00000005 
+ 00019969  0x000046fc sub  0x0000003f , 0x000000de , 0x0000003e 
+ 00019970  0x000046fd call  0x00004e45 , 0x00000005 
+ 00019971  0x000046fe loop  0x00004dfe 
+ 00019972  0x000046ff fetch  0x00000001 , 0x00004666 
+ 00019973  0x00004700 beq  0x00000000 , 0x00004e11 
+ 00019974  0x00004702 call  0x00004b37 
+ 00019975  0x00004703 fetch  0x00000001 , 0x000049a4 
+ 00019976  0x00004704 branch  0x00004e24 , 0x00000034 
+ 00019977  0x00004705 fetch  0x00000002 , 0x000048fa 
+ 00019978  0x00004706 fetcht  0x00000002 , 0x000049a5 
+ 00019979  0x00004707 isub  0x00000002 , 0x0000003e 
+ 00019980  0x00004708 branch  0x00004e29 , 0x00000005 
+ 00019981  0x00004709 byteswap  0x00000002 , 0x00000002 
+ 00019982  0x0000470a isub  0x00000002 , 0x0000003e 
+ 00019983  0x0000470b branch  0x00004e29 , 0x00000005 
+ 00019984  0x0000470c rtn 
+ 00019985  0x0000470e fetch  0x00000001 , 0x000049a4 
+ 00019986  0x0000470f branch  0x00004e24 , 0x00000034 
+ 00019987  0x00004710 branch  0x00004e32 
+ 00019988  0x00004713 fetch  0x00000001 , 0x000049a4 
+ 00019989  0x00004714 nrtn  0x00000034 
+ 00019990  0x00004715 fetcht  0x00000001 , 0x00004655 
+ 00019991  0x00004716 sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00019992  0x00004717 rtn  0x00000005 
+ 00019993  0x00004718 call  0x00006ee6 
+ 00019994  0x00004719 nbranch  0x00004e20 , 0x00000001 
+ 00019995  0x0000471a arg  0x00000008 , 0x00000039 
+ 00019996  0x0000471b arg  0x000048f8 , 0x00000005 
+ 00019997  0x0000471c call  0x00007ca1 
+ 00019998  0x0000471d jam  0x000000de , 0x000048fa 
+ 00019999  0x0000471e rtn 
+ 00020000  0x00004721 fetch  0x00000001 , 0x000048fa 
+ 00020001  0x00004722 rtnne  0x000000de 
+ 00020002  0x00004723 jam  0x00000000 , 0x000048fa 
+ 00020003  0x00004724 rtn 
+ 00020004  0x00004727 bpatch  0x00000056 , 0x0000400a 
+ 00020005  0x00004728 fetch  0x00000001 , 0x000049a3 
+ 00020006  0x00004729 rtn  0x00000034 
+ 00020007  0x0000472a fetch  0x00000001 , 0x00004666 
+ 00020008  0x0000472b beq  0x00000000 , 0x00004e39 
+ 00020009  0x0000472e jam  0x00000000 , 0x000048f4 
+ 00020010  0x0000472f fetch  0x00000001 , 0x00004666 
+ 00020011  0x00004730 rtneq  0x00000000 
+ 00020012  0x00004731 fetch  0x00000008 , 0x00004713 
+ 00020013  0x00004732 rtnbit1  0x00000006 
+ 00020014  0x00004733 arg  0x00000006 , 0x00000007 
+ 00020015  0x00004734 call  0x00005f00 
+ 00020016  0x00004735 call  0x000042d0 
+ 00020017  0x00004736 branch  0x00004b90 
+ 00020018  0x0000473b fetch  0x00000002 , 0x000048fa 
+ 00020019  0x0000473c fetcht  0x00000002 , 0x000049a7 
+ 00020020  0x0000473d isub  0x00000002 , 0x0000003e 
+ 00020021  0x0000473e branch  0x00004e39 , 0x00000005 
+ 00020022  0x0000473f byteswap  0x00000002 , 0x00000002 
+ 00020023  0x00004740 isub  0x00000002 , 0x0000003e 
+ 00020024  0x00004741 nrtn  0x00000005 
+ 00020025  0x00004743 call  0x000049f8 
+ 00020026  0x00004744 jam  0x00000000 , 0x000048f4 
+ 00020027  0x00004745 fetch  0x00000002 , 0x000045d8 
+ 00020028  0x00004746 nrtn  0x00000034 
+ 00020029  0x00004747 setarg  0x00000000 
+ 00020030  0x00004748 store  0x00000002 , 0x00004781 
+ 00020031  0x00004749 call  0x00004b7c 
+ 00020032  0x0000474a branch  0x00006047 
+ 00020033  0x0000474e jam  0x00000001 , 0x000049a2 
+ 00020034  0x0000474f rtn 
+ 00020035  0x00004752 jam  0x00000001 , 0x000049a1 
+ 00020036  0x00004753 rtn 
+ 00020037  0x00004756 jam  0x00000001 , 0x000049a3 
+ 00020038  0x00004757 rtn 
+ 00020039  0x0000475d bpatch  0x00000057 , 0x0000400a 
+ 00020040  0x0000475e disable  0x00000028 
+ 00020041  0x0000475f jam  0x00000000 , 0x0000496c 
+ 00020042  0x00004760 jam  0x00000000 , 0x0000496d 
+ 00020043  0x00004761 jam  0x00000000 , 0x0000496e 
+ 00020044  0x00004762 fetch  0x00000001 , 0x000049c1 
+ 00020045  0x00004763 beq  0x00000001 , 0x00004da5 
+ 00020046  0x00004764 beq  0x00000002 , 0x00004daa 
+ 00020047  0x00004765 beq  0x00000003 , 0x00004daa 
+ 00020048  0x00004766 beq  0x00000004 , 0x00004dae 
+ 00020049  0x00004767 beq  0x00000006 , 0x00004db7 
+ 00020050  0x00004768 fetch  0x00000001 , 0x000048f4 
+ 00020051  0x00004769 branch  0x00004e64 , 0x00000034 
+ 00020052  0x0000476a increase  0xffffffff , 0x0000003f 
+ 00020053  0x0000476b store  0x00000001 , 0x000048f4 
+ 00020054  0x0000476c call  0x00004e61 
+ 00020055  0x0000476d jam  0x0000000a , 0x000049ac 
+ 00020056  0x0000476e call  0x00005c0b 
+ 00020057  0x0000476f fetch  0x00000001 , 0x000049c1 
+ 00020058  0x00004770 beq  0x00000005 , 0x00004db6 
+ 00020059  0x00004771 arg  0x00004855 , 0x00000005 
+ 00020060  0x00004772 arg  0x0000000a , 0x00000039 
+ 00020061  0x00004773 call  0x00007ca1 
+ 00020062  0x00004774 call  0x00004e74 
+ 00020063  0x00004775 jam  0x00000000 , 0x0000485f 
+ 00020064  0x00004776 rtn 
+ 00020065  0x00004779 jam  0x00000003 , 0x000040c0 
+ 00020066  0x0000477a jam  0x0000000a , 0x0000477e 
+ 00020067  0x0000477b rtn 
+ 00020068  0x00004780 fetch  0x00000001 , 0x00004666 
+ 00020069  0x00004781 rtneq  0x00000001 
+ 00020070  0x00004782 fetch  0x00000001 , 0x000049ab 
+ 00020071  0x00004783 rtn  0x00000034 
+ 00020072  0x00004784 fetch  0x00000001 , 0x000049a9 
+ 00020073  0x00004785 nrtn  0x00000034 
+ 00020074  0x00004786 fetcht  0x00000001 , 0x000049ad 
+ 00020075  0x00004787 fetch  0x00000001 , 0x000049ac 
+ 00020076  0x00004788 isub  0x00000002 , 0x0000003e 
+ 00020077  0x00004789 store  0x00000001 , 0x000049ad 
+ 00020078  0x0000478a rtn  0x00000005 
+ 00020079  0x0000478b arg  0x00004855 , 0x00000005 
+ 00020080  0x0000478c arg  0x0000000a , 0x00000039 
+ 00020081  0x0000478d call  0x00007ca1 
+ 00020082  0x0000478e call  0x00007dba 
+ 00020083  0x0000478f branch  0x00004e89 
+ 00020084  0x00004794 fetch  0x00000001 , 0x000049c5 
+ 00020085  0x00004795 beq  0x00000002 , 0x00004f05 
+ 00020086  0x00004796 arg  0x000048fa , 0x00000006 
+ 00020087  0x00004797 arg  0x00000006 , 0x00000039 
+ 00020088  0x00004799 ifetch  0x00000001 , 0x00000006 
+ 00020089  0x0000479a sub  0x0000003f , 0x000000e7 , 0x0000003e 
+ 00020090  0x0000479b nbranch  0x00004e9c , 0x00000002 
+ 00020091  0x0000479d loop  0x00004e78 
+ 00020092  0x0000479f fetch  0x00000001 , 0x000048f1 
+ 00020093  0x000047a0 call  0x00004e92 , 0x00000034 
+ 00020094  0x000047a1 jam  0x00000000 , 0x00004855 
+ 00020095  0x000047a2 fetch  0x00000001 , 0x000048fa 
+ 00020096  0x000047a3 sub  0x0000003f , 0x0000007f , 0x0000003e 
+ 00020097  0x000047a4 branch  0x00004e95 , 0x00000005 
+ 00020098  0x000047a5 arg  0x000048f8 , 0x00000006 
+ 00020099  0x000047a6 arg  0x00004856 , 0x00000005 
+ 00020100  0x000047a7 arg  0x00000008 , 0x00000039 
+ 00020101  0x000047a9 ifetch  0x00000001 , 0x00000006 
+ 00020102  0x000047aa beq  0x0000007f , 0x00004e9a 
+ 00020103  0x000047ac istore  0x00000001 , 0x00000005 
+ 00020104  0x000047ad loop  0x00004e85 
+ 00020105  0x000047b0 call  0x00004f10 
+ 00020106  0x000047b2 fetch  0x00000001 , 0x0000485f 
+ 00020107  0x000047b3 beq  0x00000001 , 0x00007dba 
+ 00020108  0x000047b4 beq  0x00000002 , 0x00004e90 
+ 00020109  0x000047b5 beq  0x00000003 , 0x00004e90 
+ 00020110  0x000047b6 beq  0x00000004 , 0x00004e90 
+ 00020111  0x000047b7 beq  0x00000005 , 0x00004e90 
+ 00020112  0x000047b9 call  0x00005917 
+ 00020113  0x000047ba branch  0x00007dba 
+ 00020114  0x000047bd arg  0x000048f8 , 0x00000005 
+ 00020115  0x000047be arg  0x00000009 , 0x00000039 
+ 00020116  0x000047bf branch  0x00007ca1 
+ 00020117  0x000047c3 fetch  0x00000002 , 0x000048f8 
+ 00020118  0x000047c4 store  0x00000002 , 0x00004856 
+ 00020119  0x000047c5 fetch  0x00000006 , 0x000048fb 
+ 00020120  0x000047c6 store  0x00000006 , 0x00004858 
+ 00020121  0x000047c7 branch  0x00004e89 
+ 00020122  0x000047ca setarg  0x00000000 
+ 00020123  0x000047cb branch  0x00004e87 
+ 00020124  0x000047cf copy  0x0000003f , 0x00000002 
+ 00020125  0x000047d0 bpatch  0x00000058 , 0x0000400b 
+ 00020126  0x000047d1 copy  0x00000002 , 0x0000003f 
+ 00020127  0x000047d2 jam  0x00000003 , 0x00004855 
+ 00020128  0x000047d3 fetcht  0x00000001 , 0x000048f1 
+ 00020129  0x000047d4 sub  0x00000002 , 0x00000000 , 0x0000003e 
+ 00020130  0x000047d5 branch  0x00004f05 , 0x00000005 
+ 00020131  0x000047d6 beq  0x000000e8 , 0x00004ebb 
+ 00020132  0x000047d7 beq  0x000000e9 , 0x00004ebe 
+ 00020133  0x000047d8 beq  0x000000ea , 0x00004ec1 
+ 00020134  0x000047d9 beq  0x000000eb , 0x00004ec4 
+ 00020135  0x000047da beq  0x000000ec , 0x00004ec7 
+ 00020136  0x000047db beq  0x000000ed , 0x00004eca 
+ 00020137  0x000047dc beq  0x000000ee , 0x00004ecd 
+ 00020138  0x000047dd beq  0x000000ef , 0x00004ed0 
+ 00020139  0x000047de beq  0x000000f0 , 0x00004ed3 
+ 00020140  0x000047df beq  0x000000f1 , 0x00004ed6 
+ 00020141  0x000047e0 beq  0x000000f2 , 0x00004ed9 
+ 00020142  0x000047e1 beq  0x000000f3 , 0x00004edc 
+ 00020143  0x000047e2 beq  0x000000f4 , 0x00004edf 
+ 00020144  0x000047e3 beq  0x000000f5 , 0x00004ee2 
+ 00020145  0x000047e4 beq  0x000000f6 , 0x00004ee5 
+ 00020146  0x000047e5 beq  0x000000f7 , 0x00004ee8 
+ 00020147  0x000047e6 beq  0x000000f8 , 0x00004eeb 
+ 00020148  0x000047e7 beq  0x000000f9 , 0x00004eee 
+ 00020149  0x000047e8 beq  0x000000fa , 0x00004ef1 
+ 00020150  0x000047e9 beq  0x000000fb , 0x00004ef7 
+ 00020151  0x000047ea beq  0x000000fc , 0x00004efa 
+ 00020152  0x000047eb beq  0x000000fd , 0x00004efd 
+ 00020153  0x000047ec beq  0x000000ff , 0x00004f0c 
+ 00020154  0x000047ed branch  0x00004e89 
+ 00020155  0x000047f0 setarg  0x00000183 
+ 00020156  0x000047f1 store  0x00000002 , 0x00004856 
+ 00020157  0x000047f2 branch  0x00004e89 
+ 00020158  0x000047f4 setarg  0x000000cd 
+ 00020159  0x000047f5 store  0x00000002 , 0x00004856 
+ 00020160  0x000047f6 branch  0x00004e89 
+ 00020161  0x000047f8 setarg  0x000000b7 
+ 00020162  0x000047f9 store  0x00000002 , 0x00004856 
+ 00020163  0x000047fa branch  0x00004e89 
+ 00020164  0x000047fc setarg  0x000000b6 
+ 00020165  0x000047fd store  0x00000002 , 0x00004856 
+ 00020166  0x000047fe branch  0x00004e89 
+ 00020167  0x00004800 setarg  0x000000b5 
+ 00020168  0x00004801 store  0x00000002 , 0x00004856 
+ 00020169  0x00004802 branch  0x00004e89 
+ 00020170  0x00004804 setarg  0x000000ea 
+ 00020171  0x00004805 store  0x00000002 , 0x00004856 
+ 00020172  0x00004806 branch  0x00004e89 
+ 00020173  0x00004808 setarg  0x000000e9 
+ 00020174  0x00004809 store  0x00000002 , 0x00004856 
+ 00020175  0x0000480a branch  0x00004e89 
+ 00020176  0x0000480c setarg  0x000000e2 
+ 00020177  0x0000480d store  0x00000002 , 0x00004856 
+ 00020178  0x0000480e branch  0x00004e89 
+ 00020179  0x00004810 setarg  0x00000194 
+ 00020180  0x00004811 store  0x00000002 , 0x00004856 
+ 00020181  0x00004812 branch  0x00004e89 
+ 00020182  0x00004814 setarg  0x0000018a 
+ 00020183  0x00004815 store  0x00000002 , 0x00004856 
+ 00020184  0x00004816 branch  0x00004e89 
+ 00020185  0x00004818 setarg  0x00000192 
+ 00020186  0x00004819 store  0x00000002 , 0x00004856 
+ 00020187  0x0000481a branch  0x00004e89 
+ 00020188  0x0000481c setarg  0x00000070 
+ 00020189  0x0000481d store  0x00000002 , 0x00004856 
+ 00020190  0x0000481e branch  0x00004e89 
+ 00020191  0x00004820 setarg  0x0000006f 
+ 00020192  0x00004821 store  0x00000002 , 0x00004856 
+ 00020193  0x00004822 branch  0x00004e89 
+ 00020194  0x00004824 setarg  0x0000022a 
+ 00020195  0x00004825 store  0x00000002 , 0x00004856 
+ 00020196  0x00004826 branch  0x00004e89 
+ 00020197  0x00004828 setarg  0x00000225 
+ 00020198  0x00004829 store  0x00000002 , 0x00004856 
+ 00020199  0x0000482a branch  0x00004e89 
+ 00020200  0x0000482c setarg  0x00000224 
+ 00020201  0x0000482d store  0x00000002 , 0x00004856 
+ 00020202  0x0000482e branch  0x00004e89 
+ 00020203  0x00004830 setarg  0x00000226 
+ 00020204  0x00004831 store  0x00000002 , 0x00004856 
+ 00020205  0x00004832 branch  0x00004e89 
+ 00020206  0x00004834 setarg  0x00000227 
+ 00020207  0x00004835 store  0x00000002 , 0x00004856 
+ 00020208  0x00004836 branch  0x00004e89 
+ 00020209  0x00004838 fetch  0x00000001 , 0x000049c6 
+ 00020210  0x00004839 beq  0x00000002 , 0x00004ef7 
+ 00020211  0x0000483a beq  0x00000003 , 0x00004ef7 
+ 00020212  0x0000483b setarg  0x00000221 
+ 00020213  0x0000483c store  0x00000002 , 0x00004856 
+ 00020214  0x0000483d branch  0x00004e89 
+ 00020215  0x0000483f setarg  0x00000223 
+ 00020216  0x00004840 store  0x00000002 , 0x00004856 
+ 00020217  0x00004841 branch  0x00004e89 
+ 00020218  0x00004843 setarg  0x00000030 
+ 00020219  0x00004844 store  0x00000002 , 0x00004856 
+ 00020220  0x00004845 branch  0x00004e89 
+ 00020221  0x00004847 fetch  0x00000001 , 0x000049c6 
+ 00020222  0x00004848 beq  0x00000001 , 0x00004f02 
+ 00020223  0x00004849 setarg  0x000001ae 
+ 00020224  0x0000484a store  0x00000002 , 0x00004856 
+ 00020225  0x0000484b branch  0x00004e89 
+ 00020226  0x0000484d setarg  0x00000307 
+ 00020227  0x0000484e store  0x00000002 , 0x00004856 
+ 00020228  0x0000484f branch  0x00004e89 
+ 00020229  0x00004853 jam  0x00000002 , 0x000048f4 
+ 00020230  0x00004854 fetch  0x00000001 , 0x000048f1 
+ 00020231  0x00004855 call  0x00004e92 , 0x00000034 
+ 00020232  0x00004856 jam  0x00000000 , 0x000049c5 
+ 00020233  0x00004857 setarg  0x00000003 
+ 00020234  0x00004858 store  0x00000003 , 0x00004855 
+ 00020235  0x00004859 branch  0x00004e89 
+ 00020236  0x0000485b jam  0x00000002 , 0x00004855 
+ 00020237  0x0000485c setarg  0x00000002 
+ 00020238  0x0000485d store  0x00000001 , 0x00004856 
+ 00020239  0x0000485e branch  0x00004e89 
+ 00020240  0x00004866 bpatch  0x00000059 , 0x0000400b 
+ 00020241  0x00004867 fetch  0x00000001 , 0x00004666 
+ 00020242  0x00004868 bne  0x00000000 , 0x00004f18 
+ 00020243  0x00004869 jam  0x00000000 , 0x000049a9 
+ 00020244  0x0000486a fetch  0x00000002 , 0x00004855 
+ 00020245  0x0000486b ncall  0x00004afc , 0x00000034 
+ 00020246  0x0000486c fetch  0x00000006 , 0x00004858 
+ 00020247  0x0000486d ncall  0x00004afc , 0x00000034 
+ 00020248  0x00004870 fetch  0x00000001 , 0x00004855 
+ 00020249  0x00004871 beq  0x00000000 , 0x00004f23 
+ 00020250  0x00004872 beq  0x00000001 , 0x00004f1e 
+ 00020251  0x00004873 beq  0x00000003 , 0x00004f2e 
+ 00020252  0x00004874 beq  0x00000002 , 0x00004f36 
+ 00020253  0x00004875 rtn 
+ 00020254  0x00004878 jam  0x00000001 , 0x0000485f 
+ 00020255  0x00004879 arg  0x00004855 , 0x00000006 
+ 00020256  0x0000487a arg  0x00004846 , 0x00000005 
+ 00020257  0x0000487b arg  0x00000007 , 0x00000039 
+ 00020258  0x0000487c branch  0x00007cda 
+ 00020259  0x0000487f jam  0x00000002 , 0x0000485f 
+ 00020260  0x00004880 call  0x00004f3e 
+ 00020261  0x00004881 fetch  0x00000001 , 0x00004666 
+ 00020262  0x00004882 beq  0x00000001 , 0x00004f2a 
+ 00020263  0x00004883 call  0x00004af1 
+ 00020264  0x00004884 fetch  0x00000001 , 0x000049ab 
+ 00020265  0x00004885 store  0x00000001 , 0x00004857 
+ 00020266  0x00004887 arg  0x00004855 , 0x00000006 
+ 00020267  0x00004888 arg  0x0000472a , 0x00000005 
+ 00020268  0x00004889 arg  0x00000009 , 0x00000039 
+ 00020269  0x0000488a branch  0x00007cda 
+ 00020270  0x0000488d jam  0x00000004 , 0x0000485f 
+ 00020271  0x0000488e call  0x00004f3e 
+ 00020272  0x0000488f setarg  0x00000003 
+ 00020273  0x00004890 call  0x00005f15 
+ 00020274  0x00004891 arg  0x00004856 , 0x00000006 
+ 00020275  0x00004892 arg  0x0000472b , 0x00000005 
+ 00020276  0x00004893 arg  0x00000002 , 0x00000039 
+ 00020277  0x00004894 branch  0x00007cda 
+ 00020278  0x00004897 jam  0x00000005 , 0x0000485f 
+ 00020279  0x00004898 call  0x00004f3e 
+ 00020280  0x00004899 setarg  0x00000002 
+ 00020281  0x0000489a store  0x00000008 , 0x0000472a 
+ 00020282  0x0000489b store  0x00000008 , 0x00004733 
+ 00020283  0x0000489c fetch  0x00000001 , 0x00004856 
+ 00020284  0x0000489d store  0x00000001 , 0x0000472b 
+ 00020285  0x0000489e rtn 
+ 00020286  0x000048a2 arg  0x00000012 , 0x00000039 
+ 00020287  0x000048a3 arg  0x0000472a , 0x00000005 
+ 00020288  0x000048a4 branch  0x00007ca1 
+ 00020289  0x000048aa call  0x00007de2 
+ 00020290  0x000048ab call  0x0000561c 
+ 00020291  0x000048ac fetcht  0x00000001 , 0x0000464a 
+ 00020292  0x000048ad call  0x00006eb2 
+ 00020293  0x000048ae fetcht  0x00000001 , 0x0000464b 
+ 00020294  0x000048af call  0x00006eb2 
+ 00020295  0x000048b1 fetcht  0x00000001 , 0x00004655 
+ 00020296  0x000048b2 call  0x00006eb6 
+ 00020297  0x000048b4 fetch  0x00000002 , 0x00004898 
+ 00020298  0x000048b5 copy  0x0000003f , 0x00000012 
+ 00020299  0x000048b6 arg  0x00000014 , 0x00000039 
+ 00020300  0x000048b8 ifetcht  0x00000001 , 0x00000012 
+ 00020301  0x000048b9 isolate1  0x00000007 , 0x00000002 
+ 00020302  0x000048ba ncall  0x00006ef7 , 0x00000001 
+ 00020303  0x000048bb increase  0x00000001 , 0x00000012 
+ 00020304  0x000048bc loop  0x00004f4c 
+ 00020305  0x000048be fetch  0x00000002 , 0x00004896 
+ 00020306  0x000048bf copy  0x0000003f , 0x00000012 
+ 00020307  0x000048c0 arg  0x00000008 , 0x00000039 
+ 00020308  0x000048c2 ifetcht  0x00000001 , 0x00000012 
+ 00020309  0x000048c3 sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00020310  0x000048c4 ncall  0x00006eb2 , 0x00000005 
+ 00020311  0x000048c5 increase  0x00000001 , 0x00000012 
+ 00020312  0x000048c6 loop  0x00004f54 
+ 00020313  0x000048c7 rtn 
+ 00020314  0x000048ca fetch  0x00000001 , 0x000048eb 
+ 00020315  0x000048cb branch  0x00006eb6 , 0x00000034 
+ 00020316  0x000048cc branch  0x00006eb2 
+ 00020317  0x000048ce rtnmark1  0x00000026 
+ 00020318  0x000048cf call  0x00004f41 
+ 00020319  0x000048d0 fetch  0x00000001 , 0x00000015 
+ 00020320  0x000048d1 nrtn  0x00000034 
+ 00020321  0x000048d2 branch  0x00006ed3 
+ 00020322  0x000048d4 bpatch  0x0000005a , 0x0000400b 
+ 00020323  0x000048d5 jam  0x000000ff , 0x00004659 
+ 00020324  0x000048d6 call  0x0000739a 
+ 00020325  0x000048d7 call  0x00004f70 
+ 00020326  0x000048d8 call  0x000056a9 
+ 00020327  0x000048d9 call  0x000054dc 
+ 00020328  0x000048da call  0x00005d9e 
+ 00020329  0x000048db fetcht  0x00000001 , 0x00004659 
+ 00020330  0x000048dc branch  0x00006ed3 
+ 00020331  0x000048df call  0x00004f70 
+ 00020332  0x000048e1 bpatch  0x0000005b , 0x0000400b 
+ 00020333  0x000048e2 call  0x00004f75 
+ 00020334  0x000048e3 call  0x00007d7c 
+ 00020335  0x000048e4 branch  0x00004327 
+ 00020336  0x000048e7 bpatch  0x0000005c , 0x0000400b 
+ 00020337  0x000048e8 call  0x00004b6d 
+ 00020338  0x000048e9 call  0x00004b71 
+ 00020339  0x000048ea call  0x00004b7c 
+ 00020340  0x000048eb branch  0x00004b6f 
+ 00020341  0x000048f3 bpatch  0x0000005d , 0x0000400b 
+ 00020342  0x000048f4 call  0x00007de2 
+ 00020343  0x000048f5 call  0x00004f70 
+ 00020344  0x000048f6 call  0x00005a92 
+ 00020345  0x000048f7 call  0x00004f41 
+ 00020346  0x000048f8 call  0x000054f9 
+ 00020347  0x000048f9 fetcht  0x00000001 , 0x0000465b 
+ 00020348  0x000048fa call  0x000055b5 
+ 00020349  0x000048fb call  0x000055b9 
+ 00020350  0x000048fc branch  0x000054f2 
+ 00020351  0x00004909 fetch  0x00000002 , 0x000045e0 
+ 00020352  0x0000490a and_into  0x000000e0 , 0x0000003f 
+ 00020353  0x0000490b branch  0x00004f86 , 0x00000034 
+ 00020354  0x0000490c fetch  0x00000002 , 0x000045e0 
+ 00020355  0x0000490d increase  0x00000001 , 0x0000003f 
+ 00020356  0x0000490e store  0x00000002 , 0x000045e0 
+ 00020357  0x0000490f rtn 
+ 00020358  0x00004911 call  0x0000357f 
+ 00020359  0x00004912 call  0x00003651 
+ 00020360  0x00004913 nbranch  0x00003586 , 0x00000018 
+ 00020361  0x00004914 nbranch  0x00003586 , 0x0000002f 
+ 00020362  0x00004915 call  0x00005028 
+ 00020363  0x00004916 branch  0x0000356a 
+ 00020364  0x0000491c call  0x00003625 
+ 00020365  0x0000491d nbranch  0x00004f91 , 0x00000028 
+ 00020366  0x0000491f call  0x00004fa0 
+ 00020367  0x00004920 call  0x00004fd5 
+ 00020368  0x00004921 branch  0x00004fdb 
+ 00020369  0x00004924 fetch  0x00000008 , 0x0000489c 
+ 00020370  0x00004925 nbranch  0x00004f8e , 0x00000034 
+ 00020371  0x00004926 fetch  0x00000008 , 0x000048a4 
+ 00020372  0x00004927 nbranch  0x00004f8e , 0x00000034 
+ 00020373  0x00004928 fetch  0x00000004 , 0x000048ac 
+ 00020374  0x00004929 nbranch  0x00004f8e , 0x00000034 
+ 00020375  0x0000492b fetch  0x00000001 , 0x00004618 
+ 00020376  0x0000492c rtneq  0x00000001 
+ 00020377  0x0000492d call  0x0000369d 
+ 00020378  0x0000492f call  0x00004fc8 
+ 00020379  0x00004930 nrtn  0x00000028 
+ 00020380  0x00004931 fetch  0x00000001 , 0x0000473f 
+ 00020381  0x00004932 ncall  0x00004f75 , 0x00000034 
+ 00020382  0x00004933 fetch  0x00000004 , 0x000045af 
+ 00020383  0x00004934 branch  0x00003622 
+ 00020384  0x00004937 bpatch  0x0000005e , 0x0000400b 
+ 00020385  0x00004938 jam  0x00000000 , 0x00004601 
+ 00020386  0x0000493a fetchr  0x0000000b , 0x00000002 , 0x00000040 
+ 00020387  0x0000493b until  0x00000023 , 0x00000026 
+ 00020388  0x0000493c call  0x00004df5 
+ 00020389  0x0000493d fetch  0x00000001 , 0x000049a3 
+ 00020390  0x0000493e nbranch  0x00005ed1 , 0x00000034 
+ 00020391  0x0000493f call  0x00003651 
+ 00020392  0x00004940 fetch  0x00000001 , 0x0000457f 
+ 00020393  0x00004941 beq  0x00000001 , 0x00003646 
+ 00020394  0x00004942 nbranch  0x00004faf , 0x00000018 
+ 00020395  0x00004943 nbranch  0x00004faf , 0x0000002f 
+ 00020396  0x00004944 call  0x00005028 
+ 00020397  0x00004945 jam  0x00000000 , 0x0000473f 
+ 00020398  0x00004946 branch  0x00003646 
+ 00020399  0x0000494a fetch  0x00000001 , 0x00004602 
+ 00020400  0x0000494b nrtn  0x00000034 
+ 00020401  0x0000494c fetch  0x00000002 , 0x000045fe 
+ 00020402  0x0000494d increase  0x00000001 , 0x0000003f 
+ 00020403  0x0000494e store  0x00000002 , 0x000045fe 
+ 00020404  0x0000494f fetch  0x00000001 , 0x000045fe 
+ 00020405  0x00004950 beq  0x000000ff , 0x00003676 
+ 00020406  0x00004951 call  0x00004fb8 
+ 00020407  0x00004952 branch  0x00004fa2 
+ 00020408  0x00004956 fetcht  0x00000001 , 0x00004601 
+ 00020409  0x00004957 sub  0x00000002 , 0x00000014 , 0x0000003e 
+ 00020410  0x00004958 branch  0x00004fbe , 0x00000002 
+ 00020411  0x00004959 arg  0x00000019 , 0x00000039 
+ 00020412  0x0000495a call  0x00007c96 
+ 00020413  0x0000495b branch  0x00003694 
+ 00020414  0x0000495e increase  0x00000001 , 0x00000002 
+ 00020415  0x0000495f storet  0x00000001 , 0x00004601 
+ 00020416  0x00004960 fetch  0x00000004 , 0x0000458f 
+ 00020417  0x00004961 fetcht  0x00000004 , 0x000045e4 
+ 00020418  0x00004962 isub  0x00000002 , 0x0000003e 
+ 00020419  0x00004963 branch  0x00003222 , 0x00000005 
+ 00020420  0x00004964 fetch  0x00000001 , 0x00004601 
+ 00020421  0x00004965 sub  0x0000003f , 0x00000003 , 0x0000003e 
+ 00020422  0x00004966 rtn  0x00000002 
+ 00020423  0x00004967 branch  0x0000369a 
+ 00020424  0x0000496b enable  0x00000028 
+ 00020425  0x0000496c call  0x00002408 
+ 00020426  0x0000496d fetch  0x00000003 , 0x000040bd 
+ 00020427  0x0000496e branch  0x00007dbc , 0x00000034 
+ 00020428  0x0000496f fetch  0x00000001 , 0x000049a1 
+ 00020429  0x00004970 nbranch  0x00007dbc , 0x00000034 
+ 00020430  0x00004971 fetch  0x00000001 , 0x000049a2 
+ 00020431  0x00004972 nbranch  0x00007dbc , 0x00000034 
+ 00020432  0x00004973 fetch  0x00000001 , 0x000049c4 
+ 00020433  0x00004974 nbranch  0x00007dbc , 0x00000034 
+ 00020434  0x00004975 fetch  0x00000001 , 0x00004618 
+ 00020435  0x00004976 beq  0x00000001 , 0x00007dbc 
+ 00020436  0x00004977 branch  0x000036b9 
+ 00020437  0x0000497a fetch  0x00000004 , 0x0000458f 
+ 00020438  0x0000497b fetcht  0x00000004 , 0x000045e4 
+ 00020439  0x0000497c isub  0x00000002 , 0x0000003e 
+ 00020440  0x0000497d nbranch  0x000036e9 , 0x00000005 
+ 00020441  0x0000497e jam  0x0000009e , 0x00004141 
+ 00020442  0x0000497f rtn 
+ 00020443  0x00004981 fetch  0x00000008 , 0x0000460b 
+ 00020444  0x00004982 store  0x00000008 , 0x000045af 
+ 00020445  0x00004983 fetch  0x00000002 , 0x0000461d 
+ 00020446  0x00004984 store  0x00000002 , 0x0000461f 
+ 00020447  0x00004986 bpatch  0x0000005f , 0x0000400b 
+ 00020448  0x00004987 call  0x000036b4 
+ 00020449  0x00004988 nrtn  0x00000028 
+ 00020450  0x00004989 call  0x00007de2 
+ 00020451  0x0000498a fetch  0x00000003 , 0x00004608 
+ 00020452  0x0000498b branch  0x00003622 
+ 00020453  0x00004994 rtnmark0  0x00000026 
+ 00020454  0x00004995 call  0x00004e47 
+ 00020455  0x00004996 nrtn  0x00000028 
+ 00020456  0x00004997 fetch  0x00000008 , 0x00004713 
+ 00020457  0x00004998 bbit0  0x00000016 , 0x000060a1 
+ 00020458  0x00004999 fetch  0x00000001 , 0x0000496c 
+ 00020459  0x0000499a nbranch  0x00004fed , 0x00000034 
+ 00020460  0x0000499b branch  0x000060a1 
+ 00020461  0x0000499e jam  0x00000002 , 0x00004589 
+ 00020462  0x0000499f arg  0x00000009 , 0x00000011 
+ 00020463  0x000049a0 fetch  0x00000001 , 0x0000496d 
+ 00020464  0x000049a1 nbranch  0x00004ff3 , 0x00000034 
+ 00020465  0x000049a2 arg  0x00004733 , 0x00000012 
+ 00020466  0x000049a3 rtn 
+ 00020467  0x000049a5 arg  0x0000472a , 0x00000012 
+ 00020468  0x000049a6 rtn 
+ 00020469  0x000049ac setarg  0x00000000 
+ 00020470  0x000049ad store  0x00000003 , 0x000046f8 
+ 00020471  0x000049ae rtn 
+ 00020472  0x000049b1 bpatch  0x00000060 , 0x0000400c 
+ 00020473  0x000049b2 fetch  0x00000008 , 0x00004713 
+ 00020474  0x000049b3 rtnbit0  0x0000000e 
+ 00020475  0x000049b4 fetch  0x00000001 , 0x0000477d 
+ 00020476  0x000049b5 rtn  0x00000034 
+ 00020477  0x000049b6 fetch  0x00000001 , 0x00004602 
+ 00020478  0x000049b7 rtn  0x00000034 
+ 00020479  0x000049b8 fetch  0x00000001 , 0x000046f5 
+ 00020480  0x000049b9 increase  0x00000001 , 0x0000003f 
+ 00020481  0x000049ba and_into  0x00000003 , 0x0000003f 
+ 00020482  0x000049bb store  0x00000001 , 0x000046f5 
+ 00020483  0x000049bc nrtn  0x00000034 
+ 00020484  0x000049bd jam  0x00000000 , 0x000046f6 
+ 00020485  0x000049c0 fetch  0x00000001 , 0x000046f6 
+ 00020486  0x000049c1 increase  0x00000001 , 0x0000003f 
+ 00020487  0x000049c2 store  0x00000001 , 0x000046f6 
+ 00020488  0x000049c3 sub  0x0000003f , 0x00000008 , 0x0000003e 
+ 00020489  0x000049c4 nbranch  0x00005010 , 0x00000002 
+ 00020490  0x000049c5 call  0x0000357f 
+ 00020491  0x000049c6 call  0x00003651 
+ 00020492  0x000049c7 nbranch  0x00005016 , 0x00000018 
+ 00020493  0x000049c8 nbranch  0x00005016 , 0x0000002f 
+ 00020494  0x000049c9 call  0x00005028 
+ 00020495  0x000049ca call  0x00005020 
+ 00020496  0x000049cc call  0x0000357b 
+ 00020497  0x000049cd fetch  0x00000001 , 0x000046f7 
+ 00020498  0x000049ce increase  0x00000001 , 0x0000003f 
+ 00020499  0x000049cf store  0x00000001 , 0x000046f7 
+ 00020500  0x000049d0 beq  0x00000010 , 0x00005018 
+ 00020501  0x000049d1 rtn 
+ 00020502  0x000049d4 call  0x00003222 
+ 00020503  0x000049d5 branch  0x00005005 
+ 00020504  0x000049d8 jam  0x00000000 , 0x000046f7 
+ 00020505  0x000049d9 fetch  0x00000001 , 0x000046f8 
+ 00020506  0x000049da rtnbit1  0x00000000 
+ 00020507  0x000049db set1  0x00000000 , 0x0000003f 
+ 00020508  0x000049dc store  0x00000001 , 0x000046f8 
+ 00020509  0x000049dd fetch  0x00000002 , 0x00004723 
+ 00020510  0x000049de store  0x00000002 , 0x00004781 
+ 00020511  0x000049df rtn 
+ 00020512  0x000049e3 fetch  0x00000001 , 0x00004602 
+ 00020513  0x000049e4 branch  0x00004ff5 , 0x00000034 
+ 00020514  0x000049e5 jam  0x00000000 , 0x000046f7 
+ 00020515  0x000049e6 fetch  0x00000001 , 0x000046f8 
+ 00020516  0x000049e7 rtnbit0  0x00000000 
+ 00020517  0x000049e8 set0  0x00000000 , 0x0000003f 
+ 00020518  0x000049e9 store  0x00000001 , 0x000046f8 
+ 00020519  0x000049ea branch  0x00005c0b 
+ 00020520  0x000049ee call  0x0000366e 
+ 00020521  0x000049ef fetch  0x00000001 , 0x000044f8 
+ 00020522  0x000049f0 compare  0x00000008 , 0x0000003f , 0x000000f8 
+ 00020523  0x000049f1 nrtn  0x00000001 
+ 00020524  0x000049f2 fetch  0x00000001 , 0x000044f9 
+ 00020525  0x000049f3 beq  0x000000ff , 0x00004b11 
+ 00020526  0x000049f4 rtn 
+ 00020527  0x000049fa jam  0x00000001 , 0x000049f1 
+ 00020528  0x000049fb arg  0x00000017 , 0x00000011 
+ 00020529  0x000049fc arg  0x00000004 , 0x00000012 
+ 00020530  0x000049fd call  0x000029fb 
+ 00020531  0x000049fe setarg  0x00000006 
+ 00020532  0x000049ff istore  0x00000001 , 0x00000005 
+ 00020533  0x00004a00 setarg  0x00000001 
+ 00020534  0x00004a01 istore  0x00000002 , 0x00000005 
+ 00020535  0x00004a02 setarg  0x0000ffff 
+ 00020536  0x00004a03 istore  0x00000002 , 0x00000005 
+ 00020537  0x00004a04 setarg  0x00002800 
+ 00020538  0x00004a05 istore  0x00000002 , 0x00000005 
+ 00020539  0x00004a06 arg  0x000049e1 , 0x00000006 
+ 00020540  0x00004a07 branch  0x00007c8f 
+ 00020541  0x00004a09 bpatch  0x00000061 , 0x0000400c 
+ 00020542  0x00004a0a fetch  0x00000001 , 0x000049f1 
+ 00020543  0x00004a0b rtn  0x00000034 
+ 00020544  0x00004a0c copy  0x00000011 , 0x00000006 
+ 00020545  0x00004a0d ifetch  0x00000003 , 0x00000006 
+ 00020546  0x00004a0e store  0x00000003 , 0x00004397 
+ 00020547  0x00004a0f beq  0x0000000b , 0x00005091 
+ 00020548  0x00004a10 beq  0x00000009 , 0x00005078 
+ 00020549  0x00004a11 beq  0x00000007 , 0x00005048 
+ 00020550  0x00004a12 beq  0x00000001 , 0x0000505b 
+ 00020551  0x00004a13 branch  0x00002b96 
+ 00020552  0x00004a16 fetch  0x00000001 , 0x000049f1 
+ 00020553  0x00004a17 beq  0x00000002 , 0x0000506c 
+ 00020554  0x00004a19 jam  0x00000002 , 0x000049c6 
+ 00020555  0x00004a1a branch  0x00005050 
+ 00020556  0x00004a1d fetch  0x00000001 , 0x000042cb 
+ 00020557  0x00004a1e store  0x00000001 , 0x000049c6 
+ 00020558  0x00004a1f branch  0x00005050 
+ 00020559  0x00004a21 jam  0x00000003 , 0x000049c6 
+ 00020560  0x00004a23 jam  0x00000000 , 0x000049f1 
+ 00020561  0x00004a24 fetcht  0x00000002 , 0x000049df 
+ 00020562  0x00004a25 setarg  0x00001fd0 
+ 00020563  0x00004a26 isub  0x00000002 , 0x00000012 
+ 00020564  0x00004a27 arg  0x000049c6 , 0x00000011 
+ 00020565  0x00004a29 arg  0x00000001 , 0x00000039 
+ 00020566  0x00004a2a call  0x00006b45 
+ 00020567  0x00004a2b fetcht  0x00000002 , 0x000049df 
+ 00020568  0x00004a2c increase  0x0000000e , 0x00000002 
+ 00020569  0x00004a2d storet  0x00000002 , 0x000049df 
+ 00020570  0x00004a2e rtn 
+ 00020571  0x00004a33 fetch  0x00000001 , 0x000049f1 
+ 00020572  0x00004a34 beq  0x00000002 , 0x0000504c 
+ 00020573  0x00004a35 jam  0x00000002 , 0x000049f1 
+ 00020574  0x00004a36 arg  0x00000009 , 0x00000011 
+ 00020575  0x00004a37 arg  0x00000004 , 0x00000012 
+ 00020576  0x00004a38 call  0x000029fb 
+ 00020577  0x00004a39 setarg  0x00000006 
+ 00020578  0x00004a3a istore  0x00000001 , 0x00000005 
+ 00020579  0x00004a3b setarg  0x00000001 
+ 00020580  0x00004a3c istore  0x00000002 , 0x00000005 
+ 00020581  0x00004a3d setarg  0x0000ffff 
+ 00020582  0x00004a3e istore  0x00000002 , 0x00000005 
+ 00020583  0x00004a3f setarg  0x00002800 
+ 00020584  0x00004a40 istore  0x00000002 , 0x00000005 
+ 00020585  0x00004a41 arg  0x00000002 , 0x00000039 
+ 00020586  0x00004a42 arg  0x000049f2 , 0x00000006 
+ 00020587  0x00004a43 branch  0x00007cda 
+ 00020588  0x00004a46 arg  0x00000007 , 0x00000011 
+ 00020589  0x00004a47 arg  0x00000004 , 0x00000012 
+ 00020590  0x00004a48 call  0x000029fb 
+ 00020591  0x00004a49 setarg  0x00000008 
+ 00020592  0x00004a4a istore  0x00000001 , 0x00000005 
+ 00020593  0x00004a4b fetcht  0x00000002 , 0x00004339 
+ 00020594  0x00004a4c increase  0x00000005 , 0x00000002 
+ 00020595  0x00004a4d ifetch  0x00000004 , 0x00000002 
+ 00020596  0x00004a4e istore  0x00000004 , 0x00000005 
+ 00020597  0x00004a4f setarg  0x00002803 
+ 00020598  0x00004a50 istore  0x00000002 , 0x00000005 
+ 00020599  0x00004a51 rtn 
+ 00020600  0x00004a54 fetch  0x00000002 , 0x00004335 
+ 00020601  0x00004a55 increase  0xfffffffe , 0x0000003f 
+ 00020602  0x00004a56 div  0x0000003f , 0x00000007 
+ 00020603  0x00004a57 call  0x00007d62 
+ 00020604  0x00004a58 quotient  0x00000039 
+ 00020605  0x00004a59 fetch  0x00000002 , 0x00004339 
+ 00020606  0x00004a5a add  0x0000003f , 0x00000006 , 0x00000006 
+ 00020607  0x00004a5b branch  0x00005080 
+ 00020608  0x00004a5e increase  0x00000003 , 0x00000006 
+ 00020609  0x00004a5f ifetch  0x00000002 , 0x00000006 
+ 00020610  0x00004a60 copy  0x0000003f , 0x00000013 
+ 00020611  0x00004a61 ifetch  0x00000002 , 0x00000006 
+ 00020612  0x00004a62 arg  0x00002a29 , 0x00000002 
+ 00020613  0x00004a63 isub  0x00000002 , 0x0000003e 
+ 00020614  0x00004a64 branch  0x00005089 , 0x00000005 
+ 00020615  0x00004a65 loop  0x00005080 
+ 00020616  0x00004a66 branch  0x0000504c 
+ 00020617  0x00004a68 arg  0x00000003 , 0x00000011 
+ 00020618  0x00004a69 arg  0x00000004 , 0x00000012 
+ 00020619  0x00004a6a call  0x000029fb 
+ 00020620  0x00004a6b setarg  0x0000000a 
+ 00020621  0x00004a6c istore  0x00000001 , 0x00000005 
+ 00020622  0x00004a6d copy  0x00000013 , 0x0000003f 
+ 00020623  0x00004a6e istore  0x00000002 , 0x00000005 
+ 00020624  0x00004a6f rtn 
+ 00020625  0x00004a72 fetch  0x00000002 , 0x00004335 
+ 00020626  0x00004a73 arg  0x00000009 , 0x00000039 
+ 00020627  0x00004a74 fetch  0x00000002 , 0x00004339 
+ 00020628  0x00004a75 add  0x0000003f , 0x00000005 , 0x00000011 
+ 00020629  0x00004a76 arg  0x000049f4 , 0x00000012 
+ 00020630  0x00004a77 call  0x00007d64 
+ 00020631  0x00004a78 branch  0x0000504f , 0x00000005 
+ 00020632  0x00004a79 branch  0x0000504c 
+ 00020633  0x00004a82 branch  0x000050bd , 0x0000002b 
+ 00020634  0x00004a83 call  0x00002952 
+ 00020635  0x00004a84 setarg  0x000050c7 
+ 00020636  0x00004a85 store  0x00000002 , 0x000043db 
+ 00020637  0x00004a86 setarg  0x000050ca 
+ 00020638  0x00004a87 store  0x00000002 , 0x000043dd 
+ 00020639  0x00004a88 setarg  0x000050c3 
+ 00020640  0x00004a89 store  0x00000002 , 0x000043d3 
+ 00020641  0x00004a8a setarg  0x00005180 
+ 00020642  0x00004a8b store  0x00000002 , 0x000043e1 
+ 00020643  0x00004a8c setarg  0x000053b0 
+ 00020644  0x00004a8d store  0x00000002 , 0x000043df 
+ 00020645  0x00004a8e setarg  0x000053c1 
+ 00020646  0x00004a8f store  0x00000002 , 0x000043e3 
+ 00020647  0x00004a91 bpatch  0x00000062 , 0x0000400c 
+ 00020648  0x00004a92 call  0x000050ab 
+ 00020649  0x00004a93 call  0x000050be 
+ 00020650  0x00004a94 branch  0x0000533b 
+ 00020651  0x00004a97 fetch  0x00000001 , 0x00008060 
+ 00020652  0x00004a98 set0  0x00000000 , 0x0000003f 
+ 00020653  0x00004a99 store  0x00000001 , 0x00008060 
+ 00020654  0x00004a9a fetch  0x00000008 , 0x00004500 
+ 00020655  0x00004a9b call  0x00006d68 
+ 00020656  0x00004a9c fetch  0x00000002 , 0x00004508 
+ 00020657  0x00004a9d call  0x00006d73 
+ 00020658  0x00004a9e call  0x00006d82 
+ 00020659  0x00004a9f jam  0x00000008 , 0x00008077 
+ 00020660  0x00004aa0 jam  0x00000049 , 0x00008076 
+ 00020661  0x00004aa1 jam  0x0000000a , 0x00008079 
+ 00020662  0x00004aa2 jam  0x0000000b , 0x0000807a 
+ 00020663  0x00004aa4 arg  0x00000081 , 0x00000002 
+ 00020664  0x00004aa5 fetch  0x00000002 , 0x0000450f 
+ 00020665  0x00004aa6 isolate1  0x00000000 , 0x0000003f 
+ 00020666  0x00004aa7 setflag  0x00000001 , 0x00000004 , 0x00000002 
+ 00020667  0x00004aa8 storet  0x00000001 , 0x00008060 
+ 00020668  0x00004aa9 rtn 
+ 00020669  0x00004aac branch  0x000050ab 
+ 00020670  0x00004ab1 fetcht  0x00000001 , 0x000044f5 
+ 00020671  0x00004ab2 call  0x00006ef7 
+ 00020672  0x00004ab3 call  0x000050ed 
+ 00020673  0x00004ab4 fetcht  0x00000001 , 0x000044f3 
+ 00020674  0x00004ab5 branch  0x00006edd 
+ 00020675  0x00004ab8 fetcht  0x00000001 , 0x000044f3 
+ 00020676  0x00004ab9 call  0x00006ee6 
+ 00020677  0x00004aba nbranch  0x0000430a , 0x00000001 
+ 00020678  0x00004abb branch  0x00004308 
+ 00020679  0x00004abf call  0x000069a9 
+ 00020680  0x00004ac0 nrtn  0x00000034 
+ 00020681  0x00004ac1 branch  0x000050ef 
+ 00020682  0x00004ac5 copy  0x00000013 , 0x0000003f 
+ 00020683  0x00004ac6 beq  0x00000014 , 0x000050dc 
+ 00020684  0x00004ac7 beq  0x00000015 , 0x000050d8 
+ 00020685  0x00004ac8 beq  0x00000030 , 0x00005375 
+ 00020686  0x00004ac9 beq  0x00000031 , 0x00005377 
+ 00020687  0x00004aca beq  0x00000032 , 0x00005381 
+ 00020688  0x00004acb beq  0x00000033 , 0x0000537f 
+ 00020689  0x00004acc beq  0x00000034 , 0x0000536f 
+ 00020690  0x00004acd beq  0x0000003d , 0x0000534f 
+ 00020691  0x00004ace beq  0x00000041 , 0x000050e2 
+ 00020692  0x00004acf beq  0x00000042 , 0x000050e4 
+ 00020693  0x00004ad0 beq  0x00000043 , 0x0000536d 
+ 00020694  0x00004ad1 beq  0x0000003b , 0x00005358 
+ 00020695  0x00004ad2 rtn 
+ 00020696  0x00004ad7 call  0x000029cb 
+ 00020697  0x00004ad8 jam  0x00000000 , 0x00004511 
+ 00020698  0x00004ad9 call  0x000050e0 
+ 00020699  0x00004ada branch  0x00005321 
+ 00020700  0x00004ae1 call  0x000050e7 
+ 00020701  0x00004ae2 fetch  0x00000001 , 0x000044fe 
+ 00020702  0x00004ae3 store  0x00000001 , 0x000040c0 
+ 00020703  0x00004ae4 branch  0x0000531f 
+ 00020704  0x00004ae9 call  0x00005149 
+ 00020705  0x00004aea branch  0x000050e5 
+ 00020706  0x00004aee call  0x000030f3 
+ 00020707  0x00004aef branch  0x00002ed5 
+ 00020708  0x00004af2 branch  0x00005391 
+ 00020709  0x00004af6 fetcht  0x00000001 , 0x000044f5 
+ 00020710  0x00004af7 branch  0x00006ef7 
+ 00020711  0x00004afa call  0x000050e9 
+ 00020712  0x00004afb branch  0x000050ed 
+ 00020713  0x00004afe fetch  0x00000001 , 0x000044f8 
+ 00020714  0x00004aff isolate1  0x00000001 , 0x0000003f 
+ 00020715  0x00004b00 call  0x00004315 , 0x00000001 
+ 00020716  0x00004b01 rtn 
+ 00020717  0x00004b03 fetcht  0x00000001 , 0x000044f5 
+ 00020718  0x00004b04 branch  0x00006ef3 
+ 00020719  0x00004b08 fetch  0x00000001 , 0x0000810b 
+ 00020720  0x00004b09 rtnbit1  0x00000002 
+ 00020721  0x00004b0a call  0x00006d96 
+ 00020722  0x00004b0b ifetch  0x00000001 , 0x00000003 
+ 00020723  0x00004b0c bne  0x00000001 , 0x00005105 
+ 00020724  0x00004b0d fetch  0x00000002 , 0x00008112 
+ 00020725  0x00004b0e sub  0x0000003f , 0x00000002 , 0x0000003e 
+ 00020726  0x00004b0f rtn  0x00000002 
+ 00020727  0x00004b10 ifetch  0x00000001 , 0x00000003 
+ 00020728  0x00004b11 store  0x00000001 , 0x000006e2 
+ 00020729  0x00004b12 ifetcht  0x00000001 , 0x00000003 
+ 00020730  0x00004b13 copy  0x00000003 , 0x00000011 
+ 00020731  0x00004b14 storet  0x00000001 , 0x000006e3 
+ 00020732  0x00004b15 add  0x00000002 , 0x00000003 , 0x00000002 
+ 00020733  0x00004b16 fetch  0x00000002 , 0x00008112 
+ 00020734  0x00004b17 isub  0x00000002 , 0x00000002 
+ 00020735  0x00004b18 nrtn  0x00000002 
+ 00020736  0x00004b19 jam  0x00000001 , 0x000006e4 
+ 00020737  0x00004b1a call  0x00005113 
+ 00020738  0x00004b1b fetch  0x00000001 , 0x000006e4 
+ 00020739  0x00004b1c rtneq  0x00000000 
+ 00020740  0x00004b1d branch  0x0000510e 
+ 00020741  0x00004b20 call  0x00007c95 
+ 00020742  0x00004b21 call  0x0000535e 
+ 00020743  0x00004b22 branch  0x00005108 
+ 00020744  0x00004b26 bpatch  0x00000063 , 0x0000400c 
+ 00020745  0x00004b27 call  0x00006d96 
+ 00020746  0x00004b28 fetch  0x00000002 , 0x00008112 
+ 00020747  0x00004b29 rtn  0x00000034 
+ 00020748  0x00004b2a iadd  0x00000003 , 0x00000003 
+ 00020749  0x00004b2b branch  0x00005112 
+ 00020750  0x00004b2e call  0x00006d96 
+ 00020751  0x00004b2f increase  0x00000002 , 0x00000003 
+ 00020752  0x00004b30 ifetch  0x00000001 , 0x00000003 
+ 00020753  0x00004b31 iadd  0x00000003 , 0x00000003 
+ 00020754  0x00004b33 branch  0x00006d9c 
+ 00020755  0x00004b37 bpatch  0x00000064 , 0x0000400c 
+ 00020756  0x00004b38 fetch  0x00000001 , 0x000006e2 
+ 00020757  0x00004b39 beq  0x00000001 , 0x0000513d 
+ 00020758  0x00004b3a beq  0x00000002 , 0x00005142 
+ 00020759  0x00004b3b beq  0x00000004 , 0x00005150 
+ 00020760  0x00004b3c beq  0x00000009 , 0x00005154 
+ 00020761  0x00004b3d beq  0x0000000b , 0x000051ab 
+ 00020762  0x00004b3e beq  0x0000000e , 0x000051ac 
+ 00020763  0x00004b3f beq  0x0000000f , 0x000051b4 
+ 00020764  0x00004b40 beq  0x00000010 , 0x000051bc 
+ 00020765  0x00004b41 beq  0x00000012 , 0x000051c0 
+ 00020766  0x00004b42 beq  0x00000026 , 0x000051c4 
+ 00020767  0x00004b43 beq  0x00000028 , 0x000051c9 
+ 00020768  0x00004b44 beq  0x0000002a , 0x000051cc 
+ 00020769  0x00004b45 beq  0x0000002b , 0x000051ff 
+ 00020770  0x00004b46 beq  0x0000002c , 0x00005205 
+ 00020771  0x00004b47 beq  0x00000030 , 0x0000520c 
+ 00020772  0x00004b48 beq  0x00000031 , 0x00005211 
+ 00020773  0x00004b49 beq  0x00000032 , 0x00005222 
+ 00020774  0x00004b4a beq  0x00000033 , 0x0000522d 
+ 00020775  0x00004b4b beq  0x00000034 , 0x0000525a 
+ 00020776  0x00004b4c beq  0x00000035 , 0x0000525d 
+ 00020777  0x00004b4d beq  0x00000036 , 0x00005266 
+ 00020778  0x00004b4e beq  0x00000037 , 0x0000526f 
+ 00020779  0x00004b4f beq  0x00000038 , 0x00005275 
+ 00020780  0x00004b50 beq  0x00000040 , 0x0000527d 
+ 00020781  0x00004b51 beq  0x00000042 , 0x00005287 
+ 00020782  0x00004b52 beq  0x00000048 , 0x0000528c 
+ 00020783  0x00004b54 beq  0x00000051 , 0x00005297 
+ 00020784  0x00004b55 beq  0x00000061 , 0x0000529b 
+ 00020785  0x00004b56 beq  0x00000076 , 0x000052aa 
+ 00020786  0x00004b57 beq  0x00000077 , 0x000052b0 
+ 00020787  0x00004b58 beq  0x00000078 , 0x000052b5 
+ 00020788  0x00004b59 beq  0x0000007a , 0x000052eb 
+ 00020789  0x00004b5a beq  0x0000007b , 0x000052f9 
+ 00020790  0x00004b5b beq  0x00000090 , 0x000052ff 
+ 00020791  0x00004b5c beq  0x00000091 , 0x00005304 
+ 00020792  0x00004b5d beq  0x00000092 , 0x00005308 
+ 00020793  0x00004b5e beq  0x00000093 , 0x0000530d 
+ 00020794  0x00004b5f beq  0x00000094 , 0x00005311 
+ 00020795  0x00004b60 beq  0x000000ff , 0x00005317 
+ 00020796  0x00004b61 branch  0x00005319 
+ 00020797  0x00004b68 fetch  0x00000001 , 0x000006e3 
+ 00020798  0x00004b69 bne  0x00000006 , 0x00005319 
+ 00020799  0x00004b6a ifetch  0x00000006 , 0x00000003 
+ 00020800  0x00004b6b store  0x00000006 , 0x000042db 
+ 00020801  0x00004b6c branch  0x0000531c 
+ 00020802  0x00004b71 fetch  0x00000001 , 0x000006e3 
+ 00020803  0x00004b72 bne  0x00000001 , 0x00005319 
+ 00020804  0x00004b73 ifetcht  0x00000001 , 0x00000003 
+ 00020805  0x00004b74 storet  0x00000001 , 0x000044ff 
+ 00020806  0x00004b75 call  0x0000531c 
+ 00020807  0x00004b76 fetch  0x00000002 , 0x000044e9 
+ 00020808  0x00004b77 rtnbit1  0x00000009 
+ 00020809  0x00004b7b fetch  0x00000001 , 0x000044f8 
+ 00020810  0x00004b7c isolate1  0x00000001 , 0x0000003f 
+ 00020811  0x00004b7d nrtn  0x00000001 
+ 00020812  0x00004b7e fetcht  0x00000001 , 0x000044ff 
+ 00020813  0x00004b7f isolate1  0x00000002 , 0x00000002 
+ 00020814  0x00004b80 branch  0x00004317 , 0x00000001 
+ 00020815  0x00004b81 branch  0x00004315 
+ 00020816  0x00004b87 arg  0x0000001d , 0x0000003f 
+ 00020817  0x00004b88 arg  0x0000426b , 0x00000005 
+ 00020818  0x00004b89 call  0x00005260 
+ 00020819  0x00004b8a branch  0x00002952 
+ 00020820  0x00004b90 fetch  0x00000002 , 0x000044e9 
+ 00020821  0x00004b91 bbit0  0x00000009 , 0x00005319 
+ 00020822  0x00004b92 call  0x000051a8 
+ 00020823  0x00004b93 branch  0x00005319 , 0x00000028 
+ 00020824  0x00004b94 jam  0x00000000 , 0x000006e4 
+ 00020825  0x00004b95 fetch  0x00000002 , 0x0000450f 
+ 00020826  0x00004b96 bbit1  0x00000008 , 0x00005179 
+ 00020827  0x00004b97 fetch  0x00000001 , 0x00004511 
+ 00020828  0x00004b98 nrtn  0x00000034 
+ 00020829  0x00004b99 jam  0x00000001 , 0x000006e4 
+ 00020830  0x00004b9a ifetch  0x00000002 , 0x00000003 
+ 00020831  0x00004b9b store  0x00000002 , 0x00004512 
+ 00020832  0x00004b9c storer  0x00000003 , 0x00000002 , 0x00004514 
+ 00020833  0x00004b9d fetch  0x00000001 , 0x000006e3 
+ 00020834  0x00004b9e pincrease  0xfffffffe 
+ 00020835  0x00004b9f nbranch  0x00005319 , 0x00000002 
+ 00020836  0x00004ba0 branch  0x00005319 , 0x00000005 
+ 00020837  0x00004ba1 store  0x00000001 , 0x00004511 
+ 00020838  0x00004ba2 fetcht  0x00000002 , 0x00004512 
+ 00020839  0x00004ba3 increase  0xffffffff , 0x00000002 
+ 00020840  0x00004ba4 call  0x00002cd2 
+ 00020841  0x00004ba5 branch  0x0000517c , 0x00000034 
+ 00020842  0x00004ba6 ifetcht  0x00000004 , 0x00000006 
+ 00020843  0x00004ba7 setarg  0x01280302 
+ 00020844  0x00004ba8 isub  0x00000002 , 0x0000003e 
+ 00020845  0x00004ba9 nbranch  0x0000517c , 0x00000005 
+ 00020846  0x00004baa ifetch  0x00000001 , 0x00000006 
+ 00020847  0x00004bab store  0x00000001 , 0x00004516 
+ 00020848  0x00004bac and_into  0x00000030 , 0x0000003f 
+ 00020849  0x00004bad branch  0x0000517c , 0x00000034 
+ 00020850  0x00004bae jam  0x00000000 , 0x000006e4 
+ 00020851  0x00004baf call  0x000029c9 
+ 00020852  0x00004bb0 call  0x00005180 
+ 00020853  0x00004bb1 call  0x00005180 
+ 00020854  0x00004bb2 call  0x00005180 
+ 00020855  0x00004bb3 fetch  0x00000002 , 0x0000450f 
+ 00020856  0x00004bb4 rtnbit0  0x00000008 
+ 00020857  0x00004bb6 jam  0x00000001 , 0x000006e4 
+ 00020858  0x00004bb7 call  0x000053d6 
+ 00020859  0x00004bb8 branch  0x0000531c 
+ 00020860  0x00004bbb jam  0x00000000 , 0x00004511 
+ 00020861  0x00004bbc jam  0x00000001 , 0x000006e4 
+ 00020862  0x00004bbd call  0x000053d6 
+ 00020863  0x00004bbe branch  0x00005319 
+ 00020864  0x00004bc1 fetch  0x00000001 , 0x00004511 
+ 00020865  0x00004bc2 rtn  0x00000034 
+ 00020866  0x00004bc3 call  0x00002a28 
+ 00020867  0x00004bc4 nrtn  0x00000034 
+ 00020868  0x00004bc5 call  0x000051a3 
+ 00020869  0x00004bc6 bpatch  0x00000065 , 0x0000400c 
+ 00020870  0x00004bc7 fetch  0x00000002 , 0x000042e1 
+ 00020871  0x00004bc8 call  0x00007db0 
+ 00020872  0x00004bc9 copy  0x0000003f , 0x00000002 
+ 00020873  0x00004bca fetch  0x00000001 , 0x00004396 
+ 00020874  0x00004bcb rtnbit1  0x00000000 
+ 00020875  0x00004bcc add  0x00000002 , 0xfffffffd , 0x0000003f 
+ 00020876  0x00004bcd arg  0x000000fb , 0x00000002 
+ 00020877  0x00004bce call  0x00007db0 
+ 00020878  0x00004bcf fetcht  0x00000001 , 0x00004511 
+ 00020879  0x00004bd0 call  0x00007db0 
+ 00020880  0x00004bd1 copy  0x0000003f , 0x00000011 
+ 00020881  0x00004bd2 copy  0x00000002 , 0x0000003f 
+ 00020882  0x00004bd3 isub  0x00000011 , 0x0000003f 
+ 00020883  0x00004bd4 store  0x00000001 , 0x00004511 
+ 00020884  0x00004bd5 call  0x0000519e 
+ 00020885  0x00004bd6 fetch  0x00000002 , 0x00004514 
+ 00020886  0x00004bd7 copy  0x0000003f , 0x00000003 
+ 00020887  0x00004bd8 copy  0x00000011 , 0x00000039 
+ 00020888  0x00004bd9 call  0x00006dca 
+ 00020889  0x00004bda copy  0x00000003 , 0x0000003f 
+ 00020890  0x00004bdb store  0x00000002 , 0x00004514 
+ 00020891  0x00004bdc fetch  0x00000001 , 0x00004511 
+ 00020892  0x00004bdd nrtn  0x00000034 
+ 00020893  0x00004bde branch  0x000053d4 
+ 00020894  0x00004be1 fetcht  0x00000002 , 0x00004512 
+ 00020895  0x00004be2 fetch  0x00000001 , 0x00004516 
+ 00020896  0x00004be3 bbit1  0x00000005 , 0x00002df7 
+ 00020897  0x00004be4 bbit1  0x00000004 , 0x00002dee 
+ 00020898  0x00004be5 rtn 
+ 00020899  0x00004bea arg  0x00000017 , 0x00000002 
+ 00020900  0x00004beb fetch  0x00000002 , 0x0000450f 
+ 00020901  0x00004bec rtnbit1  0x00000001 
+ 00020902  0x00004bed fetcht  0x00000002 , 0x000042e3 
+ 00020903  0x00004bee rtn 
+ 00020904  0x00004bf1 fetch  0x00000002 , 0x0000450f 
+ 00020905  0x00004bf2 bbit1  0x00000002 , 0x00002dc7 
+ 00020906  0x00004bf3 branch  0x00007dbc 
+ 00020907  0x00004bf8 branch  0x0000533f 
+ 00020908  0x00004bff ifetch  0x00000001 , 0x00000003 
+ 00020909  0x00004c00 fetcht  0x00000001 , 0x0000450f 
+ 00020910  0x00004c01 nsetflag  0x00000034 , 0x00000000 , 0x00000002 
+ 00020911  0x00004c02 storet  0x00000001 , 0x0000450f 
+ 00020912  0x00004c03 fetcht  0x00000001 , 0x00008060 
+ 00020913  0x00004c04 nsetflag  0x00000034 , 0x00000004 , 0x00000002 
+ 00020914  0x00004c05 storet  0x00000001 , 0x00008060 
+ 00020915  0x00004c06 branch  0x0000531c 
+ 00020916  0x00004c0b fetchr  0x00000039 , 0x00000001 , 0x000006e3 
+ 00020917  0x00004c0c call  0x00007d33 
+ 00020918  0x00004c0d call  0x00006d77 
+ 00020919  0x00004c0e store  0x00000002 , 0x00004508 
+ 00020920  0x00004c0f call  0x0000531c 
+ 00020921  0x00004c10 call  0x00006dae 
+ 00020922  0x00004c11 fetch  0x00000002 , 0x00004508 
+ 00020923  0x00004c12 branch  0x00006d73 
+ 00020924  0x00004c17 arg  0x00000002 , 0x00000011 
+ 00020925  0x00004c18 arg  0x000044f1 , 0x00000012 
+ 00020926  0x00004c19 arg  0x00000000 , 0x00000002 
+ 00020927  0x00004c1a branch  0x00005323 
+ 00020928  0x00004c20 fetch  0x00000002 , 0x000044e9 
+ 00020929  0x00004c21 bbit0  0x00000009 , 0x00005319 
+ 00020930  0x00004c23 call  0x0000531c 
+ 00020931  0x00004c24 branch  0x0000431f 
+ 00020932  0x00004c2b fetchr  0x00000039 , 0x00000001 , 0x000006e3 
+ 00020933  0x00004c2c fetch  0x00000002 , 0x000043f8 
+ 00020934  0x00004c2d icopy  0x00000005 
+ 00020935  0x00004c2e call  0x00006dca 
+ 00020936  0x00004c2f branch  0x0000531c 
+ 00020937  0x00004c34 fetch  0x00000002 , 0x000044e9 
+ 00020938  0x00004c35 bbit1  0x00000009 , 0x0000528c 
+ 00020939  0x00004c36 branch  0x00005319 
+ 00020940  0x00004c3b arg  0x00000040 , 0x00000039 
+ 00020941  0x00004c3c arg  0x00004348 , 0x00000005 
+ 00020942  0x00004c3d call  0x00007ca1 
+ 00020943  0x00004c3e setarg  0x00000000 
+ 00020944  0x00004c3f store  0x00000001 , 0x00000688 
+ 00020945  0x00004c40 copy  0x00000011 , 0x00000003 
+ 00020946  0x00004c42 copy  0x00000003 , 0x0000003f 
+ 00020947  0x00004c43 store  0x00000002 , 0x0000068c 
+ 00020948  0x00004c44 call  0x000051fa 
+ 00020949  0x00004c46 fetch  0x00000001 , 0x00000688 
+ 00020950  0x00004c47 fetcht  0x00000001 , 0x00000678 
+ 00020951  0x00004c48 increase  0x00000001 , 0x00000002 
+ 00020952  0x00004c49 iadd  0x00000002 , 0x0000003f 
+ 00020953  0x00004c4a store  0x00000001 , 0x00000688 
+ 00020954  0x00004c4c sub  0x0000003f , 0x0000001f , 0x0000003e 
+ 00020955  0x00004c4d nbranch  0x000051e6 , 0x00000002 
+ 00020956  0x00004c4f fetcht  0x00000001 , 0x00004348 
+ 00020957  0x00004c50 setarg  0x00004349 
+ 00020958  0x00004c51 iadd  0x00000002 , 0x0000003f 
+ 00020959  0x00004c52 store  0x00000002 , 0x00000691 
+ 00020960  0x00004c53 fetcht  0x00000001 , 0x00000678 
+ 00020961  0x00004c54 increase  0x00000001 , 0x00000002 
+ 00020962  0x00004c55 fetch  0x00000001 , 0x00004348 
+ 00020963  0x00004c56 iadd  0x00000002 , 0x0000003f 
+ 00020964  0x00004c57 store  0x00000001 , 0x00004348 
+ 00020965  0x00004c58 branch  0x000051ef 
+ 00020966  0x00004c5a fetcht  0x00000001 , 0x00004368 
+ 00020967  0x00004c5b setarg  0x00004369 
+ 00020968  0x00004c5c iadd  0x00000002 , 0x0000003f 
+ 00020969  0x00004c5d store  0x00000002 , 0x00000691 
+ 00020970  0x00004c5e fetcht  0x00000001 , 0x00000678 
+ 00020971  0x00004c5f increase  0x00000001 , 0x00000002 
+ 00020972  0x00004c60 fetch  0x00000001 , 0x00004368 
+ 00020973  0x00004c61 iadd  0x00000002 , 0x0000003f 
+ 00020974  0x00004c62 store  0x00000001 , 0x00004368 
+ 00020975  0x00004c64 fetch  0x00000002 , 0x00000691 
+ 00020976  0x00004c65 copy  0x0000003f , 0x00000005 
+ 00020977  0x00004c66 fetch  0x00000002 , 0x0000068c 
+ 00020978  0x00004c67 copy  0x0000003f , 0x00000003 
+ 00020979  0x00004c69 copy  0x00000002 , 0x00000039 
+ 00020980  0x00004c6a call  0x00006dca 
+ 00020981  0x00004c6c fetch  0x00000001 , 0x000006e3 
+ 00020982  0x00004c6d fetcht  0x00000001 , 0x00000688 
+ 00020983  0x00004c6e isub  0x00000002 , 0x0000003e 
+ 00020984  0x00004c6f nbranch  0x000051d2 , 0x00000005 
+ 00020985  0x00004c70 branch  0x0000531c 
+ 00020986  0x00004c74 ifetch  0x00000001 , 0x00000003 
+ 00020987  0x00004c75 store  0x00000001 , 0x00000678 
+ 00020988  0x00004c76 ifetch  0x00000001 , 0x00000003 
+ 00020989  0x00004c77 store  0x00000001 , 0x00000684 
+ 00020990  0x00004c78 rtn 
+ 00020991  0x00004c7d arg  0x00000000 , 0x00000002 
+ 00020992  0x00004c7e arg  0x00000002 , 0x00000011 
+ 00020993  0x00004c7f fetch  0x00000002 , 0x0000450c 
+ 00020994  0x00004c80 store  0x00000002 , 0x000006a1 
+ 00020995  0x00004c81 arg  0x000006a1 , 0x00000012 
+ 00020996  0x00004c82 branch  0x00005323 
+ 00020997  0x00004c87 fetch  0x00000001 , 0x000006e3 
+ 00020998  0x00004c88 bne  0x00000001 , 0x00005319 
+ 00020999  0x00004c89 ifetch  0x00000001 , 0x00000003 
+ 00021000  0x00004c8a store  0x00000001 , 0x0000450a 
+ 00021001  0x00004c8b setarg  0x00000000 
+ 00021002  0x00004c8c store  0x00000002 , 0x0000450c 
+ 00021003  0x00004c8d branch  0x0000531c 
+ 00021004  0x00004c92 fetch  0x00000001 , 0x000006e3 
+ 00021005  0x00004c93 bne  0x00000004 , 0x00005319 
+ 00021006  0x00004c94 fetch  0x00000002 , 0x000044e9 
+ 00021007  0x00004c95 bbit1  0x00000009 , 0x000052eb 
+ 00021008  0x00004c96 branch  0x00005319 
+ 00021009  0x00004c9c fetch  0x00000001 , 0x000006e3 
+ 00021010  0x00004c9d bne  0x00000003 , 0x00005319 
+ 00021011  0x00004c9e ifetch  0x00000001 , 0x00000003 
+ 00021012  0x00004c9f beq  0x00000000 , 0x00005217 
+ 00021013  0x00004ca0 beq  0x00000001 , 0x0000521d 
+ 00021014  0x00004ca1 branch  0x00005319 
+ 00021015  0x00004ca4 call  0x0000531c 
+ 00021016  0x00004ca5 ifetcht  0x00000001 , 0x00000003 
+ 00021017  0x00004ca6 ifetch  0x00000001 , 0x00000003 
+ 00021018  0x00004ca7 beq  0x00000002 , 0x00006f0f 
+ 00021019  0x00004ca8 nsetflag  0x00000034 , 0x00000007 , 0x00000002 
+ 00021020  0x00004ca9 branch  0x00006edd 
+ 00021021  0x00004cac call  0x0000531c 
+ 00021022  0x00004cad ifetcht  0x00000001 , 0x00000003 
+ 00021023  0x00004cae ifetch  0x00000001 , 0x00000003 
+ 00021024  0x00004caf branch  0x00006ef7 , 0x00000034 
+ 00021025  0x00004cb0 branch  0x00006ef3 
+ 00021026  0x00004cb5 fetch  0x00000001 , 0x000006e3 
+ 00021027  0x00004cb6 bne  0x00000001 , 0x00005319 
+ 00021028  0x00004cb7 ifetcht  0x00000001 , 0x00000003 
+ 00021029  0x00004cb8 call  0x00006ee6 
+ 00021030  0x00004cb9 setarg  0x00000000 
+ 00021031  0x00004cba nsetflag  0x00000001 , 0x00000000 , 0x0000003f 
+ 00021032  0x00004cbb arg  0x00000001 , 0x00000011 
+ 00021033  0x00004cbc store  0x00000002 , 0x000006a1 
+ 00021034  0x00004cbd arg  0x000006a1 , 0x00000012 
+ 00021035  0x00004cbe arg  0x00000000 , 0x00000002 
+ 00021036  0x00004cbf branch  0x00005323 
+ 00021037  0x00004cc4 ifetch  0x00000001 , 0x00000003 
+ 00021038  0x00004cc5 copy  0x0000003f , 0x00000002 
+ 00021039  0x00004cc6 beq  0x00000081 , 0x0000523c 
+ 00021040  0x00004cc7 beq  0x00000082 , 0x00005240 
+ 00021041  0x00004cc8 beq  0x00000083 , 0x00005245 
+ 00021042  0x00004cc9 beq  0x00000084 , 0x00005249 
+ 00021043  0x00004cca store  0x00000001 , 0x000042fe 
+ 00021044  0x00004ccb call  0x000074ff 
+ 00021045  0x00004ccc call  0x00002ec4 
+ 00021046  0x00004ccd fetch  0x00000001 , 0x000042fe 
+ 00021047  0x00004cce beq  0x00000000 , 0x0000524d 
+ 00021048  0x00004ccf beq  0x00000001 , 0x00005250 
+ 00021049  0x00004cd0 beq  0x00000002 , 0x00005252 
+ 00021050  0x00004cd1 beq  0x00000004 , 0x00005254 
+ 00021051  0x00004cd2 branch  0x00005319 
+ 00021052  0x00004cd5 storet  0x00000001 , 0x000042fe 
+ 00021053  0x00004cd6 call  0x00002ec0 
+ 00021054  0x00004cd7 jam  0x0000000d , 0x000042c7 
+ 00021055  0x00004cd8 branch  0x0000524e 
+ 00021056  0x00004cda storet  0x00000001 , 0x000042fe 
+ 00021057  0x00004cdb call  0x00002ec0 
+ 00021058  0x00004cdc jam  0x0000000d , 0x000042c7 
+ 00021059  0x00004cdd jam  0x00000001 , 0x000042c5 
+ 00021060  0x00004cde branch  0x0000531c 
+ 00021061  0x00004ce0 storet  0x00000001 , 0x000042fe 
+ 00021062  0x00004ce1 call  0x00002ec0 
+ 00021063  0x00004ce2 jam  0x0000000d , 0x000042c7 
+ 00021064  0x00004ce3 branch  0x00005258 
+ 00021065  0x00004ce5 storet  0x00000001 , 0x000042fe 
+ 00021066  0x00004ce6 call  0x00002ec0 
+ 00021067  0x00004ce7 jam  0x0000000d , 0x000042c7 
+ 00021068  0x00004ce8 branch  0x00005256 
+ 00021069  0x00004cec jam  0x00000000 , 0x000042c7 
+ 00021070  0x00004cee jam  0x00000003 , 0x000042c5 
+ 00021071  0x00004cef branch  0x0000531c 
+ 00021072  0x00004cf1 jam  0x00000001 , 0x000042c7 
+ 00021073  0x00004cf2 branch  0x0000524e 
+ 00021074  0x00004cf4 jam  0x00000005 , 0x000042c7 
+ 00021075  0x00004cf5 branch  0x00005258 
+ 00021076  0x00004cf7 jam  0x00000005 , 0x000042c7 
+ 00021077  0x00004cf8 branch  0x00005256 
+ 00021078  0x00004cfa jam  0x00000002 , 0x000042c5 
+ 00021079  0x00004cfb branch  0x0000531c 
+ 00021080  0x00004cfd jam  0x00000000 , 0x000042c5 
+ 00021081  0x00004cfe branch  0x0000531c 
+ 00021082  0x00004d03 arg  0x0000001f , 0x0000003f 
+ 00021083  0x00004d04 arg  0x00004348 , 0x00000005 
+ 00021084  0x00004d05 branch  0x00005260 
+ 00021085  0x00004d0a arg  0x0000001f , 0x0000003f 
+ 00021086  0x00004d0b arg  0x00004368 , 0x00000005 
+ 00021087  0x00004d0c branch  0x00005260 
+ 00021088  0x00004d0f fetchr  0x00000039 , 0x00000001 , 0x000006e3 
+ 00021089  0x00004d10 isub  0x00000039 , 0x0000003e 
+ 00021090  0x00004d11 nbranch  0x00005319 , 0x00000002 
+ 00021091  0x00004d12 istorer  0x00000039 , 0x00000001 , 0x00000005 
+ 00021092  0x00004d13 call  0x00006dca 
+ 00021093  0x00004d14 branch  0x0000531c 
+ 00021094  0x00004d19 fetch  0x00000002 , 0x000044e9 
+ 00021095  0x00004d1a bbit0  0x00000009 , 0x00005319 
+ 00021096  0x00004d1b fetch  0x00000001 , 0x000006e3 
+ 00021097  0x00004d1c bne  0x00000008 , 0x00005319 
+ 00021098  0x00004d1d ifetch  0x00000008 , 0x00000003 
+ 00021099  0x00004d1e store  0x00000008 , 0x000042d3 
+ 00021100  0x00004d1f jam  0x00000012 , 0x0000066f 
+ 00021101  0x00004d20 call  0x00007834 
+ 00021102  0x00004d21 branch  0x0000531c 
+ 00021103  0x00004d26 ifetch  0x00000002 , 0x00000003 
+ 00021104  0x00004d27 store  0x00000002 , 0x00004389 
+ 00021105  0x00004d28 storet  0x00000001 , 0x000040a6 
+ 00021106  0x00004d29 iadd  0x00000002 , 0x0000003f 
+ 00021107  0x00004d2a store  0x00000002 , 0x000040a4 
+ 00021108  0x00004d2b branch  0x0000531c 
+ 00021109  0x00004d30 fetch  0x00000001 , 0x000042fe 
+ 00021110  0x00004d31 branch  0x00005319 , 0x00000034 
+ 00021111  0x00004d32 fetch  0x00000001 , 0x000042fc 
+ 00021112  0x00004d33 bne  0x00000000 , 0x00005319 
+ 00021113  0x00004d34 fetch  0x00000001 , 0x000042fd 
+ 00021114  0x00004d35 bne  0x00000000 , 0x00005319 
+ 00021115  0x00004d36 call  0x000078a9 
+ 00021116  0x00004d37 branch  0x0000531c 
+ 00021117  0x00004d3c fetch  0x00000001 , 0x000006e3 
+ 00021118  0x00004d3d bne  0x00000005 , 0x00005319 
+ 00021119  0x00004d3e ifetch  0x00000001 , 0x00000003 
+ 00021120  0x00004d3f store  0x00000001 , 0x000044f9 
+ 00021121  0x00004d40 ifetch  0x00000004 , 0x00000003 
+ 00021122  0x00004d41 store  0x00000004 , 0x000044fa 
+ 00021123  0x00004d42 fetcht  0x00000001 , 0x000044f9 
+ 00021124  0x00004d43 call  0x00006ef7 
+ 00021125  0x00004d44 call  0x000053ae 
+ 00021126  0x00004d45 branch  0x0000531c 
+ 00021127  0x00004d4a fetch  0x00000001 , 0x000006e3 
+ 00021128  0x00004d4b bne  0x00000001 , 0x00005319 
+ 00021129  0x00004d4c ifetch  0x00000001 , 0x00000003 
+ 00021130  0x00004d4d store  0x00000001 , 0x00004141 
+ 00021131  0x00004d4e branch  0x0000531c 
+ 00021132  0x00004d53 ifetch  0x00000001 , 0x00000003 
+ 00021133  0x00004d54 beq  0x00000001 , 0x00005295 
+ 00021134  0x00004d55 fetch  0x00000001 , 0x000042fa 
+ 00021135  0x00004d56 beq  0x00000003 , 0x00005293 
+ 00021136  0x00004d57 beq  0x00000006 , 0x00005293 
+ 00021137  0x00004d58 beq  0x00000007 , 0x00005293 
+ 00021138  0x00004d59 branch  0x00005319 
+ 00021139  0x00004d5b jam  0x00000001 , 0x000042fb 
+ 00021140  0x00004d5c branch  0x0000531c 
+ 00021141  0x00004d5f call  0x00002f2a 
+ 00021142  0x00004d60 branch  0x0000531c 
+ 00021143  0x00004d67 call  0x0000531c 
+ 00021144  0x00004d68 call  0x00006dae 
+ 00021145  0x00004d69 jam  0x00000001 , 0x00008010 
+ 00021146  0x00004d6a branch  0x0000235a 
+ 00021147  0x00004d6f fetch  0x00000001 , 0x000006e3 
+ 00021148  0x00004d70 beq  0x00000000 , 0x00005319 
+ 00021149  0x00004d71 ifetch  0x00000001 , 0x00000003 
+ 00021150  0x00004d72 branch  0x000052a8 , 0x00000034 
+ 00021151  0x00004d73 fetch  0x00000001 , 0x000006e3 
+ 00021152  0x00004d74 bne  0x00000005 , 0x00005319 
+ 00021153  0x00004d75 ifetch  0x00000004 , 0x00000003 
+ 00021154  0x00004d76 arg  0x000f4240 , 0x00000002 
+ 00021155  0x00004d77 isub  0x00000002 , 0x0000003e 
+ 00021156  0x00004d78 branch  0x00005319 , 0x00000002 
+ 00021157  0x00004d79 store  0x00000004 , 0x000042ff 
+ 00021158  0x00004d7a call  0x000029c1 
+ 00021159  0x00004d7b branch  0x0000531c 
+ 00021160  0x00004d7e call  0x000029c3 
+ 00021161  0x00004d7f branch  0x0000531c 
+ 00021162  0x00004d84 arg  0x00000001 , 0x00000002 
+ 00021163  0x00004d85 call  0x00002cd2 
+ 00021164  0x00004d86 add  0x00000006 , 0xfffffffe , 0x00000005 
+ 00021165  0x00004d87 setarg  0x00000000 
+ 00021166  0x00004d88 istore  0x00000002 , 0x00000005 
+ 00021167  0x00004d89 branch  0x0000531c 
+ 00021168  0x00004d8e call  0x000052b9 
+ 00021169  0x00004d8f call  0x000052e7 
+ 00021170  0x00004d90 setarg  0x00000000 
+ 00021171  0x00004d91 istore  0x00000002 , 0x00000005 
+ 00021172  0x00004d92 branch  0x00005388 
+ 00021173  0x00004d98 ifetch  0x00000001 , 0x00000003 
+ 00021174  0x00004d99 call  0x000052bd 
+ 00021175  0x00004d9a call  0x000052c4 
+ 00021176  0x00004d9b branch  0x00005388 
+ 00021177  0x00004d9f call  0x000052e4 
+ 00021178  0x00004da0 setarg  0x00280002 
+ 00021179  0x00004da1 istore  0x00000003 , 0x00000005 
+ 00021180  0x00004da2 rtn 
+ 00021181  0x00004da6 store  0x00000001 , 0x00000670 
+ 00021182  0x00004da7 call  0x000052e4 
+ 00021183  0x00004da8 setarg  0x01280302 
+ 00021184  0x00004da9 istore  0x00000004 , 0x00000005 
+ 00021185  0x00004daa fetch  0x00000001 , 0x00000670 
+ 00021186  0x00004dab istore  0x00000003 , 0x00000005 
+ 00021187  0x00004dac rtn 
+ 00021188  0x00004db0 call  0x00002cf6 
+ 00021189  0x00004db1 ifetch  0x00000001 , 0x00000003 
+ 00021190  0x00004db2 and  0x0000003f , 0x0000001f , 0x00000039 
+ 00021191  0x00004db3 copy  0x0000003f , 0x00000011 
+ 00021192  0x00004db4 isolate1  0x00000007 , 0x00000011 
+ 00021193  0x00004db5 setflag  0x00000001 , 0x0000000f , 0x00000002 
+ 00021194  0x00004db6 isolate1  0x00000006 , 0x00000011 
+ 00021195  0x00004db7 setflag  0x00000001 , 0x0000000e , 0x00000002 
+ 00021196  0x00004db8 istoret  0x00000002 , 0x00000005 
+ 00021197  0x00004db9 copy  0x00000039 , 0x0000003f 
+ 00021198  0x00004dba istore  0x00000001 , 0x00000005 
+ 00021199  0x00004dbb call  0x00006ddd 
+ 00021200  0x00004dbc call  0x000052e7 
+ 00021201  0x00004dbd setarg  0x00000000 
+ 00021202  0x00004dbe istore  0x00000002 , 0x00000005 
+ 00021203  0x00004dbf and  0x00000002 , 0x000000ff , 0x00000002 
+ 00021204  0x00004dc0 increase  0xffffffff , 0x00000002 
+ 00021205  0x00004dc1 call  0x00002cd2 
+ 00021206  0x00004dc2 add  0x00000006 , 0x00000004 , 0x00000006 
+ 00021207  0x00004dc3 ifetch  0x00000001 , 0x00000006 
+ 00021208  0x00004dc4 bbit1  0x00000004 , 0x000052dc 
+ 00021209  0x00004dc5 bbit1  0x00000005 , 0x000052dc 
+ 00021210  0x00004dc6 increase  0x00000001 , 0x00000002 
+ 00021211  0x00004dc7 rtn 
+ 00021212  0x00004dcb call  0x00002cf6 
+ 00021213  0x00004dcc isolate1  0x00000005 , 0x00000011 
+ 00021214  0x00004dcd setflag  0x00000001 , 0x0000000f , 0x00000002 
+ 00021215  0x00004dce istoret  0x00000002 , 0x00000005 
+ 00021216  0x00004dcf setarg  0x02290202 
+ 00021217  0x00004dd0 istore  0x00000008 , 0x00000005 
+ 00021218  0x00004dd1 increase  0xffffffff , 0x00000002 
+ 00021219  0x00004dd2 rtn 
+ 00021220  0x00004dd6 call  0x00002cf6 
+ 00021221  0x00004dd7 istoret  0x00000002 , 0x00000005 
+ 00021222  0x00004dd8 rtn 
+ 00021223  0x00004ddc ifetch  0x00000001 , 0x00000003 
+ 00021224  0x00004ddd copy  0x0000003f , 0x00000039 
+ 00021225  0x00004dde istore  0x00000001 , 0x00000005 
+ 00021226  0x00004ddf branch  0x00006ddd 
+ 00021227  0x00004de4 fetch  0x00000001 , 0x000042fc 
+ 00021228  0x00004de5 bne  0x00000005 , 0x00005319 
+ 00021229  0x00004de6 fetch  0x00000001 , 0x000042fe 
+ 00021230  0x00004de7 beq  0x00000004 , 0x000052f7 
+ 00021231  0x00004de8 beq  0x00000084 , 0x000052f1 
+ 00021232  0x00004de9 branch  0x00005319 
+ 00021233  0x00004dec jam  0x00000002 , 0x000042f9 
+ 00021234  0x00004ded jam  0x00000008 , 0x000042fa 
+ 00021235  0x00004dee branch  0x000052f4 
+ 00021236  0x00004df1 ifetch  0x00000004 , 0x00000003 
+ 00021237  0x00004df2 store  0x00000004 , 0x000042ff 
+ 00021238  0x00004df3 branch  0x0000531c 
+ 00021239  0x00004df6 call  0x000052f4 
+ 00021240  0x00004df7 branch  0x00002f13 
+ 00021241  0x00004dfc ifetch  0x00000006 , 0x00000003 
+ 00021242  0x00004dfd store  0x00000006 , 0x000042cc 
+ 00021243  0x00004dfe jam  0x0000001b , 0x000001bc 
+ 00021244  0x00004dff jam  0x00000001 , 0x00004517 
+ 00021245  0x00004e00 jam  0x00000001 , 0x00004343 
+ 00021246  0x00004e01 branch  0x0000531c 
+ 00021247  0x00004e07 fetch  0x00000001 , 0x000006e3 
+ 00021248  0x00004e08 bne  0x00000002 , 0x00005319 
+ 00021249  0x00004e09 ifetcht  0x00000002 , 0x00000003 
+ 00021250  0x00004e0a call  0x00002a2d 
+ 00021251  0x00004e0b branch  0x0000531c 
+ 00021252  0x00004e10 arg  0x00000000 , 0x00000002 
+ 00021253  0x00004e11 arg  0x00000002 , 0x00000011 
+ 00021254  0x00004e12 arg  0x00004075 , 0x00000012 
+ 00021255  0x00004e13 branch  0x00005323 
+ 00021256  0x00004e18 fetch  0x00000001 , 0x000006e3 
+ 00021257  0x00004e19 bne  0x00000008 , 0x00005319 
+ 00021258  0x00004e1a ifetch  0x00000008 , 0x00000003 
+ 00021259  0x00004e1b call  0x00002a2b 
+ 00021260  0x00004e1c branch  0x0000531c 
+ 00021261  0x00004e21 ifetchr  0x00000011 , 0x00000001 , 0x00000003 
+ 00021262  0x00004e22 ifetchr  0x00000012 , 0x00000002 , 0x00000003 
+ 00021263  0x00004e23 arg  0x00000000 , 0x00000002 
+ 00021264  0x00004e24 branch  0x00005323 
+ 00021265  0x00004e29 fetchr  0x00000039 , 0x00000001 , 0x000006e3 
+ 00021266  0x00004e2a increase  0xfffffffe , 0x00000039 
+ 00021267  0x00004e2b ifetch  0x00000002 , 0x00000003 
+ 00021268  0x00004e2c copy  0x0000003f , 0x00000005 
+ 00021269  0x00004e2d call  0x00006dca 
+ 00021270  0x00004e2e branch  0x0000531c 
+ 00021271  0x00004e34 jam  0x00000000 , 0x00004094 
+ 00021272  0x00004e35 branch  0x0000531c 
+ 00021273  0x00004e3b arg  0x00000001 , 0x00000002 
+ 00021274  0x00004e3c arg  0x00000000 , 0x00000011 
+ 00021275  0x00004e3d branch  0x00005323 
+ 00021276  0x00004e41 arg  0x00000000 , 0x00000002 
+ 00021277  0x00004e42 arg  0x00000000 , 0x00000011 
+ 00021278  0x00004e43 branch  0x00005323 
+ 00021279  0x00004e48 jam  0x00000002 , 0x000006e2 
+ 00021280  0x00004e49 branch  0x0000533c 
+ 00021281  0x00004e4f jam  0x00000005 , 0x000006e2 
+ 00021282  0x00004e50 branch  0x0000533c 
+ 00021283  0x00004e59 fetch  0x00000001 , 0x000006e2 
+ 00021284  0x00004e5a copy  0x0000003f , 0x00000013 
+ 00021285  0x00004e5b jam  0x00000006 , 0x000006e2 
+ 00021286  0x00004e5c setarg  0x00000002 
+ 00021287  0x00004e5d iadd  0x00000011 , 0x0000003f 
+ 00021288  0x00004e5e call  0x00005397 
+ 00021289  0x00004e5f copy  0x00000013 , 0x0000003f 
+ 00021290  0x00004e60 istore  0x00000001 , 0x00000003 
+ 00021291  0x00004e61 istoret  0x00000001 , 0x00000003 
+ 00021292  0x00004e62 copy  0x00000011 , 0x00000039 
+ 00021293  0x00004e63 copy  0x00000012 , 0x00000006 
+ 00021294  0x00004e64 call  0x00006dc4 
+ 00021295  0x00004e65 branch  0x000053a1 
+ 00021296  0x00004e6d jam  0x00000008 , 0x000006e2 
+ 00021297  0x00004e6e add  0x00000039 , 0x00000002 , 0x0000003f 
+ 00021298  0x00004e6f call  0x00005397 
+ 00021299  0x00004e70 fetch  0x00000002 , 0x0000070d 
+ 00021300  0x00004e71 istore  0x00000002 , 0x00000003 
+ 00021301  0x00004e72 fetch  0x00000002 , 0x0000070b 
+ 00021302  0x00004e73 icopy  0x00000006 
+ 00021303  0x00004e74 call  0x00006db1 
+ 00021304  0x00004e75 copy  0x00000006 , 0x0000003f 
+ 00021305  0x00004e76 store  0x00000002 , 0x0000070b 
+ 00021306  0x00004e77 branch  0x000053a1 
+ 00021307  0x00004e7c jam  0x00000009 , 0x000006e2 
+ 00021308  0x00004e7e setarg  0x00000000 
+ 00021309  0x00004e7f call  0x00005397 
+ 00021310  0x00004e80 branch  0x000053a1 
+ 00021311  0x00004e85 jam  0x0000000a , 0x000006e2 
+ 00021312  0x00004e86 setarg  0x00000001 
+ 00021313  0x00004e87 call  0x00005397 
+ 00021314  0x00004e89 call  0x00005349 
+ 00021315  0x00004e8b fetch  0x00000002 , 0x000044e9 
+ 00021316  0x00004e8c arg  0x00000009 , 0x00000007 
+ 00021317  0x00004e8d qisolate1  0x0000003f 
+ 00021318  0x00004e8e setflag  0x00000001 , 0x00000005 , 0x00000002 
+ 00021319  0x00004e92 istoret  0x00000001 , 0x00000003 
+ 00021320  0x00004e93 branch  0x000053a1 
+ 00021321  0x00004e98 arg  0x00000000 , 0x00000002 
+ 00021322  0x00004e99 fetch  0x00000001 , 0x00004388 
+ 00021323  0x00004e9a arg  0x00000000 , 0x00000007 
+ 00021324  0x00004e9b qisolate1  0x0000003f 
+ 00021325  0x00004e9c setflag  0x00000001 , 0x00000002 , 0x00000002 
+ 00021326  0x00004e9d rtn 
+ 00021327  0x00004ea2 jam  0x0000000d , 0x000006e2 
+ 00021328  0x00004ea3 fetch  0x00000001 , 0x000043fa 
+ 00021329  0x00004ea4 mul32  0x0000003f , 0x00000022 , 0x0000003f 
+ 00021330  0x00004ea5 icopy  0x00000039 
+ 00021331  0x00004ea6 call  0x00005397 
+ 00021332  0x00004ea7 fetch  0x00000002 , 0x000043f8 
+ 00021333  0x00004ea8 icopy  0x00000006 
+ 00021334  0x00004ea9 call  0x00006db1 
+ 00021335  0x00004eaa branch  0x000053a1 
+ 00021336  0x00004eae jam  0x0000000e , 0x000006e2 
+ 00021337  0x00004eaf setarg  0x00000004 
+ 00021338  0x00004eb0 call  0x00005397 
+ 00021339  0x00004eb1 fetch  0x00000004 , 0x000005fa 
+ 00021340  0x00004eb2 istore  0x00000004 , 0x00000003 
+ 00021341  0x00004eb3 branch  0x000053a1 
+ 00021342  0x00004eb7 jam  0x0000000f , 0x000006e2 
+ 00021343  0x00004eb8 fetch  0x00000002 , 0x00008112 
+ 00021344  0x00004eb9 arg  0x00000040 , 0x00000002 
+ 00021345  0x00004eba call  0x00007db0 
+ 00021346  0x00004ebb copy  0x0000003f , 0x00000011 
+ 00021347  0x00004ebc copy  0x0000003f , 0x00000039 
+ 00021348  0x00004ebd call  0x00006d96 
+ 00021349  0x00004ebe arg  0x000006a1 , 0x00000005 
+ 00021350  0x00004ebf call  0x00006dca 
+ 00021351  0x00004ec0 copy  0x00000011 , 0x0000003f 
+ 00021352  0x00004ec1 copy  0x00000011 , 0x00000039 
+ 00021353  0x00004ec2 call  0x00005397 
+ 00021354  0x00004ec3 arg  0x000006a1 , 0x00000006 
+ 00021355  0x00004ec4 call  0x00006db1 
+ 00021356  0x00004ec5 branch  0x000053a1 
+ 00021357  0x00004eca jam  0x00000010 , 0x000006e2 
+ 00021358  0x00004ecb branch  0x0000533c 
+ 00021359  0x00004ed0 jam  0x00000011 , 0x000006e2 
+ 00021360  0x00004ed1 setarg  0x00000004 
+ 00021361  0x00004ed2 call  0x00005397 
+ 00021362  0x00004ed3 fetch  0x00000004 , 0x000042ff 
+ 00021363  0x00004ed4 istore  0x00000004 , 0x00000003 
+ 00021364  0x00004ed5 branch  0x000053a1 
+ 00021365  0x00004eda arg  0x00000180 , 0x00000011 
+ 00021366  0x00004edb branch  0x00005379 
+ 00021367  0x00004ede arg  0x00000080 , 0x00000011 
+ 00021368  0x00004edf branch  0x00005379 
+ 00021369  0x00004ee3 jam  0x00000014 , 0x000006e2 
+ 00021370  0x00004ee4 setarg  0x00000002 
+ 00021371  0x00004ee5 call  0x00005397 
+ 00021372  0x00004ee6 copy  0x00000011 , 0x0000003f 
+ 00021373  0x00004ee7 istore  0x00000002 , 0x00000003 
+ 00021374  0x00004ee8 branch  0x000053a1 
+ 00021375  0x00004eed arg  0x00000000 , 0x00000013 
+ 00021376  0x00004eee branch  0x00005382 
+ 00021377  0x00004ef1 arg  0x00000001 , 0x00000013 
+ 00021378  0x00004ef4 jam  0x00000015 , 0x000006e2 
+ 00021379  0x00004ef5 setarg  0x00000001 
+ 00021380  0x00004ef6 call  0x00005397 
+ 00021381  0x00004ef7 copy  0x00000013 , 0x0000003f 
+ 00021382  0x00004ef8 istore  0x00000001 , 0x00000003 
+ 00021383  0x00004ef9 branch  0x000053a1 
+ 00021384  0x00004f00 storet  0x00000002 , 0x00000678 
+ 00021385  0x00004f01 jam  0x00000029 , 0x000006e2 
+ 00021386  0x00004f02 setarg  0x00000002 
+ 00021387  0x00004f03 call  0x00005397 
+ 00021388  0x00004f04 fetcht  0x00000002 , 0x00000678 
+ 00021389  0x00004f05 istoret  0x00000002 , 0x00000003 
+ 00021390  0x00004f06 branch  0x000053a1 
+ 00021391  0x00004f0b jam  0x0000002b , 0x000006e2 
+ 00021392  0x00004f0c branch  0x0000533c 
+ 00021393  0x00004f11 jam  0x00000040 , 0x000006e2 
+ 00021394  0x00004f12 setarg  0x00000002 
+ 00021395  0x00004f13 call  0x00005397 
+ 00021396  0x00004f14 fetch  0x00000002 , 0x00004075 
+ 00021397  0x00004f15 istore  0x00000002 , 0x00000003 
+ 00021398  0x00004f16 branch  0x000053a1 
+ 00021399  0x00004f23 jam  0x00000002 , 0x000006e1 
+ 00021400  0x00004f24 store  0x00000001 , 0x000006e3 
+ 00021401  0x00004f25 storet  0x00000008 , 0x00000678 
+ 00021402  0x00004f26 bpatch  0x00000066 , 0x0000400c 
+ 00021403  0x00004f27 call  0x000053a3 
+ 00021404  0x00004f28 fetcht  0x00000008 , 0x00000678 
+ 00021405  0x00004f29 call  0x00006da2 
+ 00021406  0x00004f2a fetch  0x00000003 , 0x000006e1 
+ 00021407  0x00004f2b istore  0x00000003 , 0x00000003 
+ 00021408  0x00004f2c rtn 
+ 00021409  0x00004f2f bpatch  0x00000067 , 0x0000400c 
+ 00021410  0x00004f30 branch  0x00006da4 
+ 00021411  0x00004f33 call  0x000053ac 
+ 00021412  0x00004f34 rtn  0x00000001 
+ 00021413  0x00004f36 call  0x000053aa 
+ 00021414  0x00004f37 fetch  0x00000004 , 0x000044fa 
+ 00021415  0x00004f38 rshift2  0x0000003f , 0x0000003f 
+ 00021416  0x00004f39 rtn  0x00000034 
+ 00021417  0x00004f3a branch  0x00007c91 
+ 00021418  0x00004f3d fetcht  0x00000001 , 0x000044f9 
+ 00021419  0x00004f3e branch  0x00006ef7 
+ 00021420  0x00004f41 fetcht  0x00000001 , 0x000044f9 
+ 00021421  0x00004f42 branch  0x00006f02 
+ 00021422  0x00004f45 fetcht  0x00000001 , 0x000044f9 
+ 00021423  0x00004f46 branch  0x00006ef3 
+ 00021424  0x00004f52 storer  0x00000011 , 0x00000002 , 0x0000070b 
+ 00021425  0x00004f53 storer  0x00000012 , 0x00000002 , 0x00000709 
+ 00021426  0x00004f54 fetch  0x00000002 , 0x00004398 
+ 00021427  0x00004f55 store  0x00000002 , 0x0000070d 
+ 00021428  0x00004f56 call  0x000051a8 
+ 00021429  0x00004f57 rtn  0x00000028 
+ 00021430  0x00004f5a fetcht  0x00000002 , 0x00000709 
+ 00021431  0x00004f5b fetch  0x00000001 , 0x0000450e 
+ 00021432  0x00004f5c call  0x00007db0 
+ 00021433  0x00004f5d copy  0x0000003f , 0x00000039 
+ 00021434  0x00004f5e copy  0x00000002 , 0x0000003f 
+ 00021435  0x00004f5f isub  0x00000039 , 0x0000003f 
+ 00021436  0x00004f60 store  0x00000002 , 0x00000709 
+ 00021437  0x00004f61 call  0x00005330 
+ 00021438  0x00004f62 fetch  0x00000002 , 0x00000709 
+ 00021439  0x00004f63 rtn  0x00000034 
+ 00021440  0x00004f64 branch  0x000053b6 
+ 00021441  0x00004f6a rtn 
+ 00021442  0x00004f6d fetch  0x00000001 , 0x0000450a 
+ 00021443  0x00004f6e rtn  0x00000034 
+ 00021444  0x00004f6f fetch  0x00000001 , 0x0000450b 
+ 00021445  0x00004f70 rtn  0x00000034 
+ 00021446  0x00004f71 increase  0xffffffff , 0x0000003f 
+ 00021447  0x00004f72 store  0x00000001 , 0x0000450b 
+ 00021448  0x00004f73 nrtn  0x00000034 
+ 00021449  0x00004f74 jam  0x00000005 , 0x0000450b 
+ 00021450  0x00004f75 call  0x00006f82 
+ 00021451  0x00004f76 call  0x00006fb0 
+ 00021452  0x00004f77 div  0x0000003f , 0x0000000a 
+ 00021453  0x00004f78 call  0x00007d5f 
+ 00021454  0x00004f79 div  0x0000003f , 0x00000064 
+ 00021455  0x00004f7a call  0x00007d5f 
+ 00021456  0x00004f7b remainder  0x00000002 
+ 00021457  0x00004f7c store  0x00000001 , 0x0000450c 
+ 00021458  0x00004f7d storet  0x00000001 , 0x0000450d 
+ 00021459  0x00004f7e rtn 
+ 00021460  0x00004f85 arg  0x00000008 , 0x00000007 
+ 00021461  0x00004f86 branch  0x000053dc 
+ 00021462  0x00004f89 arg  0x00000008 , 0x00000007 
+ 00021463  0x00004f8a branch  0x000053d8 
+ 00021464  0x00004f8d fetch  0x00000002 , 0x0000450f 
+ 00021465  0x00004f8e qset0  0x0000003f 
+ 00021466  0x00004f8f store  0x00000002 , 0x0000450f 
+ 00021467  0x00004f90 rtn 
+ 00021468  0x00004f93 fetch  0x00000002 , 0x0000450f 
+ 00021469  0x00004f94 qset1  0x0000003f 
+ 00021470  0x00004f95 store  0x00000002 , 0x0000450f 
+ 00021471  0x00004f96 rtn 
+ 00021472  0x00004f9c call  0x00007396 
+ 00021473  0x00004f9d call  0x00005410 
+ 00021474  0x00004f9e call  0x00005949 
+ 00021475  0x00004f9f rtn  0x0000002b 
+ 00021476  0x00004fa0 call  0x00005747 
+ 00021477  0x00004fa1 call  0x00005f37 
+ 00021478  0x00004fa2 call  0x000053ec 
+ 00021479  0x00004fa3 call  0x000059ed 
+ 00021480  0x00004fa5 fetch  0x00000002 , 0x000044e9 
+ 00021481  0x00004fa6 bbit1  0x0000000c , 0x00005c1a 
+ 00021482  0x00004fa7 call  0x00005eb6 
+ 00021483  0x00004fa8 branch  0x0000548c 
+ 00021484  0x00004fac bpatch  0x00000068 , 0x0000400d 
+ 00021485  0x00004fad setarg  0x00006235 
+ 00021486  0x00004fae store  0x00000002 , 0x000045f8 
+ 00021487  0x00004faf setarg  0x0000622b 
+ 00021488  0x00004fb0 store  0x00000002 , 0x000045fa 
+ 00021489  0x00004fb1 setarg  0x00006109 
+ 00021490  0x00004fb2 store  0x00000002 , 0x000043e9 
+ 00021491  0x00004fb3 setarg  0x00006096 
+ 00021492  0x00004fb4 store  0x00000002 , 0x000045f2 
+ 00021493  0x00004fb5 setarg  0x000060c1 
+ 00021494  0x00004fb6 store  0x00000002 , 0x000045f4 
+ 00021495  0x00004fb7 setarg  0x0000550c 
+ 00021496  0x00004fb8 store  0x00000002 , 0x000045f6 
+ 00021497  0x00004fb9 setarg  0x00005b23 
+ 00021498  0x00004fba store  0x00000002 , 0x000043d9 
+ 00021499  0x00004fbb setarg  0x00005507 
+ 00021500  0x00004fbc store  0x00000002 , 0x000043d7 
+ 00021501  0x00004fbd setarg  0x00005ac1 
+ 00021502  0x00004fbe store  0x00000002 , 0x000043dd 
+ 00021503  0x00004fbf setarg  0x00005e5d 
+ 00021504  0x00004fc0 store  0x00000002 , 0x000043db 
+ 00021505  0x00004fc1 setarg  0x000054d5 
+ 00021506  0x00004fc2 store  0x00000002 , 0x000043d5 
+ 00021507  0x00004fc3 setarg  0x00005b08 
+ 00021508  0x00004fc4 store  0x00000002 , 0x000043df 
+ 00021509  0x00004fc5 setarg  0x00005b85 
+ 00021510  0x00004fc6 store  0x00000002 , 0x000043e3 
+ 00021511  0x00004fc7 setarg  0x000055fa 
+ 00021512  0x00004fc8 store  0x00000002 , 0x000043e7 
+ 00021513  0x00004fc9 setarg  0x000054c5 
+ 00021514  0x00004fca store  0x00000002 , 0x000043d3 
+ 00021515  0x00004fcb setarg  0x00006221 
+ 00021516  0x00004fcc store  0x00000002 , 0x000043e1 
+ 00021517  0x00004fcd setarg  0x00006228 
+ 00021518  0x00004fce store  0x00000002 , 0x000043e5 
+ 00021519  0x00004fcf rtn 
+ 00021520  0x00004fd3 rtn  0x0000002b 
+ 00021521  0x00004fd4 call  0x000035f0 
+ 00021522  0x00004fd5 call  0x0000325b 
+ 00021523  0x00004fd6 call  0x000062aa 
+ 00021524  0x00004fd7 call  0x00005589 
+ 00021525  0x00004fd8 call  0x000055c6 
+ 00021526  0x00004fd9 call  0x0000544a 
+ 00021527  0x00004fda call  0x00006177 
+ 00021528  0x00004fdb call  0x00002a41 
+ 00021529  0x00004fdd bpatch  0x00000069 , 0x0000400d 
+ 00021530  0x00004fde fetch  0x00000008 , 0x00004713 
+ 00021531  0x00004fdf bbit1  0x00000013 , 0x00005d60 
+ 00021532  0x00004fe0 bbit1  0x00000012 , 0x00005d6e 
+ 00021533  0x00004fe1 bbit1  0x00000014 , 0x00005da6 
+ 00021534  0x00004fe2 rtn 
+ 00021535  0x00004fe5 jam  0x00000010 , 0x00004099 
+ 00021536  0x00004fe6 fetch  0x00000008 , 0x00004713 
+ 00021537  0x00004fe7 rtnbit1  0x0000000c 
+ 00021538  0x00004fe8 jam  0x00000018 , 0x00004099 
+ 00021539  0x00004fe9 rtn 
+ 00021540  0x00004fec call  0x00003281 
+ 00021541  0x00004fed fetch  0x00000008 , 0x00004713 
+ 00021542  0x00004fee rtnbit0  0x0000003d 
+ 00021543  0x00004fef branch  0x00003284 
+ 00021544  0x00004ff2 bpatch  0x0000006a , 0x0000400d 
+ 00021545  0x00004ff3 fetch  0x00000008 , 0x00004713 
+ 00021546  0x00004ff4 isolate1  0x00000005 , 0x0000003f 
+ 00021547  0x00004ff5 call  0x00005f08 , 0x00000001 
+ 00021548  0x00004ff8 fetch  0x00000002 , 0x0000463a 
+ 00021549  0x00004ff9 store  0x00000002 , 0x000045d6 
+ 00021550  0x00004ffb fetch  0x00000001 , 0x0000463d 
+ 00021551  0x00004ffc store  0x00000002 , 0x000045dc 
+ 00021552  0x00004ffe fetch  0x00000005 , 0x0000463f 
+ 00021553  0x00004fff store  0x00000005 , 0x00004628 
+ 00021554  0x00005001 fetch  0x00000001 , 0x0000463e 
+ 00021555  0x00005002 store  0x00000001 , 0x000045d1 
+ 00021556  0x00005004 fetch  0x00000001 , 0x000045b9 
+ 00021557  0x00005005 ncall  0x0000326b , 0x00000034 
+ 00021558  0x00005007 bpatch  0x0000006b , 0x0000400d 
+ 00021559  0x00005008 call  0x0000541f 
+ 00021560  0x00005009 call  0x00005424 
+ 00021561  0x0000500a call  0x00005fe4 
+ 00021562  0x0000500b branch  0x00003287 
+ 00021563  0x0000500e setarg  0x00009000 
+ 00021564  0x0000500f store  0x00000002 , 0x000042f7 
+ 00021565  0x00005010 jam  0x00000003 , 0x000040c1 
+ 00021566  0x00005011 jam  0x00000008 , 0x000040a6 
+ 00021567  0x00005012 jam  0x00000000 , 0x0000497f 
+ 00021568  0x00005013 jam  0x00000000 , 0x00004980 
+ 00021569  0x00005014 setarg  0x00000200 
+ 00021570  0x00005015 store  0x00000002 , 0x000040a4 
+ 00021571  0x00005016 jam  0x00000017 , 0x000042e1 
+ 00021572  0x00005017 jam  0x00000017 , 0x000042e3 
+ 00021573  0x00005019 setarg  0x000047c3 
+ 00021574  0x0000501a store  0x00000002 , 0x0000433f 
+ 00021575  0x0000501b setarg  0x00000010 
+ 00021576  0x0000501c store  0x00000002 , 0x00004341 
+ 00021577  0x0000501d branch  0x00005539 
+ 00021578  0x00005020 bpatch  0x0000006c , 0x0000400d 
+ 00021579  0x00005021 call  0x0000543b 
+ 00021580  0x00005022 jam  0x00000000 , 0x0000487a 
+ 00021581  0x00005024 setarg  0x00000a77 
+ 00021582  0x00005025 store  0x00000002 , 0x000043f5 
+ 00021583  0x00005026 setsect  0x00000000 , 0x00001224 
+ 00021584  0x00005027 setsect  0x00000001 , 0x00004000 
+ 00021585  0x00005028 setsect  0x00000002 , 0x00000000 
+ 00021586  0x00005029 istore  0x00000005 , 0x00000005 
+ 00021587  0x0000502c fetch  0x00000008 , 0x00004713 
+ 00021588  0x0000502d bbit0  0x0000001b , 0x00005458 
+ 00021589  0x0000502e setarg  0x00000006 
+ 00021590  0x0000502f store  0x00000002 , 0x000042d3 
+ 00021591  0x00005030 store  0x00000002 , 0x000042d5 
+ 00021592  0x00005032 call  0x00005481 
+ 00021593  0x00005033 fetch  0x00000008 , 0x00004713 
+ 00021594  0x00005034 bbit0  0x00000018 , 0x0000545c 
+ 00021595  0x00005035 call  0x00005476 
+ 00021596  0x00005037 fetch  0x00000003 , 0x00004608 
+ 00021597  0x00005038 store  0x00000003 , 0x0000475d 
+ 00021598  0x00005039 fetch  0x00000001 , 0x00004666 
+ 00021599  0x0000503a store  0x00000001 , 0x000049a1 
+ 00021600  0x0000503b fetch  0x00000003 , 0x000042de 
+ 00021601  0x0000503c store  0x00000003 , 0x00004797 
+ 00021602  0x0000503d setarg  0x00000000 
+ 00021603  0x0000503e store  0x00000007 , 0x00004846 
+ 00021604  0x0000503f fetch  0x00000001 , 0x000044eb 
+ 00021605  0x00005040 store  0x00000001 , 0x0000497c 
+ 00021606  0x00005041 store  0x00000001 , 0x0000497d 
+ 00021607  0x00005042 call  0x00002969 
+ 00021608  0x00005044 bpatch  0x0000006d , 0x0000400d 
+ 00021609  0x00005045 fetch  0x00000001 , 0x0000464f 
+ 00021610  0x00005046 store  0x00000001 , 0x00004958 
+ 00021611  0x00005047 fetch  0x00000001 , 0x0000464e 
+ 00021612  0x00005048 rtneq  0x000000ff 
+ 00021613  0x00005049 fetcht  0x00000001 , 0x0000464e 
+ 00021614  0x0000504a call  0x000055b5 
+ 00021615  0x0000504b fetcht  0x00000001 , 0x0000464e 
+ 00021616  0x0000504c call  0x00006ee6 
+ 00021617  0x0000504d call  0x00005473 , 0x00000001 
+ 00021618  0x0000504e branch  0x000055b1 
+ 00021619  0x00005050 fetch  0x00000001 , 0x00004650 
+ 00021620  0x00005051 store  0x00000001 , 0x00004958 
+ 00021621  0x00005052 rtn 
+ 00021622  0x00005055 fetch  0x00000003 , 0x00004743 
+ 00021623  0x00005056 store  0x00000003 , 0x00004608 
+ 00021624  0x00005057 fetch  0x00000003 , 0x00004746 
+ 00021625  0x00005058 store  0x00000003 , 0x0000460b 
+ 00021626  0x00005059 fetch  0x00000001 , 0x00004749 
+ 00021627  0x0000505a store  0x00000001 , 0x00004621 
+ 00021628  0x0000505b fetch  0x00000004 , 0x00004755 
+ 00021629  0x0000505c store  0x00000004 , 0x00004751 
+ 00021630  0x0000505e setarg  0x00100c0c 
+ 00021631  0x0000505f store  0x00000003 , 0x000045a7 
+ 00021632  0x00005060 rtn 
+ 00021633  0x00005063 fetch  0x00000003 , 0x0000474a 
+ 00021634  0x00005064 store  0x00000003 , 0x00004608 
+ 00021635  0x00005065 fetch  0x00000003 , 0x0000474d 
+ 00021636  0x00005066 store  0x00000003 , 0x0000460b 
+ 00021637  0x00005067 fetch  0x00000001 , 0x00004750 
+ 00021638  0x00005068 store  0x00000001 , 0x00004621 
+ 00021639  0x00005069 fetch  0x00000004 , 0x00004759 
+ 00021640  0x0000506a store  0x00000004 , 0x00004751 
+ 00021641  0x0000506c setarg  0x001c1919 
+ 00021642  0x0000506d store  0x00000003 , 0x000045a7 
+ 00021643  0x0000506e rtn 
+ 00021644  0x0000507b bpatch  0x0000006e , 0x0000400d 
+ 00021645  0x0000507c fetch  0x00000008 , 0x00004713 
+ 00021646  0x0000507d bbit1  0x0000003e , 0x0000602d 
+ 00021647  0x0000507e fetch  0x00000001 , 0x00004666 
+ 00021648  0x0000507f beq  0x00000000 , 0x0000601c 
+ 00021649  0x00005081 call  0x00005aa8 
+ 00021650  0x00005082 fetch  0x00000001 , 0x00004666 
+ 00021651  0x00005083 beq  0x00000001 , 0x00005496 
+ 00021652  0x00005084 beq  0x00000002 , 0x0000549b 
+ 00021653  0x00005085 rtn 
+ 00021654  0x00005087 fetch  0x00000006 , 0x00004668 
+ 00021655  0x00005088 fetcht  0x00000006 , 0x000046e6 
+ 00021656  0x00005089 isub  0x00000002 , 0x0000003e 
+ 00021657  0x0000508a branch  0x00005a94 , 0x00000005 
+ 00021658  0x0000508b branch  0x000054a0 
+ 00021659  0x0000508e fetch  0x00000006 , 0x00004675 
+ 00021660  0x0000508f fetcht  0x00000006 , 0x000046e6 
+ 00021661  0x00005090 isub  0x00000002 , 0x0000003e 
+ 00021662  0x00005091 branch  0x00005a94 , 0x00000005 
+ 00021663  0x00005092 branch  0x000054a0 
+ 00021664  0x00005095 bpatch  0x0000006f , 0x0000400d 
+ 00021665  0x00005096 call  0x0000619f 
+ 00021666  0x00005097 arg  0x00004667 , 0x00000011 
+ 00021667  0x00005098 fetch  0x00000001 , 0x00004666 
+ 00021668  0x00005099 increase  0xffffffff , 0x0000003f 
+ 00021669  0x0000509a mul32  0x0000003f , 0x0000001d , 0x0000003f 
+ 00021670  0x0000509b iadd  0x00000011 , 0x00000011 
+ 00021671  0x0000509c ifetch  0x00000001 , 0x00000011 
+ 00021672  0x0000509d store  0x00000001 , 0x000043f3 
+ 00021673  0x0000509f fetch  0x00000001 , 0x000043f3 
+ 00021674  0x000050a0 beq  0x00000034 , 0x000054b6 
+ 00021675  0x000050a1 branch  0x00005a94 
+ 00021676  0x000050a4 bpatch  0x00000070 , 0x0000400e 
+ 00021677  0x000050a5 disable  0x00000028 
+ 00021678  0x000050a6 fetch  0x00000008 , 0x00004713 
+ 00021679  0x000050a7 bbit0  0x0000000b , 0x000054b3 
+ 00021680  0x000050a8 fetch  0x00000001 , 0x00008132 
+ 00021681  0x000050a9 bbit1  0x00000004 , 0x000054b3 
+ 00021682  0x000050aa enable  0x00000028 
+ 00021683  0x000050ac fetch  0x00000001 , 0x00004780 
+ 00021684  0x000050ad store  0x00000001 , 0x0000477f 
+ 00021685  0x000050ae rtn 
+ 00021686  0x000050b1 jam  0x00000001 , 0x00004795 
+ 00021687  0x000050b2 fetcht  0x00000001 , 0x0000471e 
+ 00021688  0x000050b3 fetch  0x00000001 , 0x0000478f 
+ 00021689  0x000050b4 beq  0x000000ff , 0x000054bb 
+ 00021690  0x000050b5 fetcht  0x00000001 , 0x0000463c 
+ 00021691  0x000050b7 storet  0x00000001 , 0x00004845 
+ 00021692  0x000050b8 call  0x0000432d 
+ 00021693  0x000050b9 fetch  0x00000003 , 0x0000479d 
+ 00021694  0x000050ba store  0x00000003 , 0x0000434d 
+ 00021695  0x000050bb call  0x00005b6b 
+ 00021696  0x000050bc setarg  0x00000004 
+ 00021697  0x000050bd istore  0x00000001 , 0x00000006 
+ 00021698  0x000050be arg  0x00004369 , 0x00000006 
+ 00021699  0x000050bf call  0x00005b72 
+ 00021700  0x000050c0 branch  0x00007870 
+ 00021701  0x000050c5 bmark1  0x00000026 , 0x00004308 
+ 00021702  0x000050c6 fetch  0x00000001 , 0x00004956 
+ 00021703  0x000050c7 branch  0x00004308 , 0x00000034 
+ 00021704  0x000050c8 fetch  0x00000001 , 0x000047c2 
+ 00021705  0x000050c9 beq  0x00000001 , 0x00004308 
+ 00021706  0x000050ca fetch  0x00000001 , 0x00004857 
+ 00021707  0x000050cb nbranch  0x00004308 , 0x00000034 
+ 00021708  0x000050cc branch  0x0000430a 
+ 00021709  0x000050d6 bpatch  0x00000071 , 0x0000400e 
+ 00021710  0x000050d7 setarg  0x00000006 
+ 00021711  0x000050d8 call  0x000069e5 
+ 00021712  0x000050d9 bbit1  0x00000003 , 0x000054d3 
+ 00021713  0x000050da call  0x000059da 
+ 00021714  0x000050db call  0x000059ed 
+ 00021715  0x000050dd call  0x000054dc 
+ 00021716  0x000050de branch  0x00004327 
+ 00021717  0x000050e1 bpatch  0x00000072 , 0x0000400e 
+ 00021718  0x000050e2 call  0x0000739a 
+ 00021719  0x000050e3 call  0x000056a9 
+ 00021720  0x000050e4 call  0x000054dc 
+ 00021721  0x000050e5 call  0x00005d9e 
+ 00021722  0x000050e6 fetcht  0x00000001 , 0x00004659 
+ 00021723  0x000050e7 branch  0x00006ed3 
+ 00021724  0x000050eb bpatch  0x00000073 , 0x0000400e 
+ 00021725  0x000050ec call  0x00005a92 
+ 00021726  0x000050ed call  0x00007de2 
+ 00021727  0x000050ee call  0x0000611a 
+ 00021728  0x000050ef call  0x0000550c 
+ 00021729  0x000050f0 call  0x000054f9 
+ 00021730  0x000050f1 fetcht  0x00000001 , 0x0000465b 
+ 00021731  0x000050f2 call  0x000055b5 
+ 00021732  0x000050f3 call  0x000055b9 
+ 00021733  0x000050f4 call  0x000061fd 
+ 00021734  0x000050f5 call  0x000054f2 
+ 00021735  0x000050f6 branch  0x000054e8 
+ 00021736  0x000050f9 fetch  0x00000008 , 0x00004713 
+ 00021737  0x000050fa rtnbit0  0x0000003c 
+ 00021738  0x000050fc fetcht  0x00000001 , 0x0000464a 
+ 00021739  0x000050fd call  0x00006ed3 
+ 00021740  0x000050fe fetcht  0x00000001 , 0x0000464b 
+ 00021741  0x000050ff call  0x00006ed3 
+ 00021742  0x00005100 fetcht  0x00000001 , 0x0000464a 
+ 00021743  0x00005101 call  0x000055b1 
+ 00021744  0x00005102 fetcht  0x00000001 , 0x0000464b 
+ 00021745  0x00005103 branch  0x000055b1 
+ 00021746  0x00005106 fetch  0x00000008 , 0x00004713 
+ 00021747  0x00005107 rtnbit0  0x00000015 
+ 00021748  0x00005108 fetch  0x00000001 , 0x00004407 
+ 00021749  0x00005109 rtnne  0x00000002 
+ 00021750  0x0000510a fetch  0x00000001 , 0x00004635 
+ 00021751  0x0000510b arg  0x000000c0 , 0x00000002 
+ 00021752  0x0000510c branch  0x00006f21 
+ 00021753  0x00005111 arg  0x00008070 , 0x00000006 
+ 00021754  0x00005112 arg  0x00000010 , 0x00000039 
+ 00021755  0x00005114 ifetch  0x00000001 , 0x00000006 
+ 00021756  0x00005115 nbranch  0x00005500 , 0x00000034 
+ 00021757  0x00005116 setarg  0x00000080 
+ 00021758  0x00005117 add  0x00000006 , 0xffffffff , 0x00000005 
+ 00021759  0x00005118 istore  0x00000001 , 0x00000005 
+ 00021760  0x0000511a loop  0x000054fb 
+ 00021761  0x0000511b arg  0x000080dc , 0x0000003f 
+ 00021762  0x0000511c isub  0x00000006 , 0x0000003e 
+ 00021763  0x0000511d rtn  0x00000005 
+ 00021764  0x0000511f arg  0x00000008 , 0x00000039 
+ 00021765  0x00005120 arg  0x000080d4 , 0x00000006 
+ 00021766  0x00005121 branch  0x000054fb 
+ 00021767  0x00005124 rtnmark1  0x00000026 
+ 00021768  0x00005125 call  0x0000550c 
+ 00021769  0x00005126 fetch  0x00000001 , 0x00000015 
+ 00021770  0x00005127 nrtn  0x00000034 
+ 00021771  0x00005128 branch  0x00006ed3 
+ 00021772  0x0000512b bpatch  0x00000074 , 0x0000400e 
+ 00021773  0x0000512c fetcht  0x00000001 , 0x0000464a 
+ 00021774  0x0000512d call  0x00006edd 
+ 00021775  0x0000512e fetcht  0x00000001 , 0x0000464b 
+ 00021776  0x0000512f call  0x00006edd 
+ 00021777  0x00005131 call  0x0000561c 
+ 00021778  0x00005132 fetch  0x00000001 , 0x0000464c 
+ 00021779  0x00005133 call  0x00005943 
+ 00021780  0x00005134 call  0x000069dc 
+ 00021781  0x00005136 fetcht  0x00000001 , 0x00004644 
+ 00021782  0x00005137 call  0x00006eb6 
+ 00021783  0x00005138 fetcht  0x00000001 , 0x00004646 
+ 00021784  0x00005139 call  0x00006eb6 
+ 00021785  0x0000513a fetcht  0x00000001 , 0x00004645 
+ 00021786  0x0000513b call  0x00006eb6 
+ 00021787  0x0000513d fetcht  0x00000001 , 0x00004647 
+ 00021788  0x0000513e call  0x00006eb6 
+ 00021789  0x0000513f fetcht  0x00000001 , 0x00004648 
+ 00021790  0x00005140 call  0x00006eb6 
+ 00021791  0x00005141 fetcht  0x00000001 , 0x00004649 
+ 00021792  0x00005142 call  0x00006eb6 
+ 00021793  0x00005143 fetcht  0x00000001 , 0x00004655 
+ 00021794  0x00005144 call  0x00006eb6 
+ 00021795  0x00005146 fetcht  0x00000001 , 0x00004656 
+ 00021796  0x00005147 call  0x00006eb6 
+ 00021797  0x00005149 fetcht  0x00000001 , 0x0000464a 
+ 00021798  0x0000514a call  0x00006eb2 
+ 00021799  0x0000514b fetcht  0x00000001 , 0x0000464b 
+ 00021800  0x0000514c call  0x00006eb2 
+ 00021801  0x0000514d fetcht  0x00000001 , 0x00004652 
+ 00021802  0x0000514e call  0x00006eb2 
+ 00021803  0x0000514f fetcht  0x00000001 , 0x00004653 
+ 00021804  0x00005150 call  0x00006eb2 
+ 00021805  0x00005151 fetcht  0x00000001 , 0x00004659 
+ 00021806  0x00005152 branch  0x00006eb6 
+ 00021807  0x00005157 fetch  0x00000002 , 0x000044e9 
+ 00021808  0x00005158 rtnbit0  0x00000009 
+ 00021809  0x00005159 copy  0x00000011 , 0x0000003f 
+ 00021810  0x0000515a nbranch  0x000029d5 , 0x00000034 
+ 00021811  0x0000515b branch  0x000029da 
+ 00021812  0x00005160 bpatch  0x00000075 , 0x0000400e 
+ 00021813  0x00005161 fetch  0x00000001 , 0x00004407 
+ 00021814  0x00005162 rtnne  0x00000002 
+ 00021815  0x00005163 fetcht  0x00000001 , 0x00004635 
+ 00021816  0x00005164 branch  0x00006f0f 
+ 00021817  0x00005167 fetch  0x00000008 , 0x00004713 
+ 00021818  0x00005168 rtnbit0  0x00000015 
+ 00021819  0x00005169 jam  0x00000001 , 0x00004636 
+ 00021820  0x0000516a rtn 
+ 00021821  0x0000516d bpatch  0x00000076 , 0x0000400e 
+ 00021822  0x0000516e fetch  0x00000008 , 0x00004713 
+ 00021823  0x0000516f rtnbit0  0x00000015 
+ 00021824  0x00005170 call  0x00005534 
+ 00021825  0x00005171 fetch  0x00000001 , 0x00004407 
+ 00021826  0x00005172 beq  0x00000002 , 0x00005545 
+ 00021827  0x00005173 jam  0x00000003 , 0x00004636 
+ 00021828  0x00005174 branch  0x00005547 
+ 00021829  0x00005177 jam  0x00000002 , 0x00004636 
+ 00021830  0x00005178 branch  0x00005547 
+ 00021831  0x0000517b bpatch  0x00000077 , 0x0000400e 
+ 00021832  0x0000517c call  0x00006f82 
+ 00021833  0x0000517d call  0x00006fb0 
+ 00021834  0x0000517e store  0x00000002 , 0x00004633 
+ 00021835  0x0000517f fetch  0x00000001 , 0x00004407 
+ 00021836  0x00005180 bne  0x00000002 , 0x00005553 
+ 00021837  0x00005181 fetcht  0x00000002 , 0x00004633 
+ 00021838  0x00005182 mul32  0x00000002 , 0x00000008 , 0x0000003f 
+ 00021839  0x00005183 div  0x0000003f , 0x0000000a 
+ 00021840  0x00005184 call  0x00007d5f 
+ 00021841  0x00005185 iadd  0x00000002 , 0x0000003f 
+ 00021842  0x00005186 store  0x00000002 , 0x00004633 
+ 00021843  0x00005188 arg  0x0000462d , 0x00000011 
+ 00021844  0x00005189 call  0x00005563 
+ 00021845  0x0000518a fetch  0x00000001 , 0x0000440c 
+ 00021846  0x0000518b bbit1  0x00000001 , 0x000054cd 
+ 00021847  0x0000518c bbit0  0x00000000 , 0x0000555c 
+ 00021848  0x0000518d jam  0x00000001 , 0x00004637 
+ 00021849  0x0000518e branch  0x0000555a 
+ 00021850  0x00005191 arg  0x00000004 , 0x00000007 
+ 00021851  0x00005192 branch  0x00005f00 
+ 00021852  0x00005194 arg  0x00000004 , 0x00000007 
+ 00021853  0x00005195 call  0x00005f04 
+ 00021854  0x00005196 jam  0x00000001 , 0x00004709 
+ 00021855  0x00005197 fetch  0x00000001 , 0x00004637 
+ 00021856  0x00005198 rtn  0x00000034 
+ 00021857  0x00005199 jam  0x00000000 , 0x00004637 
+ 00021858  0x0000519a branch  0x0000616e 
+ 00021859  0x0000519e bpatch  0x00000078 , 0x0000400f 
+ 00021860  0x0000519f ifetch  0x00000008 , 0x00000011 
+ 00021861  0x000051a0 store  0x00000008 , 0x00000670 
+ 00021862  0x000051a1 fetch  0x00000001 , 0x00004636 
+ 00021863  0x000051a2 beq  0x00000000 , 0x0000556a 
+ 00021864  0x000051a3 beq  0x00000002 , 0x0000556a 
+ 00021865  0x000051a4 beq  0x00000003 , 0x00005588 
+ 00021866  0x000051a6 call  0x00006ff3 
+ 00021867  0x000051a7 call  0x00006feb 
+ 00021868  0x000051a8 fetch  0x00000002 , 0x00000676 
+ 00021869  0x000051a9 fetcht  0x00000002 , 0x00000672 
+ 00021870  0x000051aa isub  0x00000002 , 0x0000003e 
+ 00021871  0x000051ab ncall  0x00006fef , 0x00000002 
+ 00021872  0x000051ac fetcht  0x00000002 , 0x00000674 
+ 00021873  0x000051ad isub  0x00000002 , 0x0000003e 
+ 00021874  0x000051ae ncall  0x00006fe7 , 0x00000002 
+ 00021875  0x000051b0 fetch  0x00000002 , 0x00000676 
+ 00021876  0x000051b1 fetcht  0x00000002 , 0x00000670 
+ 00021877  0x000051b2 isub  0x00000002 , 0x0000003e 
+ 00021878  0x000051b3 branch  0x00005584 , 0x00000002 
+ 00021879  0x000051b4 fetcht  0x00000002 , 0x00000672 
+ 00021880  0x000051b5 isub  0x00000002 , 0x0000003f 
+ 00021881  0x000051b6 nbranch  0x00005586 , 0x00000002 
+ 00021882  0x000051b7 branch  0x00005586 , 0x00000034 
+ 00021883  0x000051b8 mul32  0x0000003f , 0x00000064 , 0x00000011 
+ 00021884  0x000051b9 fetch  0x00000002 , 0x00000670 
+ 00021885  0x000051ba fetcht  0x00000002 , 0x00000672 
+ 00021886  0x000051bb isub  0x00000002 , 0x00000002 
+ 00021887  0x000051bc copy  0x00000011 , 0x0000003f 
+ 00021888  0x000051bd idiv  0x00000002 
+ 00021889  0x000051be call  0x00007d5f 
+ 00021890  0x000051bf store  0x00000001 , 0x000047bd 
+ 00021891  0x000051c0 rtn 
+ 00021892  0x000051c3 jam  0x00000064 , 0x000047bd 
+ 00021893  0x000051c4 rtn 
+ 00021894  0x000051c6 jam  0x00000000 , 0x000047bd 
+ 00021895  0x000051c7 rtn 
+ 00021896  0x000051ca branch  0x0000556a 
+ 00021897  0x000051d1 fetcht  0x00000001 , 0x00004427 
+ 00021898  0x000051d2 call  0x00006ef7 
+ 00021899  0x000051d4 fetcht  0x00000001 , 0x00004644 
+ 00021900  0x000051d5 call  0x000055b5 
+ 00021901  0x000051d6 fetcht  0x00000001 , 0x00004646 
+ 00021902  0x000051d7 call  0x000055b5 
+ 00021903  0x000051d8 fetcht  0x00000001 , 0x00004645 
+ 00021904  0x000051d9 call  0x000055b5 
+ 00021905  0x000051da fetcht  0x00000001 , 0x00004647 
+ 00021906  0x000051db call  0x000055b5 
+ 00021907  0x000051dc fetcht  0x00000001 , 0x00004648 
+ 00021908  0x000051dd call  0x000055b5 
+ 00021909  0x000051de fetcht  0x00000001 , 0x00004649 
+ 00021910  0x000051df call  0x000055b5 
+ 00021911  0x000051e1 fetcht  0x00000001 , 0x00004654 
+ 00021912  0x000051e2 call  0x000055b5 
+ 00021913  0x000051e4 fetcht  0x00000001 , 0x00004655 
+ 00021914  0x000051e5 call  0x000055b5 
+ 00021915  0x000051e7 fetcht  0x00000001 , 0x00004656 
+ 00021916  0x000051e8 call  0x000055b5 
+ 00021917  0x000051ea fetcht  0x00000001 , 0x0000464a 
+ 00021918  0x000051eb call  0x000055b5 
+ 00021919  0x000051ed fetcht  0x00000001 , 0x0000464b 
+ 00021920  0x000051ee call  0x000055b5 
+ 00021921  0x000051f0 fetcht  0x00000001 , 0x00004652 
+ 00021922  0x000051f1 call  0x000055b5 
+ 00021923  0x000051f2 fetcht  0x00000001 , 0x00004653 
+ 00021924  0x000051f3 call  0x000055b5 
+ 00021925  0x000051f5 fetcht  0x00000001 , 0x00004659 
+ 00021926  0x000051f6 call  0x000055b5 
+ 00021927  0x000051f8 fetcht  0x00000001 , 0x0000465a 
+ 00021928  0x000051f9 call  0x000055b5 
+ 00021929  0x000051fb fetcht  0x00000001 , 0x0000464e 
+ 00021930  0x000051fc branch  0x000055b5 
+ 00021931  0x00005200 sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00021932  0x00005201 rtn  0x00000005 
+ 00021933  0x00005202 and  0x00000002 , 0x0000007f , 0x00000007 
+ 00021934  0x00005203 fetch  0x00000004 , 0x0000811c 
+ 00021935  0x00005204 qisolate1  0x0000003f 
+ 00021936  0x00005205 branch  0x000055b5 , 0x00000001 
+ 00021937  0x00005207 sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00021938  0x00005208 rtn  0x00000005 
+ 00021939  0x00005209 set1  0x00000007 , 0x00000002 
+ 00021940  0x0000520a branch  0x00006edd 
+ 00021941  0x0000520d sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00021942  0x0000520e rtn  0x00000005 
+ 00021943  0x0000520f set0  0x00000007 , 0x00000002 
+ 00021944  0x00005210 branch  0x00006edd 
+ 00021945  0x00005213 fetch  0x00000003 , 0x0000473c 
+ 00021946  0x00005214 store  0x00000003 , 0x00000670 
+ 00021947  0x00005215 arg  0x0000000d , 0x00000039 
+ 00021948  0x00005216 arg  0x00000000 , 0x00000002 
+ 00021949  0x00005218 fetch  0x00000003 , 0x00000670 
+ 00021950  0x00005219 isolate1  0x00000000 , 0x0000003f 
+ 00021951  0x0000521a call  0x00006f0f , 0x00000001 
+ 00021952  0x0000521b fetch  0x00000003 , 0x00000670 
+ 00021953  0x0000521c lshift  0x0000003f , 0x0000003f 
+ 00021954  0x0000521d store  0x00000003 , 0x00000670 
+ 00021955  0x0000521e increase  0x00000001 , 0x00000002 
+ 00021956  0x0000521f loop  0x000055bd 
+ 00021957  0x00005220 rtn 
+ 00021958  0x00005227 bpatch  0x00000079 , 0x0000400f 
+ 00021959  0x00005228 fetch  0x00000008 , 0x0000498d 
+ 00021960  0x00005229 rtn  0x00000034 
+ 00021961  0x0000522a fetch  0x00000001 , 0x0000498c 
+ 00021962  0x0000522b copy  0x0000003f , 0x00000011 
+ 00021963  0x0000522c sub  0x0000003f , 0x0000000b , 0x0000003e 
+ 00021964  0x0000522d nbranch  0x000055dd , 0x00000002 
+ 00021965  0x0000522f call  0x000055d6 
+ 00021966  0x00005231 arg  0x000047a9 , 0x00000005 
+ 00021967  0x00005232 call  0x000055d3 
+ 00021968  0x00005234 arg  0x0000436b , 0x00000005 
+ 00021969  0x00005235 call  0x000055d3 
+ 00021970  0x00005237 arg  0x0000426c , 0x00000005 
+ 00021971  0x00005239 arg  0x0000498d , 0x00000006 
+ 00021972  0x0000523a copy  0x00000011 , 0x00000039 
+ 00021973  0x0000523b branch  0x00007cda 
+ 00021974  0x0000523e arg  0x000047a9 , 0x00000005 
+ 00021975  0x0000523f call  0x000055db 
+ 00021976  0x00005241 arg  0x0000436b , 0x00000005 
+ 00021977  0x00005242 call  0x000055db 
+ 00021978  0x00005244 arg  0x0000426c , 0x00000005 
+ 00021979  0x00005246 arg  0x0000000b , 0x00000039 
+ 00021980  0x00005247 branch  0x00007ca1 
+ 00021981  0x0000524a call  0x000055f3 
+ 00021982  0x0000524c fetch  0x00000001 , 0x0000498c 
+ 00021983  0x0000524d increase  0x00000001 , 0x0000003f 
+ 00021984  0x0000524e store  0x00000001 , 0x000047a0 
+ 00021985  0x0000524f jam  0x00000009 , 0x000047a1 
+ 00021986  0x00005250 arg  0x0000498d , 0x00000006 
+ 00021987  0x00005251 arg  0x000047a2 , 0x00000005 
+ 00021988  0x00005252 copy  0x00000011 , 0x00000039 
+ 00021989  0x00005253 call  0x00007cda 
+ 00021990  0x00005255 fetch  0x00000001 , 0x0000498c 
+ 00021991  0x00005256 increase  0x00000001 , 0x0000003f 
+ 00021992  0x00005257 store  0x00000001 , 0x00004369 
+ 00021993  0x00005258 jam  0x00000009 , 0x0000436a 
+ 00021994  0x00005259 arg  0x0000498d , 0x00000006 
+ 00021995  0x0000525a arg  0x0000436b , 0x00000005 
+ 00021996  0x0000525b copy  0x00000011 , 0x00000039 
+ 00021997  0x0000525c call  0x00007cda 
+ 00021998  0x0000525e arg  0x0000498c , 0x00000006 
+ 00021999  0x0000525f arg  0x0000426b , 0x00000005 
+ 00022000  0x00005260 copy  0x00000011 , 0x00000039 
+ 00022001  0x00005261 increase  0x00000001 , 0x00000039 
+ 00022002  0x00005262 branch  0x00007cda 
+ 00022003  0x00005265 arg  0x000047a0 , 0x00000005 
+ 00022004  0x00005266 arg  0x00000014 , 0x00000039 
+ 00022005  0x00005267 branch  0x00007ca1 
+ 00022006  0x0000526e call  0x000055fb 
+ 00022007  0x0000526f jam  0x00000073 , 0x000043f5 
+ 00022008  0x00005271 call  0x000055fa 
+ 00022009  0x00005272 branch  0x000069e0 
+ 00022010  0x00005276 branch  0x00006bc6 
+ 00022011  0x00005279 fetch  0x00000001 , 0x0000464c 
+ 00022012  0x0000527a arg  0x00000021 , 0x00000002 
+ 00022013  0x0000527b call  0x00006f21 
+ 00022014  0x0000527c fetch  0x00000001 , 0x0000464d 
+ 00022015  0x0000527d arg  0x00000023 , 0x00000002 
+ 00022016  0x0000527e branch  0x00006f21 
+ 00022017  0x00005284 bpatch  0x0000007a , 0x0000400f 
+ 00022018  0x00005285 disable  0x00000028 
+ 00022019  0x00005286 setarg  0x00000000 
+ 00022020  0x00005287 store  0x00000006 , 0x00004847 
+ 00022021  0x00005288 call  0x000059f6 
+ 00022022  0x00005289 setarg  0x00000089 
+ 00022023  0x0000528a call  0x000069e4 
+ 00022024  0x0000528b call  0x00005747 
+ 00022025  0x0000528c call  0x00005612 
+ 00022026  0x0000528d call  0x00005617 
+ 00022027  0x0000528e call  0x000057a6 
+ 00022028  0x0000528f fetch  0x00000001 , 0x00004846 
+ 00022029  0x00005290 and_into  0x0000001f , 0x0000003f 
+ 00022030  0x00005291 store  0x00000001 , 0x00004846 
+ 00022031  0x00005292 nbranch  0x00005f37 , 0x00000028 
+ 00022032  0x00005293 call  0x00005f26 
+ 00022033  0x00005294 branch  0x00005c0b 
+ 00022034  0x00005299 fetch  0x00000001 , 0x00004856 
+ 00022035  0x0000529a rtn  0x00000034 
+ 00022036  0x0000529b store  0x00000001 , 0x0000484b 
+ 00022037  0x0000529c jam  0x00000000 , 0x00004856 
+ 00022038  0x0000529d branch  0x00007dba 
+ 00022039  0x000052a0 fetch  0x00000001 , 0x00004852 
+ 00022040  0x000052a1 rtn  0x00000034 
+ 00022041  0x000052a2 store  0x00000001 , 0x0000484c 
+ 00022042  0x000052a3 jam  0x00000000 , 0x00004852 
+ 00022043  0x000052a4 branch  0x00007dba 
+ 00022044  0x000052a7 call  0x00005629 
+ 00022045  0x000052a8 call  0x00005665 
+ 00022046  0x000052a9 fetch  0x00000001 , 0x00004850 
+ 00022047  0x000052aa fetcht  0x00000001 , 0x0000484f 
+ 00022048  0x000052ab store  0x00000001 , 0x0000484f 
+ 00022049  0x000052ac isub  0x00000002 , 0x0000003e 
+ 00022050  0x000052ad nbranch  0x0000430c , 0x00000005 
+ 00022051  0x000052ae fetch  0x00000001 , 0x00004854 
+ 00022052  0x000052af fetcht  0x00000001 , 0x00004853 
+ 00022053  0x000052b0 store  0x00000001 , 0x00004853 
+ 00022054  0x000052b1 isub  0x00000002 , 0x0000003e 
+ 00022055  0x000052b2 nbranch  0x0000430c , 0x00000005 
+ 00022056  0x000052b3 rtn 
+ 00022057  0x000052b5 fetch  0x00000001 , 0x00004652 
+ 00022058  0x000052b6 rtneq  0x000000ff 
+ 00022059  0x000052b7 arg  0x00000000 , 0x00000011 
+ 00022060  0x000052b8 fetcht  0x00000001 , 0x00004652 
+ 00022061  0x000052b9 call  0x00006ee6 
+ 00022062  0x000052ba setflag  0x00000001 , 0x00000000 , 0x00000011 
+ 00022063  0x000052bb fetcht  0x00000001 , 0x00004653 
+ 00022064  0x000052bc call  0x00006ee6 
+ 00022065  0x000052bd setflag  0x00000001 , 0x00000001 , 0x00000011 
+ 00022066  0x000052be copy  0x00000011 , 0x0000003f 
+ 00022067  0x000052bf store  0x00000001 , 0x00004850 
+ 00022068  0x000052c0 beq  0x00000001 , 0x00005639 
+ 00022069  0x000052c1 beq  0x00000002 , 0x0000563d 
+ 00022070  0x000052c2 fetch  0x00000001 , 0x00004851 
+ 00022071  0x000052c3 bbit1  0x00000007 , 0x00005649 
+ 00022072  0x000052c4 rtn 
+ 00022073  0x000052c7 fetch  0x00000001 , 0x0000484f 
+ 00022074  0x000052c8 beq  0x00000000 , 0x00005641 
+ 00022075  0x000052c9 beq  0x00000003 , 0x00005643 
+ 00022076  0x000052ca rtn 
+ 00022077  0x000052cc fetch  0x00000001 , 0x0000484f 
+ 00022078  0x000052cd beq  0x00000000 , 0x00005645 
+ 00022079  0x000052ce beq  0x00000003 , 0x00005647 
+ 00022080  0x000052cf rtn 
+ 00022081  0x000052d1 jam  0x00000082 , 0x00004851 
+ 00022082  0x000052d2 rtn 
+ 00022083  0x000052d4 jam  0x00000081 , 0x00004851 
+ 00022084  0x000052d5 rtn 
+ 00022085  0x000052d7 jam  0x00000080 , 0x00004851 
+ 00022086  0x000052d8 rtn 
+ 00022087  0x000052da jam  0x00000083 , 0x00004851 
+ 00022088  0x000052db rtn 
+ 00022089  0x000052dd fetch  0x00000001 , 0x00004851 
+ 00022090  0x000052de set0  0x00000007 , 0x0000003f 
+ 00022091  0x000052df store  0x00000001 , 0x00004851 
+ 00022092  0x000052e0 beq  0x00000000 , 0x00005651 
+ 00022093  0x000052e1 beq  0x00000001 , 0x00005654 
+ 00022094  0x000052e2 beq  0x00000002 , 0x00005657 
+ 00022095  0x000052e3 beq  0x00000003 , 0x0000565a 
+ 00022096  0x000052e4 rtn 
+ 00022097  0x000052e6 fetch  0x00000001 , 0x00004850 
+ 00022098  0x000052e7 beq  0x00000003 , 0x0000565d 
+ 00022099  0x000052e8 rtn 
+ 00022100  0x000052ea fetch  0x00000001 , 0x00004850 
+ 00022101  0x000052eb beq  0x00000000 , 0x0000565d 
+ 00022102  0x000052ec rtn 
+ 00022103  0x000052ee fetch  0x00000001 , 0x00004850 
+ 00022104  0x000052ef beq  0x00000003 , 0x00005661 
+ 00022105  0x000052f0 rtn 
+ 00022106  0x000052f2 fetch  0x00000001 , 0x00004850 
+ 00022107  0x000052f3 beq  0x00000000 , 0x00005661 
+ 00022108  0x000052f4 rtn 
+ 00022109  0x000052f6 fetch  0x00000001 , 0x00004852 
+ 00022110  0x000052f7 increase  0x00000001 , 0x0000003f 
+ 00022111  0x000052f8 store  0x00000001 , 0x00004852 
+ 00022112  0x000052f9 rtn 
+ 00022113  0x000052fb fetch  0x00000001 , 0x00004852 
+ 00022114  0x000052fc increase  0xffffffff , 0x0000003f 
+ 00022115  0x000052fd store  0x00000001 , 0x00004852 
+ 00022116  0x000052fe rtn 
+ 00022117  0x00005302 fetch  0x00000001 , 0x0000464a 
+ 00022118  0x00005303 rtneq  0x000000ff 
+ 00022119  0x00005304 arg  0x00000000 , 0x00000011 
+ 00022120  0x00005305 fetcht  0x00000001 , 0x0000464a 
+ 00022121  0x00005306 call  0x00006ee6 
+ 00022122  0x00005307 setflag  0x00000001 , 0x00000000 , 0x00000011 
+ 00022123  0x00005308 fetcht  0x00000001 , 0x0000464b 
+ 00022124  0x00005309 call  0x00006ee6 
+ 00022125  0x0000530a setflag  0x00000001 , 0x00000001 , 0x00000011 
+ 00022126  0x0000530b copy  0x00000011 , 0x0000003f 
+ 00022127  0x0000530c store  0x00000001 , 0x00004854 
+ 00022128  0x0000530d beq  0x00000001 , 0x00005675 
+ 00022129  0x0000530e beq  0x00000002 , 0x00005679 
+ 00022130  0x0000530f fetch  0x00000001 , 0x00004855 
+ 00022131  0x00005310 bbit1  0x00000007 , 0x00005685 
+ 00022132  0x00005311 rtn 
+ 00022133  0x00005314 fetch  0x00000001 , 0x00004853 
+ 00022134  0x00005315 beq  0x00000000 , 0x0000567d 
+ 00022135  0x00005316 beq  0x00000003 , 0x0000567f 
+ 00022136  0x00005317 rtn 
+ 00022137  0x00005319 fetch  0x00000001 , 0x00004853 
+ 00022138  0x0000531a beq  0x00000000 , 0x00005681 
+ 00022139  0x0000531b beq  0x00000003 , 0x00005683 
+ 00022140  0x0000531c rtn 
+ 00022141  0x0000531e jam  0x00000082 , 0x00004855 
+ 00022142  0x0000531f rtn 
+ 00022143  0x00005321 jam  0x00000081 , 0x00004855 
+ 00022144  0x00005322 rtn 
+ 00022145  0x00005324 jam  0x00000080 , 0x00004855 
+ 00022146  0x00005325 rtn 
+ 00022147  0x00005327 jam  0x00000083 , 0x00004855 
+ 00022148  0x00005328 rtn 
+ 00022149  0x0000532a fetch  0x00000001 , 0x00004855 
+ 00022150  0x0000532b set0  0x00000007 , 0x0000003f 
+ 00022151  0x0000532c store  0x00000001 , 0x00004855 
+ 00022152  0x0000532d beq  0x00000000 , 0x0000568d 
+ 00022153  0x0000532e beq  0x00000001 , 0x00005690 
+ 00022154  0x0000532f beq  0x00000002 , 0x00005693 
+ 00022155  0x00005330 beq  0x00000003 , 0x00005696 
+ 00022156  0x00005331 rtn 
+ 00022157  0x00005333 fetch  0x00000001 , 0x00004854 
+ 00022158  0x00005334 beq  0x00000003 , 0x00005699 
+ 00022159  0x00005335 rtn 
+ 00022160  0x00005337 fetch  0x00000001 , 0x00004854 
+ 00022161  0x00005338 beq  0x00000000 , 0x00005699 
+ 00022162  0x00005339 rtn 
+ 00022163  0x0000533b fetch  0x00000001 , 0x00004854 
+ 00022164  0x0000533c beq  0x00000003 , 0x0000569d 
+ 00022165  0x0000533d rtn 
+ 00022166  0x0000533f fetch  0x00000001 , 0x00004854 
+ 00022167  0x00005340 beq  0x00000000 , 0x0000569d 
+ 00022168  0x00005341 rtn 
+ 00022169  0x00005343 fetch  0x00000001 , 0x00004856 
+ 00022170  0x00005344 increase  0x00000001 , 0x0000003f 
+ 00022171  0x00005345 store  0x00000001 , 0x00004856 
+ 00022172  0x00005346 rtn 
+ 00022173  0x00005348 fetch  0x00000001 , 0x00004856 
+ 00022174  0x00005349 increase  0xffffffff , 0x0000003f 
+ 00022175  0x0000534a store  0x00000001 , 0x00004856 
+ 00022176  0x0000534b rtn 
+ 00022177  0x0000534f fetcht  0x00000001 , 0x0000464a 
+ 00022178  0x00005350 call  0x00006eb2 
+ 00022179  0x00005351 fetcht  0x00000001 , 0x0000464b 
+ 00022180  0x00005352 call  0x00006eb2 
+ 00022181  0x00005353 fetcht  0x00000001 , 0x00004652 
+ 00022182  0x00005354 call  0x00006eb2 
+ 00022183  0x00005355 fetcht  0x00000001 , 0x00004653 
+ 00022184  0x00005356 branch  0x00006eb2 
+ 00022185  0x00005359 fetcht  0x00000001 , 0x0000464a 
+ 00022186  0x0000535a call  0x000055ab 
+ 00022187  0x0000535b fetcht  0x00000001 , 0x0000464b 
+ 00022188  0x0000535c call  0x000055ab 
+ 00022189  0x0000535d fetcht  0x00000001 , 0x00004652 
+ 00022190  0x0000535e call  0x000055ab 
+ 00022191  0x0000535f fetcht  0x00000001 , 0x00004653 
+ 00022192  0x00005360 branch  0x000055ab 
+ 00022193  0x00005363 fetch  0x00000002 , 0x0000484b 
+ 00022194  0x00005364 rtn  0x00000034 
+ 00022195  0x00005365 jam  0x00000001 , 0x00004857 
+ 00022196  0x00005366 jam  0x0000000a , 0x00004858 
+ 00022197  0x00005367 rtn 
+ 00022198  0x0000536a arg  0x00004858 , 0x00000013 
+ 00022199  0x0000536b arg  0x000056b9 , 0x00000012 
+ 00022200  0x0000536c branch  0x000042e0 
+ 00022201  0x0000536e jam  0x00000000 , 0x00004857 
+ 00022202  0x0000536f rtn 
+ 00022203  0x00005378 fetch  0x00000001 , 0x00004649 
+ 00022204  0x00005379 rtneq  0x000000ff 
+ 00022205  0x0000537a arg  0x00000000 , 0x00000011 
+ 00022206  0x0000537b jam  0x00000005 , 0x00004977 
+ 00022207  0x0000537c fetcht  0x00000001 , 0x00004649 
+ 00022208  0x0000537d call  0x000056c8 
+ 00022209  0x0000537f store  0x00000001 , 0x00004974 
+ 00022210  0x00005380 fetch  0x00000001 , 0x00004654 
+ 00022211  0x00005381 beq  0x000000ff , 0x000056d8 
+ 00022212  0x00005382 call  0x000058df 
+ 00022213  0x00005384 copy  0x00000011 , 0x0000003f 
+ 00022214  0x00005385 bbit1  0x00000005 , 0x000056e0 
+ 00022215  0x00005386 branch  0x000056e7 
+ 00022216  0x00005389 fetch  0x00000008 , 0x00004713 
+ 00022217  0x0000538a bbit1  0x0000002b , 0x000056de 
+ 00022218  0x0000538b fetch  0x00000001 , 0x00004974 
+ 00022219  0x0000538c copy  0x0000003f , 0x00000013 
+ 00022220  0x0000538d fetch  0x00000001 , 0x00004654 
+ 00022221  0x0000538e beq  0x000000ff , 0x00005931 
+ 00022222  0x00005390 fetch  0x00000001 , 0x0000497b 
+ 00022223  0x00005391 nbranch  0x000056db , 0x00000034 
+ 00022224  0x00005393 call  0x00006ee6 
+ 00022225  0x00005394 fetcht  0x00000001 , 0x00004654 
+ 00022226  0x00005395 branch  0x000056de , 0x00000001 
+ 00022227  0x00005396 fetcht  0x00000001 , 0x00004654 
+ 00022228  0x00005397 call  0x00006ef7 
+ 00022229  0x00005398 fetcht  0x00000001 , 0x00004649 
+ 00022230  0x00005399 fetch  0x00000001 , 0x00004974 
+ 00022231  0x0000539a branch  0x00005925 
+ 00022232  0x0000539d fetcht  0x00000001 , 0x00004649 
+ 00022233  0x0000539e call  0x000055b5 
+ 00022234  0x0000539f branch  0x000056c5 
+ 00022235  0x000053a2 jam  0x00000000 , 0x0000487a 
+ 00022236  0x000053a3 jam  0x00000000 , 0x00004974 
+ 00022237  0x000053a4 rtn 
+ 00022238  0x000053a7 fetch  0x00000001 , 0x00004974 
+ 00022239  0x000053a8 branch  0x00005925 
+ 00022240  0x000053ab fetch  0x00000001 , 0x0000487a 
+ 00022241  0x000053ac rtneq  0x00000001 
+ 00022242  0x000053ad jam  0x00000001 , 0x0000487a 
+ 00022243  0x000053ae fetch  0x00000008 , 0x00004713 
+ 00022244  0x000053af rtnbit1  0x00000028 
+ 00022245  0x000053b0 rtnbit1  0x00000036 
+ 00022246  0x000053b1 branch  0x000056f7 
+ 00022247  0x000053b4 fetch  0x00000001 , 0x0000487a 
+ 00022248  0x000053b5 rtneq  0x00000000 
+ 00022249  0x000053b6 jam  0x00000000 , 0x0000487a 
+ 00022250  0x000053b7 fetch  0x00000008 , 0x00004713 
+ 00022251  0x000053b8 bbit1  0x00000028 , 0x000056ee 
+ 00022252  0x000053b9 bbit1  0x00000036 , 0x000056ee 
+ 00022253  0x000053ba rtn 
+ 00022254  0x000053bc fetch  0x00000001 , 0x0000487b 
+ 00022255  0x000053bd nbranch  0x000056f2 , 0x00000034 
+ 00022256  0x000053be fetch  0x00000001 , 0x0000497d 
+ 00022257  0x000053bf ncall  0x000056f7 , 0x00000034 
+ 00022258  0x000053c1 jam  0x00000000 , 0x0000487b 
+ 00022259  0x000053c2 fetch  0x00000001 , 0x000044eb 
+ 00022260  0x000053c3 store  0x00000001 , 0x0000497d 
+ 00022261  0x000053c4 store  0x00000001 , 0x0000497c 
+ 00022262  0x000053c5 rtn 
+ 00022263  0x000053c8 bpatch  0x0000007b , 0x0000400f 
+ 00022264  0x000053c9 call  0x00005728 
+ 00022265  0x000053ca rtn  0x00000028 
+ 00022266  0x000053cb fetch  0x00000001 , 0x00004690 
+ 00022267  0x000053cd copy  0x0000003f , 0x00000002 
+ 00022268  0x000053ce fetch  0x00000008 , 0x00004713 
+ 00022269  0x000053cf bbit1  0x00000017 , 0x00005704 
+ 00022270  0x000053d0 copy  0x00000002 , 0x0000003f 
+ 00022271  0x000053d2 increase  0x00000001 , 0x0000003f 
+ 00022272  0x000053d3 and  0x0000003f , 0x00000003 , 0x0000003f 
+ 00022273  0x000053d5 store  0x00000001 , 0x00004690 
+ 00022274  0x000053d6 call  0x00005744 
+ 00022275  0x000053d7 branch  0x00005cac 
+ 00022276  0x000053dd fetch  0x00000001 , 0x0000498a 
+ 00022277  0x000053de nbranch  0x00005721 , 0x00000034 
+ 00022278  0x000053e0 fetch  0x00000008 , 0x00004713 
+ 00022279  0x000053e1 bbit1  0x0000001c , 0x00005715 
+ 00022280  0x000053e2 copy  0x00000002 , 0x0000003f 
+ 00022281  0x000053e3 rtneq  0x00000001 
+ 00022282  0x000053e5 beq  0x00000000 , 0x00005711 
+ 00022283  0x000053e6 beq  0x00000002 , 0x0000570f 
+ 00022284  0x000053e7 rtn 
+ 00022285  0x000053ea setarg  0x00000002 
+ 00022286  0x000053eb branch  0x00005701 
+ 00022287  0x000053ed setarg  0x00000000 
+ 00022288  0x000053ee branch  0x00005701 
+ 00022289  0x000053f0 setarg  0x00000001 
+ 00022290  0x000053f1 branch  0x00005701 
+ 00022291  0x000053f3 setarg  0x00000003 
+ 00022292  0x000053f4 branch  0x00005701 
+ 00022293  0x000053f7 copy  0x00000002 , 0x0000003f 
+ 00022294  0x000053f8 rtneq  0x00000001 
+ 00022295  0x000053f9 beq  0x00000000 , 0x00005711 
+ 00022296  0x000053fa beq  0x00000002 , 0x00005713 
+ 00022297  0x000053fb beq  0x00000003 , 0x0000570f 
+ 00022298  0x000053fc rtn 
+ 00022299  0x000053fe copy  0x00000002 , 0x0000003f 
+ 00022300  0x000053ff rtneq  0x00000002 
+ 00022301  0x00005400 beq  0x00000000 , 0x00005713 
+ 00022302  0x00005401 beq  0x00000001 , 0x0000570f 
+ 00022303  0x00005402 beq  0x00000003 , 0x0000570d 
+ 00022304  0x00005403 rtn 
+ 00022305  0x00005407 fetch  0x00000008 , 0x00004713 
+ 00022306  0x00005408 bbit1  0x0000001c , 0x0000571b 
+ 00022307  0x00005409 copy  0x00000002 , 0x0000003f 
+ 00022308  0x0000540a rtneq  0x00000002 
+ 00022309  0x0000540c beq  0x00000000 , 0x0000570d 
+ 00022310  0x0000540d beq  0x00000001 , 0x0000570f 
+ 00022311  0x0000540e rtn 
+ 00022312  0x00005414 disable  0x00000028 
+ 00022313  0x00005415 fetch  0x00000008 , 0x00004713 
+ 00022314  0x00005416 rtnbit1  0x0000002b 
+ 00022315  0x00005417 branch  0x00005eb1 
+ 00022316  0x0000541a fetch  0x00000008 , 0x00004713 
+ 00022317  0x0000541b bbit1  0x00000028 , 0x00005730 
+ 00022318  0x0000541c bbit1  0x00000036 , 0x00005737 
+ 00022319  0x0000541d rtn 
+ 00022320  0x00005420 fetch  0x00000001 , 0x0000487a 
+ 00022321  0x00005421 rtnne  0x00000001 
+ 00022322  0x00005422 arg  0x0000497d , 0x00000013 
+ 00022323  0x00005423 arg  0x00005735 , 0x00000012 
+ 00022324  0x00005424 branch  0x000042e0 
+ 00022325  0x00005427 jam  0x00000001 , 0x0000487b 
+ 00022326  0x00005428 branch  0x00005ec6 
+ 00022327  0x0000542b fetch  0x00000001 , 0x0000487a 
+ 00022328  0x0000542c rtnne  0x00000001 
+ 00022329  0x0000542d arg  0x0000497c , 0x00000013 
+ 00022330  0x0000542e arg  0x0000573c , 0x00000012 
+ 00022331  0x0000542f branch  0x000042e0 
+ 00022332  0x00005432 jam  0x00000001 , 0x0000487b 
+ 00022333  0x00005433 branch  0x00005ba3 
+ 00022334  0x00005436 fetch  0x00000008 , 0x00004713 
+ 00022335  0x00005437 rtnbit1  0x0000001c 
+ 00022336  0x00005438 fetch  0x00000001 , 0x00004690 
+ 00022337  0x00005439 rtnne  0x00000003 
+ 00022338  0x0000543a jam  0x00000000 , 0x00004690 
+ 00022339  0x0000543b rtn 
+ 00022340  0x0000543e bpatch  0x0000007c , 0x0000400f 
+ 00022341  0x0000543f call  0x0000573e 
+ 00022342  0x00005440 call  0x0000613a 
+ 00022343  0x00005442 bpatch  0x0000007d , 0x0000400f 
+ 00022344  0x00005443 fetch  0x00000001 , 0x00004957 
+ 00022345  0x00005444 beq  0x0000000c , 0x0000576b 
+ 00022346  0x00005445 beq  0x00000003 , 0x00005785 
+ 00022347  0x00005446 beq  0x0000000b , 0x00005799 
+ 00022348  0x00005447 fetch  0x00000001 , 0x00004690 
+ 00022349  0x00005448 beq  0x00000000 , 0x00005753 
+ 00022350  0x00005449 beq  0x00000001 , 0x00005751 
+ 00022351  0x0000544a beq  0x00000002 , 0x00005755 
+ 00022352  0x0000544b beq  0x00000003 , 0x00005757 
+ 00022353  0x0000544d fetcht  0x00000001 , 0x00004869 
+ 00022354  0x0000544e branch  0x00005758 
+ 00022355  0x00005450 fetcht  0x00000001 , 0x00004868 
+ 00022356  0x00005451 branch  0x00005758 
+ 00022357  0x00005453 fetcht  0x00000001 , 0x0000486a 
+ 00022358  0x00005454 branch  0x00005758 
+ 00022359  0x00005456 fetcht  0x00000001 , 0x0000486b 
+ 00022360  0x00005458 fetch  0x00000001 , 0x00004957 
+ 00022361  0x00005459 beq  0x00000004 , 0x00005767 
+ 00022362  0x0000545a beq  0x00000005 , 0x00005767 
+ 00022363  0x0000545b beq  0x00000008 , 0x00005769 
+ 00022364  0x0000545c beq  0x00000007 , 0x00005769 
+ 00022365  0x0000545d beq  0x00000006 , 0x00005767 
+ 00022366  0x0000545f storet  0x00000001 , 0x00004879 
+ 00022367  0x00005460 setarg  0x00000006 
+ 00022368  0x00005461 call  0x000069e5 
+ 00022369  0x00005462 and  0x0000003f , 0x000000f8 , 0x00000002 
+ 00022370  0x00005463 fetch  0x00000001 , 0x00004879 
+ 00022371  0x00005464 iadd  0x00000002 , 0x0000003f 
+ 00022372  0x00005465 lshift8  0x0000003f , 0x0000003f 
+ 00022373  0x00005466 add  0x0000003f , 0x00000006 , 0x0000003f 
+ 00022374  0x00005467 branch  0x000069e4 
+ 00022375  0x0000546a increase  0xffffffff , 0x00000002 
+ 00022376  0x0000546b branch  0x0000575e 
+ 00022377  0x0000546e increase  0x00000002 , 0x00000002 
+ 00022378  0x0000546f branch  0x0000575e 
+ 00022379  0x00005472 fetch  0x00000001 , 0x00004690 
+ 00022380  0x00005473 beq  0x00000000 , 0x0000576f 
+ 00022381  0x00005474 beq  0x00000001 , 0x00005775 
+ 00022382  0x00005475 beq  0x00000002 , 0x00005778 
+ 00022383  0x00005477 fetch  0x00000001 , 0x00004874 
+ 00022384  0x00005478 copy  0x0000003f , 0x00000011 
+ 00022385  0x00005479 branch  0x0000577d 
+ 00022386  0x0000547c fetch  0x00000001 , 0x00004875 
+ 00022387  0x0000547d copy  0x0000003f , 0x00000011 
+ 00022388  0x0000547e branch  0x0000577d 
+ 00022389  0x00005481 fetch  0x00000001 , 0x00004876 
+ 00022390  0x00005482 copy  0x0000003f , 0x00000011 
+ 00022391  0x00005483 branch  0x0000577d 
+ 00022392  0x00005486 fetch  0x00000001 , 0x00004877 
+ 00022393  0x00005487 copy  0x0000003f , 0x00000011 
+ 00022394  0x00005488 branch  0x0000577d 
+ 00022395  0x0000548b fetch  0x00000001 , 0x00004878 
+ 00022396  0x0000548c copy  0x0000003f , 0x00000011 
+ 00022397  0x0000548e setarg  0x0000c309 
+ 00022398  0x0000548f call  0x000069e4 
+ 00022399  0x00005490 copy  0x00000011 , 0x0000003f 
+ 00022400  0x00005491 lshift8  0x0000003f , 0x0000003f 
+ 00022401  0x00005492 add  0x0000003f , 0x00000023 , 0x0000003f 
+ 00022402  0x00005493 call  0x000069e4 
+ 00022403  0x00005494 setarg  0x00000009 
+ 00022404  0x00005495 branch  0x000069e4 
+ 00022405  0x00005498 fetch  0x00000001 , 0x00004690 
+ 00022406  0x00005499 beq  0x00000000 , 0x0000578c 
+ 00022407  0x0000549a beq  0x00000001 , 0x0000578a 
+ 00022408  0x0000549b beq  0x00000002 , 0x0000578e 
+ 00022409  0x0000549c beq  0x00000003 , 0x00005790 
+ 00022410  0x0000549e fetch  0x00000001 , 0x0000486d 
+ 00022411  0x0000549f branch  0x00005791 
+ 00022412  0x000054a1 fetch  0x00000001 , 0x0000486c 
+ 00022413  0x000054a2 branch  0x00005791 
+ 00022414  0x000054a4 fetch  0x00000001 , 0x0000486e 
+ 00022415  0x000054a5 branch  0x00005791 
+ 00022416  0x000054a7 fetch  0x00000001 , 0x0000486f 
+ 00022417  0x000054a9 store  0x00000001 , 0x00004879 
+ 00022418  0x000054aa lshift8  0x0000003f , 0x0000003f 
+ 00022419  0x000054ab copy  0x0000003f , 0x00000011 
+ 00022420  0x000054ac add  0x0000003f , 0x0000000d , 0x0000003f 
+ 00022421  0x000054ad call  0x000069e4 
+ 00022422  0x000054ae copy  0x00000011 , 0x0000003f 
+ 00022423  0x000054af add  0x0000003f , 0x0000000e , 0x0000003f 
+ 00022424  0x000054b0 branch  0x000069e4 
+ 00022425  0x000054b3 fetch  0x00000001 , 0x00004690 
+ 00022426  0x000054b4 beq  0x00000000 , 0x000057a0 
+ 00022427  0x000054b5 beq  0x00000001 , 0x0000579e 
+ 00022428  0x000054b6 beq  0x00000002 , 0x000057a2 
+ 00022429  0x000054b7 beq  0x00000003 , 0x000057a4 
+ 00022430  0x000054b9 fetch  0x00000001 , 0x00004871 
+ 00022431  0x000054ba branch  0x00005791 
+ 00022432  0x000054bd fetch  0x00000001 , 0x00004870 
+ 00022433  0x000054be branch  0x00005791 
+ 00022434  0x000054c1 fetch  0x00000001 , 0x00004872 
+ 00022435  0x000054c2 branch  0x00005791 
+ 00022436  0x000054c5 fetch  0x00000001 , 0x00004873 
+ 00022437  0x000054c6 branch  0x00005791 
+ 00022438  0x000054cf call  0x0000584c 
+ 00022439  0x000054d0 fetch  0x00000001 , 0x00004987 
+ 00022440  0x000054d1 nbranch  0x00005860 , 0x00000034 
+ 00022441  0x000054d2 fetch  0x00000001 , 0x00004982 
+ 00022442  0x000054d3 nbranch  0x0000585f , 0x00000034 
+ 00022443  0x000054d5 call  0x00005888 
+ 00022444  0x000054d6 call  0x000057bc 
+ 00022445  0x000054d7 call  0x0000552f 
+ 00022446  0x000054d8 call  0x000057b7 
+ 00022447  0x000054d9 copy  0x00000011 , 0x0000003f 
+ 00022448  0x000054da fetcht  0x00000001 , 0x0000484e 
+ 00022449  0x000054db store  0x00000001 , 0x0000484e 
+ 00022450  0x000054dc store  0x00000001 , 0x00004846 
+ 00022451  0x000054dd ixor  0x00000002 , 0x0000003f 
+ 00022452  0x000054de sub  0x0000003f , 0x00000000 , 0x0000003e 
+ 00022453  0x000054df rtn  0x00000005 
+ 00022454  0x000054e0 branch  0x00007dba 
+ 00022455  0x000054e3 rtnmark0  0x00000026 
+ 00022456  0x000054e4 copy  0x00000011 , 0x0000003f 
+ 00022457  0x000054e5 rtn  0x00000034 
+ 00022458  0x000054e6 store  0x00000001 , 0x00004846 
+ 00022459  0x000054e7 branch  0x00007dba 
+ 00022460  0x000054ed jam  0x00000000 , 0x00004979 
+ 00022461  0x000054ee jam  0x00000000 , 0x0000497a 
+ 00022462  0x000054ef jam  0x00000000 , 0x0000497b 
+ 00022463  0x000054f0 copy  0x0000003f , 0x00000012 
+ 00022464  0x000054f1 fetcht  0x00000001 , 0x00004644 
+ 00022465  0x000054f2 fetch  0x00000001 , 0x00004647 
+ 00022466  0x000054f3 isub  0x00000002 , 0x0000003e 
+ 00022467  0x000054f4 branch  0x000057cc , 0x00000005 
+ 00022468  0x000054f5 fetch  0x00000001 , 0x00004648 
+ 00022469  0x000054f6 isub  0x00000002 , 0x0000003e 
+ 00022470  0x000054f7 branch  0x000057d1 , 0x00000005 
+ 00022471  0x000054f8 fetcht  0x00000001 , 0x00004645 
+ 00022472  0x000054f9 fetch  0x00000001 , 0x00004647 
+ 00022473  0x000054fa isub  0x00000002 , 0x0000003e 
+ 00022474  0x000054fb branch  0x000057e0 , 0x00000005 
+ 00022475  0x000054fc branch  0x000057e3 
+ 00022476  0x000054ff fetcht  0x00000001 , 0x00004645 
+ 00022477  0x00005500 fetch  0x00000001 , 0x00004648 
+ 00022478  0x00005501 isub  0x00000002 , 0x0000003e 
+ 00022479  0x00005502 branch  0x000057d6 , 0x00000005 
+ 00022480  0x00005503 branch  0x000057d9 
+ 00022481  0x00005506 fetcht  0x00000001 , 0x00004645 
+ 00022482  0x00005507 fetch  0x00000001 , 0x00004647 
+ 00022483  0x00005508 isub  0x00000002 , 0x0000003e 
+ 00022484  0x00005509 branch  0x000057db , 0x00000005 
+ 00022485  0x0000550a branch  0x000057de 
+ 00022486  0x0000550d call  0x000057ef 
+ 00022487  0x0000550e call  0x000057fb 
+ 00022488  0x0000550f branch  0x000057e5 
+ 00022489  0x00005512 call  0x000057ef 
+ 00022490  0x00005513 branch  0x000057e1 
+ 00022491  0x00005516 call  0x000057f8 
+ 00022492  0x00005517 call  0x000057f2 
+ 00022493  0x00005518 branch  0x000057e5 
+ 00022494  0x0000551b call  0x000057f8 
+ 00022495  0x0000551c branch  0x000057e4 
+ 00022496  0x0000551f call  0x000057f2 
+ 00022497  0x00005521 call  0x000057fe 
+ 00022498  0x00005522 branch  0x000057e5 
+ 00022499  0x00005525 call  0x000057fb 
+ 00022500  0x00005527 call  0x000057f5 
+ 00022501  0x00005529 call  0x00005801 
+ 00022502  0x0000552a call  0x00005804 
+ 00022503  0x0000552b fetch  0x00000001 , 0x0000497a 
+ 00022504  0x0000552c rtn  0x00000034 
+ 00022505  0x0000552d fetch  0x00000001 , 0x00004979 
+ 00022506  0x0000552e rtn  0x00000034 
+ 00022507  0x0000552f jam  0x00000001 , 0x0000497b 
+ 00022508  0x00005530 fetch  0x00000001 , 0x0000484e 
+ 00022509  0x00005531 copy  0x0000003f , 0x00000011 
+ 00022510  0x00005532 rtn 
+ 00022511  0x00005535 and  0x00000012 , 0x00000009 , 0x0000003f 
+ 00022512  0x00005536 beq  0x00000009 , 0x0000580c 
+ 00022513  0x00005537 rtn 
+ 00022514  0x00005539 and  0x00000012 , 0x00000009 , 0x0000003f 
+ 00022515  0x0000553a beq  0x00000012 , 0x0000580c 
+ 00022516  0x0000553b rtn 
+ 00022517  0x0000553d and  0x00000012 , 0x00000009 , 0x0000003f 
+ 00022518  0x0000553e beq  0x0000000a , 0x0000580c 
+ 00022519  0x0000553f rtn 
+ 00022520  0x00005541 and  0x00000012 , 0x00000009 , 0x0000003f 
+ 00022521  0x00005542 beq  0x00000011 , 0x0000580c 
+ 00022522  0x00005543 rtn 
+ 00022523  0x00005545 and  0x00000012 , 0x00000014 , 0x0000003f 
+ 00022524  0x00005546 beq  0x00000014 , 0x0000580c 
+ 00022525  0x00005547 rtn 
+ 00022526  0x00005549 and  0x00000012 , 0x00000014 , 0x0000003f 
+ 00022527  0x0000554a beq  0x00000012 , 0x0000580c 
+ 00022528  0x0000554b rtn 
+ 00022529  0x0000554e and  0x00000012 , 0x00000018 , 0x0000003f 
+ 00022530  0x0000554f beq  0x00000018 , 0x0000580a 
+ 00022531  0x00005550 rtn 
+ 00022532  0x00005553 and  0x00000002 , 0x00000007 , 0x0000003f 
+ 00022533  0x00005554 beq  0x00000003 , 0x0000580a 
+ 00022534  0x00005555 beq  0x00000005 , 0x0000580a 
+ 00022535  0x00005556 beq  0x00000006 , 0x0000580a 
+ 00022536  0x00005557 beq  0x00000007 , 0x0000580a 
+ 00022537  0x00005558 rtn 
+ 00022538  0x0000555c jam  0x00000001 , 0x0000497a 
+ 00022539  0x0000555d rtn 
+ 00022540  0x00005560 jam  0x00000001 , 0x00004979 
+ 00022541  0x00005561 rtn 
+ 00022542  0x0000556a fetch  0x00000008 , 0x00004713 
+ 00022543  0x0000556b rtnbit0  0x00000017 
+ 00022544  0x0000556c bbit0  0x0000002c , 0x00005816 
+ 00022545  0x0000556e fetch  0x00000001 , 0x00004658 
+ 00022546  0x0000556f call  0x00005943 
+ 00022547  0x00005570 call  0x00005824 
+ 00022548  0x00005571 fetcht  0x00000001 , 0x00004658 
+ 00022549  0x00005572 branch  0x000055b5 
+ 00022550  0x00005575 fetch  0x00000001 , 0x00004658 
+ 00022551  0x00005576 call  0x00005946 
+ 00022552  0x00005577 jam  0x00000000 , 0x0000498b 
+ 00022553  0x00005578 fetcht  0x00000001 , 0x00004658 
+ 00022554  0x00005579 fetch  0x00000001 , 0x00004988 
+ 00022555  0x0000557a call  0x0000583d 
+ 00022556  0x0000557b call  0x00005828 
+ 00022557  0x0000557c fetcht  0x00000001 , 0x00004658 
+ 00022558  0x0000557d branch  0x000055b5 
+ 00022559  0x00005580 call  0x000055b5 
+ 00022560  0x00005581 fetch  0x00000001 , 0x00004989 
+ 00022561  0x00005582 rtneq  0x00000001 
+ 00022562  0x00005583 jam  0x00000001 , 0x00004989 
+ 00022563  0x00005584 branch  0x000056f7 
+ 00022564  0x00005587 jam  0x00000000 , 0x0000498b 
+ 00022565  0x00005588 fetcht  0x00000001 , 0x00004658 
+ 00022566  0x00005589 fetch  0x00000001 , 0x00004988 
+ 00022567  0x0000558a call  0x00005833 
+ 00022568  0x0000558c store  0x00000001 , 0x00004988 
+ 00022569  0x0000558d fetch  0x00000001 , 0x0000498a 
+ 00022570  0x0000558e branch  0x0000582f , 0x00000034 
+ 00022571  0x00005590 fetch  0x00000001 , 0x00004989 
+ 00022572  0x00005591 rtneq  0x00000001 
+ 00022573  0x00005592 jam  0x00000001 , 0x00004989 
+ 00022574  0x00005593 branch  0x000056f7 
+ 00022575  0x00005596 fetch  0x00000001 , 0x00004989 
+ 00022576  0x00005597 rtneq  0x00000000 
+ 00022577  0x00005598 jam  0x00000000 , 0x00004989 
+ 00022578  0x00005599 rtn 
+ 00022579  0x0000559c lshift  0x0000003f , 0x0000003f 
+ 00022580  0x0000559d copy  0x0000003f , 0x00000012 
+ 00022581  0x0000559e call  0x00006ee6 
+ 00022582  0x0000559f setflag  0x00000001 , 0x00000000 , 0x00000012 
+ 00022583  0x000055a0 and  0x00000012 , 0x00000007 , 0x0000003f 
+ 00022584  0x000055a1 fetcht  0x00000001 , 0x0000498b 
+ 00022585  0x000055a2 copy  0x00000002 , 0x00000007 
+ 00022586  0x000055a3 beq  0x00000007 , 0x00005848 
+ 00022587  0x000055a4 beq  0x00000000 , 0x0000584a 
+ 00022588  0x000055a5 rtn 
+ 00022589  0x000055a8 lshift  0x0000003f , 0x0000003f 
+ 00022590  0x000055a9 copy  0x0000003f , 0x00000012 
+ 00022591  0x000055aa call  0x000055b1 
+ 00022592  0x000055ab call  0x00006ee6 
+ 00022593  0x000055ac setflag  0x00000001 , 0x00000000 , 0x00000012 
+ 00022594  0x000055ad and  0x00000012 , 0x00000007 , 0x0000003f 
+ 00022595  0x000055ae fetcht  0x00000001 , 0x0000498b 
+ 00022596  0x000055af copy  0x00000002 , 0x00000007 
+ 00022597  0x000055b0 beq  0x00000007 , 0x00005848 
+ 00022598  0x000055b1 beq  0x00000000 , 0x0000584a 
+ 00022599  0x000055b2 rtn 
+ 00022600  0x000055b5 jam  0x00000001 , 0x0000498a 
+ 00022601  0x000055b6 rtn 
+ 00022602  0x000055b8 jam  0x00000000 , 0x0000498a 
+ 00022603  0x000055b9 rtn 
+ 00022604  0x000055c2 arg  0x00000000 , 0x00000012 
+ 00022605  0x000055c3 fetch  0x00000001 , 0x00004657 
+ 00022606  0x000055c4 rtneq  0x000000ff 
+ 00022607  0x000055c5 fetch  0x00000008 , 0x00004713 
+ 00022608  0x000055c6 bbit0  0x0000002e , 0x00005859 
+ 00022609  0x000055c8 fetcht  0x00000001 , 0x00004657 
+ 00022610  0x000055c9 call  0x000055b5 
+ 00022611  0x000055ca fetcht  0x00000001 , 0x00004657 
+ 00022612  0x000055cb call  0x00006ee6 
+ 00022613  0x000055cc setflag  0x00000001 , 0x00000000 , 0x00000012 
+ 00022614  0x000055ce copy  0x00000012 , 0x0000003f 
+ 00022615  0x000055cf store  0x00000001 , 0x00004987 
+ 00022616  0x000055d0 rtn 
+ 00022617  0x000055d3 fetcht  0x00000001 , 0x00004657 
+ 00022618  0x000055d4 call  0x000055b1 
+ 00022619  0x000055d5 fetcht  0x00000001 , 0x00004657 
+ 00022620  0x000055d6 call  0x00006ee6 
+ 00022621  0x000055d7 nsetflag  0x00000001 , 0x00000000 , 0x00000012 
+ 00022622  0x000055d8 branch  0x00005856 
+ 00022623  0x000055db beq  0x00000004 , 0x00005878 
+ 00022624  0x000055dd call  0x0000587b 
+ 00022625  0x000055de fetch  0x00000004 , 0x00004983 
+ 00022626  0x000055df arg  0x000000a0 , 0x00000002 
+ 00022627  0x000055e0 iadd  0x00000002 , 0x00000002 
+ 00022628  0x000055e1 copy  0x00000022 , 0x0000003f 
+ 00022629  0x000055e2 isub  0x00000002 , 0x0000003e 
+ 00022630  0x000055e3 nrtn  0x00000002 
+ 00022631  0x000055e4 store  0x00000004 , 0x00004983 
+ 00022632  0x000055e5 fetch  0x00000001 , 0x00004982 
+ 00022633  0x000055e6 beq  0x00000000 , 0x0000586e 
+ 00022634  0x000055e7 beq  0x00000001 , 0x00005871 
+ 00022635  0x000055e8 beq  0x00000002 , 0x00005874 
+ 00022636  0x000055e9 beq  0x00000003 , 0x00005876 
+ 00022637  0x000055ea rtn 
+ 00022638  0x000055ed jam  0x00000001 , 0x00004982 
+ 00022639  0x000055ef jam  0x00000001 , 0x00004846 
+ 00022640  0x000055f0 branch  0x00007dba 
+ 00022641  0x000055f3 jam  0x00000002 , 0x00004982 
+ 00022642  0x000055f5 jam  0x00000000 , 0x00004846 
+ 00022643  0x000055f6 branch  0x00007dba 
+ 00022644  0x000055f9 jam  0x00000003 , 0x00004982 
+ 00022645  0x000055fa branch  0x0000586f 
+ 00022646  0x000055fd jam  0x00000000 , 0x00004982 
+ 00022647  0x000055fe branch  0x00005872 
+ 00022648  0x00005601 jam  0x00000000 , 0x00004982 
+ 00022649  0x00005602 jam  0x00000000 , 0x00004846 
+ 00022650  0x00005603 rtn 
+ 00022651  0x00005606 fetcht  0x00000004 , 0x00004983 
+ 00022652  0x00005607 copy  0x00000022 , 0x0000003f 
+ 00022653  0x00005608 isub  0x00000002 , 0x0000003e 
+ 00022654  0x00005609 ncall  0x00005880 , 0x00000002 
+ 00022655  0x0000560a rtn 
+ 00022656  0x0000560c setarg  0x00000000 
+ 00022657  0x0000560d store  0x00000004 , 0x00004983 
+ 00022658  0x0000560e rtn 
+ 00022659  0x00005617 call  0x00005895 
+ 00022660  0x00005618 call  0x00005888 
+ 00022661  0x00005619 setarg  0x00000000 
+ 00022662  0x0000561a store  0x00000003 , 0x0000496f 
+ 00022663  0x0000561b rtn 
+ 00022664  0x0000561e bpatch  0x0000007e , 0x0000400f 
+ 00022665  0x0000561f fetch  0x00000001 , 0x0000473f 
+ 00022666  0x00005620 ncall  0x00005895 , 0x00000034 
+ 00022667  0x00005621 arg  0x00000000 , 0x00000011 
+ 00022668  0x00005622 call  0x00005898 
+ 00022669  0x00005623 call  0x000058a1 
+ 00022670  0x00005624 call  0x000058aa 
+ 00022671  0x00005625 call  0x000058b3 
+ 00022672  0x00005626 call  0x000058cf 
+ 00022673  0x00005627 call  0x0000584c 
+ 00022674  0x00005628 call  0x000058ec 
+ 00022675  0x00005629 copy  0x00000011 , 0x0000003f 
+ 00022676  0x0000562a rtn 
+ 00022677  0x0000562d setarg  0x00030303 
+ 00022678  0x0000562e store  0x00000003 , 0x0000496f 
+ 00022679  0x0000562f rtn 
+ 00022680  0x00005632 fetch  0x00000001 , 0x00004644 
+ 00022681  0x00005633 call  0x00005943 
+ 00022682  0x00005634 jam  0x00000000 , 0x00004977 
+ 00022683  0x00005635 fetcht  0x00000001 , 0x00004644 
+ 00022684  0x00005636 fetch  0x00000001 , 0x0000496f 
+ 00022685  0x00005637 call  0x00005925 
+ 00022686  0x00005638 store  0x00000001 , 0x0000496f 
+ 00022687  0x00005639 fetcht  0x00000001 , 0x00004644 
+ 00022688  0x0000563a branch  0x000055b5 
+ 00022689  0x0000563d fetch  0x00000001 , 0x00004646 
+ 00022690  0x0000563e call  0x00005943 
+ 00022691  0x0000563f jam  0x00000001 , 0x00004977 
+ 00022692  0x00005640 fetcht  0x00000001 , 0x00004646 
+ 00022693  0x00005641 fetch  0x00000001 , 0x00004970 
+ 00022694  0x00005642 call  0x00005925 
+ 00022695  0x00005643 store  0x00000001 , 0x00004970 
+ 00022696  0x00005644 fetcht  0x00000001 , 0x00004646 
+ 00022697  0x00005645 branch  0x000055b5 
+ 00022698  0x00005648 fetch  0x00000001 , 0x00004645 
+ 00022699  0x00005649 call  0x00005943 
+ 00022700  0x0000564a jam  0x00000002 , 0x00004977 
+ 00022701  0x0000564b fetcht  0x00000001 , 0x00004645 
+ 00022702  0x0000564c fetch  0x00000001 , 0x00004971 
+ 00022703  0x0000564d call  0x00005925 
+ 00022704  0x0000564e store  0x00000001 , 0x00004971 
+ 00022705  0x0000564f fetcht  0x00000001 , 0x00004645 
+ 00022706  0x00005650 branch  0x000055b5 
+ 00022707  0x00005653 fetch  0x00000001 , 0x00004647 
+ 00022708  0x00005654 rtneq  0x000000ff 
+ 00022709  0x00005655 jam  0x00000003 , 0x00004977 
+ 00022710  0x00005656 fetch  0x00000001 , 0x00004972 
+ 00022711  0x00005657 copy  0x0000003f , 0x00000013 
+ 00022712  0x00005658 fetcht  0x00000001 , 0x00004647 
+ 00022713  0x00005659 fetch  0x00000001 , 0x00004654 
+ 00022714  0x0000565a beq  0x000000ff , 0x000058c8 
+ 00022715  0x0000565b call  0x00006ee6 
+ 00022716  0x0000565c branch  0x000058c4 , 0x00000001 
+ 00022717  0x0000565d fetcht  0x00000001 , 0x00004654 
+ 00022718  0x0000565e call  0x00006ef7 
+ 00022719  0x0000565f fetcht  0x00000001 , 0x00004647 
+ 00022720  0x00005660 fetch  0x00000001 , 0x00004972 
+ 00022721  0x00005661 call  0x00005925 
+ 00022722  0x00005663 store  0x00000001 , 0x00004972 
+ 00022723  0x00005664 branch  0x000058df 
+ 00022724  0x00005667 fetcht  0x00000001 , 0x00004654 
+ 00022725  0x00005668 fetch  0x00000001 , 0x00004972 
+ 00022726  0x00005669 call  0x00005925 
+ 00022727  0x0000566a branch  0x000058c2 
+ 00022728  0x0000566d fetch  0x00000001 , 0x00004647 
+ 00022729  0x0000566e call  0x00005946 
+ 00022730  0x0000566f fetcht  0x00000001 , 0x00004647 
+ 00022731  0x00005670 call  0x00005931 
+ 00022732  0x00005671 store  0x00000001 , 0x00004972 
+ 00022733  0x00005672 fetcht  0x00000001 , 0x00004647 
+ 00022734  0x00005673 branch  0x000055b5 
+ 00022735  0x00005677 fetch  0x00000001 , 0x00004648 
+ 00022736  0x00005678 rtneq  0x000000ff 
+ 00022737  0x00005679 jam  0x00000004 , 0x00004977 
+ 00022738  0x0000567a fetch  0x00000001 , 0x00004973 
+ 00022739  0x0000567b copy  0x0000003f , 0x00000013 
+ 00022740  0x0000567c fetcht  0x00000001 , 0x00004648 
+ 00022741  0x0000567d fetch  0x00000001 , 0x00004654 
+ 00022742  0x0000567e beq  0x000000ff , 0x000058e5 
+ 00022743  0x0000567f call  0x00006ee6 
+ 00022744  0x00005680 branch  0x000058e1 , 0x00000001 
+ 00022745  0x00005681 fetcht  0x00000001 , 0x00004654 
+ 00022746  0x00005682 call  0x00006ef7 
+ 00022747  0x00005683 fetcht  0x00000001 , 0x00004648 
+ 00022748  0x00005684 fetch  0x00000001 , 0x00004973 
+ 00022749  0x00005685 call  0x00005925 
+ 00022750  0x00005687 store  0x00000001 , 0x00004973 
+ 00022751  0x00005689 fetcht  0x00000001 , 0x00004654 
+ 00022752  0x0000568a branch  0x000055b5 
+ 00022753  0x0000568d fetcht  0x00000001 , 0x00004654 
+ 00022754  0x0000568e fetch  0x00000001 , 0x00004973 
+ 00022755  0x0000568f call  0x00005925 
+ 00022756  0x00005690 branch  0x000058de 
+ 00022757  0x00005693 fetch  0x00000001 , 0x00004648 
+ 00022758  0x00005694 call  0x00005946 
+ 00022759  0x00005695 fetcht  0x00000001 , 0x00004648 
+ 00022760  0x00005696 call  0x00005931 
+ 00022761  0x00005697 store  0x00000001 , 0x00004973 
+ 00022762  0x00005698 fetcht  0x00000001 , 0x00004648 
+ 00022763  0x00005699 branch  0x000055b5 
+ 00022764  0x0000569c jam  0x00000000 , 0x0000496c 
+ 00022765  0x0000569d fetch  0x00000001 , 0x00004656 
+ 00022766  0x0000569e rtneq  0x000000ff 
+ 00022767  0x0000569f fetch  0x00000008 , 0x00004713 
+ 00022768  0x000056a0 rtnbit0  0x00000016 
+ 00022769  0x000056a1 bbit1  0x0000002f , 0x000058fd 
+ 00022770  0x000056a3 jam  0x00000007 , 0x00004977 
+ 00022771  0x000056a4 fetcht  0x00000001 , 0x00004656 
+ 00022772  0x000056a5 fetch  0x00000001 , 0x00004976 
+ 00022773  0x000056a6 call  0x00005925 
+ 00022774  0x000056a7 store  0x00000001 , 0x00004976 
+ 00022775  0x000056a9 copy  0x00000011 , 0x0000003f 
+ 00022776  0x000056aa bbit1  0x00000007 , 0x00005917 
+ 00022777  0x000056ab call  0x0000591a 
+ 00022778  0x000056ad fetch  0x00000001 , 0x0000496d 
+ 00022779  0x000056ae store  0x00000001 , 0x0000496e 
+ 00022780  0x000056af rtn 
+ 00022781  0x000056b2 jam  0x00000007 , 0x00004977 
+ 00022782  0x000056b3 fetch  0x00000001 , 0x00004976 
+ 00022783  0x000056b4 copy  0x0000003f , 0x00000013 
+ 00022784  0x000056b5 fetcht  0x00000001 , 0x00004656 
+ 00022785  0x000056b6 fetch  0x00000001 , 0x00004654 
+ 00022786  0x000056b7 beq  0x000000ff , 0x0000590f 
+ 00022787  0x000056b8 call  0x00006ee6 
+ 00022788  0x000056b9 branch  0x0000590b , 0x00000001 
+ 00022789  0x000056ba fetcht  0x00000001 , 0x00004654 
+ 00022790  0x000056bb call  0x00006ef7 
+ 00022791  0x000056bc fetcht  0x00000001 , 0x00004656 
+ 00022792  0x000056bd fetch  0x00000001 , 0x00004976 
+ 00022793  0x000056be call  0x00005925 
+ 00022794  0x000056bf branch  0x00005913 
+ 00022795  0x000056c2 fetcht  0x00000001 , 0x00004654 
+ 00022796  0x000056c3 fetch  0x00000001 , 0x00004976 
+ 00022797  0x000056c4 call  0x00005925 
+ 00022798  0x000056c5 branch  0x00005913 
+ 00022799  0x000056c8 fetch  0x00000001 , 0x00004656 
+ 00022800  0x000056c9 call  0x00005946 
+ 00022801  0x000056ca fetcht  0x00000001 , 0x00004656 
+ 00022802  0x000056cb call  0x00005931 
+ 00022803  0x000056cd store  0x00000001 , 0x00004976 
+ 00022804  0x000056ce call  0x000058f7 
+ 00022805  0x000056cf fetcht  0x00000001 , 0x00004656 
+ 00022806  0x000056d0 branch  0x000055b5 
+ 00022807  0x000056d4 jam  0x00000001 , 0x0000496d 
+ 00022808  0x000056d5 call  0x0000591d 
+ 00022809  0x000056d6 branch  0x000058fa 
+ 00022810  0x000056d9 jam  0x00000000 , 0x0000496d 
+ 00022811  0x000056da fetch  0x00000001 , 0x0000496e 
+ 00022812  0x000056db rtn  0x00000034 
+ 00022813  0x000056dd jam  0x00000001 , 0x0000496c 
+ 00022814  0x000056de rtn 
+ 00022815  0x000056e3 call  0x00006ee6 
+ 00022816  0x000056e4 fetcht  0x00000001 , 0x00004977 
+ 00022817  0x000056e5 copy  0x00000002 , 0x00000007 
+ 00022818  0x000056e6 branch  0x0000592f , 0x00000001 
+ 00022819  0x000056e8 qset0  0x00000011 
+ 00022820  0x000056e9 rtn 
+ 00022821  0x000056ec lshift  0x0000003f , 0x0000003f 
+ 00022822  0x000056ed copy  0x0000003f , 0x00000012 
+ 00022823  0x000056ee call  0x00006ee6 
+ 00022824  0x000056ef setflag  0x00000001 , 0x00000000 , 0x00000012 
+ 00022825  0x000056f1 and  0x00000012 , 0x00000007 , 0x0000003f 
+ 00022826  0x000056f3 fetcht  0x00000001 , 0x00004977 
+ 00022827  0x000056f4 copy  0x00000002 , 0x00000007 
+ 00022828  0x000056f5 beq  0x00000007 , 0x0000592f 
+ 00022829  0x000056f6 beq  0x00000000 , 0x00005923 
+ 00022830  0x000056f7 rtn 
+ 00022831  0x000056fa qset1  0x00000011 
+ 00022832  0x000056fb rtn 
+ 00022833  0x000056fe bpatch  0x0000007f , 0x0000400f 
+ 00022834  0x000056ff copy  0x00000013 , 0x0000003f 
+ 00022835  0x00005700 store  0x00000001 , 0x00004978 
+ 00022836  0x00005701 lshift  0x0000003f , 0x0000003f 
+ 00022837  0x00005702 copy  0x0000003f , 0x00000012 
+ 00022838  0x00005703 copy  0x00000002 , 0x00000013 
+ 00022839  0x00005704 call  0x000055b1 
+ 00022840  0x00005705 copy  0x00000013 , 0x00000002 
+ 00022841  0x00005706 call  0x00006ee6 
+ 00022842  0x00005707 nsetflag  0x00000001 , 0x00000000 , 0x00000012 
+ 00022843  0x00005708 call  0x0000593d 
+ 00022844  0x00005709 branch  0x0000592a 
+ 00022845  0x0000570c fetcht  0x00000001 , 0x00004978 
+ 00022846  0x0000570d and_into  0x00000001 , 0x00000002 
+ 00022847  0x0000570e and  0x00000012 , 0x00000001 , 0x0000003f 
+ 00022848  0x0000570f isub  0x00000002 , 0x0000003e 
+ 00022849  0x00005710 nbranch  0x00005abc , 0x00000005 
+ 00022850  0x00005711 rtn 
+ 00022851  0x00005716 rtneq  0x000000ff 
+ 00022852  0x00005717 arg  0x0000003f , 0x00000002 
+ 00022853  0x00005718 branch  0x00006f21 
+ 00022854  0x0000571c rtneq  0x000000ff 
+ 00022855  0x0000571d arg  0x0000003e , 0x00000002 
+ 00022856  0x0000571e branch  0x00006f21 
+ 00022857  0x00005724 bpatch  0x00000080 , 0x00004010 
+ 00022858  0x00005725 call  0x000055f6 
+ 00022859  0x00005726 rtn  0x0000002b 
+ 00022860  0x00005728 call  0x000059e7 
+ 00022861  0x0000572a bpatch  0x00000081 , 0x00004010 
+ 00022862  0x0000572b call  0x00005958 
+ 00022863  0x0000572c beq  0x00000030 , 0x0000595f 
+ 00022864  0x0000572d beq  0x00000031 , 0x000059c6 
+ 00022865  0x0000572e beq  0x00000058 , 0x000059cf 
+ 00022866  0x0000572f call  0x00005955 
+ 00022867  0x00005730 nop  0x00001af4 
+ 00022868  0x00005731 branch  0x0000594d 
+ 00022869  0x00005733 fetcht  0x00000001 , 0x0000464c 
+ 00022870  0x00005734 call  0x000069c7 
+ 00022871  0x00005735 branch  0x000055fb 
+ 00022872  0x00005738 setarg  0x00000001 
+ 00022873  0x00005739 call  0x000069e5 
+ 00022874  0x0000573a store  0x00000001 , 0x0000485a 
+ 00022875  0x0000573b setarg  0x00000000 
+ 00022876  0x0000573c call  0x000069e5 
+ 00022877  0x0000573d store  0x00000001 , 0x00004859 
+ 00022878  0x0000573e rtn 
+ 00022879  0x00005741 fetch  0x00000001 , 0x0000485a 
+ 00022880  0x00005742 beq  0x0000005a , 0x0000596e 
+ 00022881  0x00005743 beq  0x000000d8 , 0x00005974 
+ 00022882  0x00005744 beq  0x000000d1 , 0x00005968 
+ 00022883  0x00005745 beq  0x000000d2 , 0x0000598c 
+ 00022884  0x00005746 beq  0x00000002 , 0x00005993 
+ 00022885  0x00005747 beq  0x00000054 , 0x0000599c 
+ 00022886  0x00005748 beq  0x00000050 , 0x000059c3 
+ 00022887  0x00005749 branch  0x0000594d 
+ 00022888  0x0000574c setarg  0x00000049 
+ 00022889  0x0000574d call  0x000069e5 
+ 00022890  0x0000574e beq  0x000000a1 , 0x0000596c 
+ 00022891  0x0000574f branch  0x00005983 
+ 00022892  0x00005752 jam  0x0000000c , 0x00004957 
+ 00022893  0x00005753 rtn 
+ 00022894  0x00005756 jam  0x00000005 , 0x00004957 
+ 00022895  0x00005757 call  0x000059da 
+ 00022896  0x00005758 call  0x00007c95 
+ 00022897  0x00005759 arg  0x000048d6 , 0x00000013 
+ 00022898  0x0000575a call  0x00005995 
+ 00022899  0x0000575b branch  0x00005747 
+ 00022900  0x0000575e setarg  0x00000016 
+ 00022901  0x0000575f call  0x000069e5 
+ 00022902  0x00005760 sub  0x0000003f , 0x000000bd , 0x0000003e 
+ 00022903  0x00005761 nbranch  0x00005949 , 0x00000005 
+ 00022904  0x00005762 setarg  0x00000019 
+ 00022905  0x00005763 call  0x000069e5 
+ 00022906  0x00005764 sub  0x0000003f , 0x00000055 , 0x0000003e 
+ 00022907  0x00005765 nbranch  0x00005949 , 0x00000005 
+ 00022908  0x00005766 setarg  0x0000001b 
+ 00022909  0x00005767 call  0x000069e5 
+ 00022910  0x00005768 sub  0x0000003f , 0x0000001d , 0x0000003e 
+ 00022911  0x00005769 nbranch  0x00005949 , 0x00000005 
+ 00022912  0x0000576a jam  0x00000006 , 0x00004957 
+ 00022913  0x0000576b arg  0x0000491a , 0x00000013 
+ 00022914  0x0000576c branch  0x00005995 
+ 00022915  0x0000576f jam  0x00000000 , 0x00004957 
+ 00022916  0x00005770 arg  0x00004890 , 0x00000013 
+ 00022917  0x00005771 call  0x00005995 
+ 00022918  0x00005772 arg  0x0000489a , 0x00000013 
+ 00022919  0x00005773 call  0x00005995 
+ 00022920  0x00005774 setarg  0x00000943 
+ 00022921  0x00005775 call  0x000069e4 
+ 00022922  0x00005776 arg  0x000048b4 , 0x00000013 
+ 00022923  0x00005777 branch  0x00005995 
+ 00022924  0x0000577a jam  0x00000002 , 0x00004957 
+ 00022925  0x0000577b arg  0x00004886 , 0x00000013 
+ 00022926  0x0000577c call  0x00005995 
+ 00022927  0x0000577d arg  0x0000489a , 0x00000013 
+ 00022928  0x0000577e call  0x00005995 
+ 00022929  0x0000577f arg  0x000048b4 , 0x00000013 
+ 00022930  0x00005780 branch  0x00005995 
+ 00022931  0x00005783 jam  0x00000003 , 0x00004957 
+ 00022932  0x00005784 arg  0x0000487c , 0x00000013 
+ 00022933  0x00005786 ifetch  0x00000002 , 0x00000013 
+ 00022934  0x00005787 arg  0x0000ffff , 0x00000002 
+ 00022935  0x00005788 isub  0x00000002 , 0x0000003e 
+ 00022936  0x00005789 rtn  0x00000005 
+ 00022937  0x0000578a call  0x000069e4 
+ 00022938  0x0000578b increase  0x00000002 , 0x00000013 
+ 00022939  0x0000578c branch  0x00005995 
+ 00022940  0x0000578f call  0x000059d8 
+ 00022941  0x00005790 setarg  0x00009a5b 
+ 00022942  0x00005791 call  0x000069e4 
+ 00022943  0x00005792 setarg  0x0000000d 
+ 00022944  0x00005793 call  0x000069e5 
+ 00022945  0x00005794 sub  0x0000003f , 0x00000012 , 0x0000003e 
+ 00022946  0x00005795 branch  0x000059b0 , 0x00000005 
+ 00022947  0x00005796 sub  0x0000003f , 0x0000000a , 0x0000003e 
+ 00022948  0x00005797 nbranch  0x000059b3 , 0x00000005 
+ 00022949  0x00005798 setarg  0x0000000e 
+ 00022950  0x00005799 call  0x000069e5 
+ 00022951  0x0000579a sub  0x0000003f , 0x000000e5 , 0x0000003e 
+ 00022952  0x0000579b nbranch  0x0000594d , 0x00000005 
+ 00022953  0x0000579c setarg  0x00000010 
+ 00022954  0x0000579d call  0x000069e5 
+ 00022955  0x0000579e sub  0x0000003f , 0x000000a5 , 0x0000003e 
+ 00022956  0x0000579f branch  0x000059b0 , 0x00000005 
+ 00022957  0x000057a0 call  0x000059c0 
+ 00022958  0x000057a2 jam  0x00000008 , 0x00004957 
+ 00022959  0x000057a3 rtn 
+ 00022960  0x000057a5 jam  0x00000009 , 0x00004957 
+ 00022961  0x000057a6 arg  0x000048fc , 0x00000013 
+ 00022962  0x000057a7 branch  0x00005995 
+ 00022963  0x000057a9 sub  0x0000003f , 0x00000010 , 0x0000003e 
+ 00022964  0x000057aa nbranch  0x0000594d , 0x00000005 
+ 00022965  0x000057ab setarg  0x0000000e 
+ 00022966  0x000057ac call  0x000069e5 
+ 00022967  0x000057ad sub  0x0000003f , 0x000000c5 , 0x0000003e 
+ 00022968  0x000057ae nbranch  0x0000594d , 0x00000005 
+ 00022969  0x000057af setarg  0x00000010 
+ 00022970  0x000057b0 call  0x000069e5 
+ 00022971  0x000057b1 sub  0x0000003f , 0x00000038 , 0x0000003e 
+ 00022972  0x000057b2 nbranch  0x0000594d , 0x00000005 
+ 00022973  0x000057b4 call  0x000059c0 
+ 00022974  0x000057b5 jam  0x0000000a , 0x00004957 
+ 00022975  0x000057b6 rtn 
+ 00022976  0x000057b8 setarg  0x0000005b 
+ 00022977  0x000057b9 call  0x000069e4 
+ 00022978  0x000057ba branch  0x000059d6 
+ 00022979  0x000057bd jam  0x00000007 , 0x00004957 
+ 00022980  0x000057be arg  0x0000493a , 0x00000013 
+ 00022981  0x000057bf branch  0x00005995 
+ 00022982  0x000057c2 call  0x000059e7 
+ 00022983  0x000057c3 fetch  0x00000001 , 0x0000485a 
+ 00022984  0x000057c4 beq  0x00000070 , 0x000059cd 
+ 00022985  0x000057c5 beq  0x00000000 , 0x000059cb 
+ 00022986  0x000057c6 branch  0x0000594d 
+ 00022987  0x000057c9 jam  0x00000001 , 0x00004957 
+ 00022988  0x000057ca rtn 
+ 00022989  0x000057cd jam  0x00000004 , 0x00004957 
+ 00022990  0x000057ce rtn 
+ 00022991  0x000057d1 call  0x000059e7 
+ 00022992  0x000057d2 fetch  0x00000001 , 0x0000485a 
+ 00022993  0x000057d3 beq  0x00000059 , 0x000059d3 
+ 00022994  0x000057d4 branch  0x0000595f 
+ 00022995  0x000057d6 jam  0x0000000b , 0x00004957 
+ 00022996  0x000057d7 arg  0x0000492a , 0x00000013 
+ 00022997  0x000057d8 branch  0x00005995 
+ 00022998  0x000057db setarg  0x00000009 
+ 00022999  0x000057dc branch  0x000069e4 
+ 00023000  0x000057de setarg  0x00005a09 
+ 00023001  0x000057df branch  0x000069e4 
+ 00023002  0x000057e2 arg  0x00008006 , 0x00000002 
+ 00023003  0x000057e3 fetch  0x00000001 , 0x00004957 
+ 00023004  0x000057e4 bne  0x0000000b , 0x000059de 
+ 00023005  0x000057e5 arg  0x00009706 , 0x00000002 
+ 00023006  0x000057e7 copy  0x00000002 , 0x0000003f 
+ 00023007  0x000057e8 call  0x000069e4 
+ 00023008  0x000057e9 nop  0x00002ee0 
+ 00023009  0x000057ea rtn 
+ 00023010  0x000057ed arg  0x00004946 , 0x00000013 
+ 00023011  0x000057ee fetch  0x00000001 , 0x00004957 
+ 00023012  0x000057ef rtnne  0x0000000b 
+ 00023013  0x000057f0 arg  0x0000494e , 0x00000013 
+ 00023014  0x000057f1 rtn 
+ 00023015  0x000057f4 bpatch  0x00000082 , 0x00004010 
+ 00023016  0x000057f5 call  0x000055f6 
+ 00023017  0x000057f6 call  0x000059da 
+ 00023018  0x000057f7 call  0x000059e2 
+ 00023019  0x000057f8 call  0x00005995 
+ 00023020  0x000057f9 branch  0x00005747 
+ 00023021  0x000057fc bpatch  0x00000083 , 0x00004010 
+ 00023022  0x000057fd call  0x00005949 
+ 00023023  0x000057fe call  0x000055f6 
+ 00023024  0x000057ff arg  0x00000806 , 0x00000002 
+ 00023025  0x00005800 fetch  0x00000001 , 0x00004957 
+ 00023026  0x00005801 bne  0x0000000b , 0x000059f4 
+ 00023027  0x00005802 arg  0x00001f06 , 0x00000002 
+ 00023028  0x00005804 copy  0x00000002 , 0x0000003f 
+ 00023029  0x00005805 branch  0x000069e4 
+ 00023030  0x0000580c fetch  0x00000001 , 0x00004420 
+ 00023031  0x0000580d rtnne  0x00000000 
+ 00023032  0x0000580e fetch  0x00000001 , 0x00004957 
+ 00023033  0x0000580f beq  0x00000000 , 0x00005a02 
+ 00023034  0x00005810 beq  0x00000001 , 0x00005a02 
+ 00023035  0x00005811 beq  0x00000008 , 0x00005a02 
+ 00023036  0x00005812 beq  0x00000002 , 0x00005a02 
+ 00023037  0x00005813 beq  0x00000003 , 0x00005a26 
+ 00023038  0x00005814 beq  0x00000004 , 0x00005a02 
+ 00023039  0x00005815 beq  0x00000006 , 0x00005a4b 
+ 00023040  0x00005816 beq  0x0000000b , 0x00005a44 
+ 00023041  0x00005817 branch  0x00005a02 
+ 00023042  0x0000581b call  0x00005a6d 
+ 00023043  0x0000581c disable  0x00000028 
+ 00023044  0x0000581d fetch  0x00000001 , 0x00004659 
+ 00023045  0x0000581e beq  0x000000ff , 0x00005a09 
+ 00023046  0x0000581f fetcht  0x00000001 , 0x00004659 
+ 00023047  0x00005820 call  0x00006ee6 
+ 00023048  0x00005821 nrtn  0x00000001 
+ 00023049  0x00005823 setarg  0x00000000 
+ 00023050  0x00005824 call  0x000069e5 
+ 00023051  0x00005825 bne  0x00000030 , 0x00005a1c 
+ 00023052  0x00005827 setarg  0x00000002 
+ 00023053  0x00005828 call  0x000069e5 
+ 00023054  0x00005829 rtnbit0  0x00000007 
+ 00023055  0x0000582a call  0x00005a84 
+ 00023056  0x0000582b fetch  0x00000001 , 0x00004847 
+ 00023057  0x0000582c call  0x00005a7c 
+ 00023058  0x0000582d store  0x00000002 , 0x00004847 
+ 00023059  0x0000582e fetch  0x00000001 , 0x00004849 
+ 00023060  0x0000582f call  0x00005a7c 
+ 00023061  0x00005830 store  0x00000002 , 0x00004849 
+ 00023062  0x00005831 fetch  0x00000001 , 0x00004958 
+ 00023063  0x00005832 beq  0x00000000 , 0x00005a1e 
+ 00023064  0x00005833 beq  0x00000001 , 0x00005a20 
+ 00023065  0x00005834 beq  0x00000002 , 0x00005a22 
+ 00023066  0x00005835 beq  0x00000003 , 0x00005a24 
+ 00023067  0x00005836 rtn 
+ 00023068  0x00005839 beq  0x00000031 , 0x00005a0c 
+ 00023069  0x0000583a branch  0x00005955 
+ 00023070  0x0000583d call  0x00005a56 
+ 00023071  0x0000583e branch  0x00005a8b 
+ 00023072  0x00005840 call  0x00005a5e 
+ 00023073  0x00005841 branch  0x00005a8b 
+ 00023074  0x00005843 call  0x00005a5a 
+ 00023075  0x00005844 branch  0x00005a8b 
+ 00023076  0x00005846 call  0x00005a66 
+ 00023077  0x00005847 branch  0x00005a8b 
+ 00023078  0x0000584c call  0x00005a6d 
+ 00023079  0x0000584d fetch  0x00000001 , 0x00004659 
+ 00023080  0x0000584e beq  0x000000ff , 0x00005a2c 
+ 00023081  0x0000584f fetcht  0x00000001 , 0x00004659 
+ 00023082  0x00005850 call  0x00006ee6 
+ 00023083  0x00005851 nrtn  0x00000001 
+ 00023084  0x00005853 setarg  0x00000000 
+ 00023085  0x00005854 call  0x000069e5 
+ 00023086  0x00005855 bne  0x00000030 , 0x00005955 
+ 00023087  0x00005857 setarg  0x00000002 
+ 00023088  0x00005858 call  0x000069e5 
+ 00023089  0x00005859 rtnbit0  0x00000007 
+ 00023090  0x0000585a call  0x00005a84 
+ 00023091  0x0000585b call  0x00005a42 
+ 00023092  0x0000585c store  0x00000001 , 0x0000484d 
+ 00023093  0x0000585d rshift4  0x0000003f , 0x0000003f 
+ 00023094  0x0000585e call  0x00005a80 
+ 00023095  0x0000585f store  0x00000001 , 0x00004848 
+ 00023096  0x00005860 fetch  0x00000001 , 0x0000484d 
+ 00023097  0x00005861 and  0x0000003f , 0x0000000f , 0x0000003f 
+ 00023098  0x00005862 call  0x00005a80 
+ 00023099  0x00005863 store  0x00000001 , 0x0000484a 
+ 00023100  0x00005864 fetch  0x00000001 , 0x00004958 
+ 00023101  0x00005865 beq  0x00000000 , 0x00005a56 
+ 00023102  0x00005866 beq  0x00000001 , 0x00005a5e 
+ 00023103  0x00005867 beq  0x00000002 , 0x00005a5a 
+ 00023104  0x00005868 beq  0x00000003 , 0x00005a66 
+ 00023105  0x00005869 rtn 
+ 00023106  0x0000586c setarg  0x00000012 
+ 00023107  0x0000586d branch  0x000069e5 
+ 00023108  0x00005870 call  0x00005a6d 
+ 00023109  0x00005871 fetch  0x00000001 , 0x00004659 
+ 00023110  0x00005872 beq  0x000000ff , 0x00005a4a 
+ 00023111  0x00005873 fetcht  0x00000001 , 0x00004659 
+ 00023112  0x00005874 call  0x00006ee6 
+ 00023113  0x00005875 nrtn  0x00000001 
+ 00023114  0x00005877 branch  0x00005a2f 
+ 00023115  0x0000587b call  0x00005a6d 
+ 00023116  0x0000587c disable  0x00000028 
+ 00023117  0x0000587d setarg  0x00000002 
+ 00023118  0x0000587e call  0x000069e5 
+ 00023119  0x0000587f rtnbit0  0x00000007 
+ 00023120  0x00005880 setarg  0x00000008 
+ 00023121  0x00005881 call  0x000069e5 
+ 00023122  0x00005882 branch  0x00005a0f , 0x00000034 
+ 00023123  0x00005883 setarg  0x00000000 
+ 00023124  0x00005884 store  0x00000006 , 0x00004847 
+ 00023125  0x00005885 rtn 
+ 00023126  0x00005888 fetch  0x00000002 , 0x00004847 
+ 00023127  0x00005889 sub  0x0000003f , 0x00000000 , 0x0000003f 
+ 00023128  0x0000588a store  0x00000002 , 0x00004847 
+ 00023129  0x0000588b branch  0x00007dba 
+ 00023130  0x0000588d fetch  0x00000002 , 0x00004849 
+ 00023131  0x0000588e sub  0x0000003f , 0x00000000 , 0x0000003f 
+ 00023132  0x0000588f store  0x00000002 , 0x00004849 
+ 00023133  0x00005890 branch  0x00007dba 
+ 00023134  0x00005892 fetch  0x00000002 , 0x00004849 
+ 00023135  0x00005893 sub  0x0000003f , 0x00000000 , 0x0000003f 
+ 00023136  0x00005894 store  0x00000002 , 0x00004849 
+ 00023137  0x00005895 fetch  0x00000002 , 0x00004847 
+ 00023138  0x00005896 sub  0x0000003f , 0x00000000 , 0x0000003f 
+ 00023139  0x00005897 store  0x00000002 , 0x00004847 
+ 00023140  0x00005898 call  0x00005a68 
+ 00023141  0x00005899 branch  0x00007dba 
+ 00023142  0x0000589b call  0x00005a68 
+ 00023143  0x0000589c branch  0x00007dba 
+ 00023144  0x0000589f fetch  0x00000002 , 0x00004849 
+ 00023145  0x000058a0 fetcht  0x00000002 , 0x00004847 
+ 00023146  0x000058a1 store  0x00000002 , 0x00004847 
+ 00023147  0x000058a2 storet  0x00000002 , 0x00004849 
+ 00023148  0x000058a3 rtn 
+ 00023149  0x000058a7 fetch  0x00000001 , 0x00004860 
+ 00023150  0x000058a8 call  0x00005a84 , 0x00000034 
+ 00023151  0x000058a9 jam  0x00000001 , 0x00004860 
+ 00023152  0x000058aa rtn 
+ 00023153  0x000058ad jam  0x00000001 , 0x00004956 
+ 00023154  0x000058ae call  0x000029c9 
+ 00023155  0x000058b0 branch  0x00005949 
+ 00023156  0x000058b3 fetch  0x00000001 , 0x00004659 
+ 00023157  0x000058b4 rtnne  0x000000ff 
+ 00023158  0x000058b5 fetch  0x00000001 , 0x0000477d 
+ 00023159  0x000058b6 rtnne  0x00000001 
+ 00023160  0x000058b7 setarg  0x00000000 
+ 00023161  0x000058b8 store  0x00000001 , 0x0000477d 
+ 00023162  0x000058b9 store  0x00000004 , 0x00004847 
+ 00023163  0x000058ba branch  0x00005a73 
+ 00023164  0x000058bd rtnbit0  0x00000007 
+ 00023165  0x000058be arg  0x0000ff00 , 0x00000002 
+ 00023166  0x000058bf ior  0x00000002 , 0x0000003f 
+ 00023167  0x000058c0 rtn 
+ 00023168  0x000058c3 rtnbit0  0x00000003 
+ 00023169  0x000058c4 arg  0x000000f0 , 0x00000002 
+ 00023170  0x000058c5 ior  0x00000002 , 0x0000003f 
+ 00023171  0x000058c6 rtn 
+ 00023172  0x000058c9 arg  0x00000003 , 0x0000003f 
+ 00023173  0x000058ca call  0x000069e5 
+ 00023174  0x000058cb store  0x00000002 , 0x00004847 
+ 00023175  0x000058cc arg  0x00000004 , 0x0000003f 
+ 00023176  0x000058cd call  0x000069e5 
+ 00023177  0x000058ce store  0x00000002 , 0x00004849 
+ 00023178  0x000058cf rtn 
+ 00023179  0x000058d3 fetcht  0x00000001 , 0x0000464d 
+ 00023180  0x000058d4 call  0x00006ee6 
+ 00023181  0x000058d5 rtn  0x00000001 
+ 00023182  0x000058d6 setarg  0x0000000a 
+ 00023183  0x000058d7 call  0x000069e5 
+ 00023184  0x000058d8 nop  0x000003e8 
+ 00023185  0x000058d9 branch  0x00005a8b 
+ 00023186  0x000058dc setarg  0x00008100 
+ 00023187  0x000058dd branch  0x000069e4 
+ 00023188  0x000058e3 jam  0x000000ff , 0x0000478f 
+ 00023189  0x000058e5 jam  0x00000034 , 0x000043f3 
+ 00023190  0x000058e6 setarg  0x000f0f0f 
+ 00023191  0x000058e7 store  0x00000003 , 0x000042db 
+ 00023192  0x000058e8 store  0x00000003 , 0x000042de 
+ 00023193  0x000058e9 branch  0x000054a9 
+ 00023194  0x000058ec bpatch  0x00000084 , 0x00004010 
+ 00023195  0x000058ed call  0x00005c6f 
+ 00023196  0x000058ee call  0x00005aa8 
+ 00023197  0x000058ef fetch  0x00000001 , 0x00004666 
+ 00023198  0x000058f0 beq  0x00000001 , 0x00005aa1 
+ 00023199  0x000058f1 beq  0x00000002 , 0x00005aa3 
+ 00023200  0x000058f2 rtn 
+ 00023201  0x000058f4 fetch  0x00000006 , 0x00004668 
+ 00023202  0x000058f5 branch  0x00005aa4 
+ 00023203  0x000058f7 fetch  0x00000006 , 0x00004675 
+ 00023204  0x000058f9 fetcht  0x00000006 , 0x000046e6 
+ 00023205  0x000058fa isub  0x00000002 , 0x0000003e 
+ 00023206  0x000058fb branch  0x00005c1a , 0x00000005 
+ 00023207  0x000058fc branch  0x000054a0 
+ 00023208  0x000058ff jam  0x0000005a , 0x0000478f 
+ 00023209  0x00005900 rtn 
+ 00023210  0x00005904 fetch  0x00000002 , 0x000044e9 
+ 00023211  0x00005905 bbit1  0x00000009 , 0x0000431f 
+ 00023212  0x00005906 branch  0x00005c39 
+ 00023213  0x00005908 setarg  0x00000000 
+ 00023214  0x00005909 store  0x00000002 , 0x00004781 
+ 00023215  0x0000590a fetch  0x00000002 , 0x000044e9 
+ 00023216  0x0000590b bbit1  0x00000009 , 0x0000431f 
+ 00023217  0x0000590c rtn 
+ 00023218  0x0000590f fetch  0x00000008 , 0x00004713 
+ 00023219  0x00005910 rtnbit0  0x0000001b 
+ 00023220  0x00005912 nbranch  0x00005aba , 0x00000028 
+ 00023221  0x00005913 fetch  0x00000001 , 0x00004959 
+ 00023222  0x00005914 increase  0x00000001 , 0x0000003f 
+ 00023223  0x00005915 and_into  0x0000000f , 0x0000003f 
+ 00023224  0x00005916 store  0x00000001 , 0x00004959 
+ 00023225  0x00005917 nrtn  0x00000034 
+ 00023226  0x00005919 jam  0x00000000 , 0x00004959 
+ 00023227  0x0000591a branch  0x00007dbc 
+ 00023228  0x0000591d fetch  0x00000001 , 0x00004659 
+ 00023229  0x0000591e rtnne  0x000000ff 
+ 00023230  0x0000591f jam  0x00000000 , 0x000040c0 
+ 00023231  0x00005920 jam  0x0000001e , 0x0000477e 
+ 00023232  0x00005921 rtn 
+ 00023233  0x00005925 bpatch  0x00000085 , 0x00004010 
+ 00023234  0x00005926 copy  0x00000013 , 0x0000003f 
+ 00023235  0x00005927 beq  0x00000014 , 0x00005ad0 
+ 00023236  0x00005928 beq  0x00000015 , 0x00005ae0 
+ 00023237  0x00005929 beq  0x00000010 , 0x00005c15 
+ 00023238  0x0000592a beq  0x00000031 , 0x00005aed 
+ 00023239  0x0000592b beq  0x00000029 , 0x00005aef 
+ 00023240  0x0000592c beq  0x00000032 , 0x00005af1 
+ 00023241  0x0000592d beq  0x0000003e , 0x00004329 
+ 00023242  0x0000592e beq  0x00000040 , 0x00005afc 
+ 00023243  0x0000592f beq  0x00000039 , 0x00006084 
+ 00023244  0x00005930 beq  0x0000003a , 0x00006053 
+ 00023245  0x00005931 beq  0x0000003c , 0x00006075 
+ 00023246  0x00005932 beq  0x00000044 , 0x00005b10 
+ 00023247  0x00005933 rtn 
+ 00023248  0x00005937 call  0x0000618e 
+ 00023249  0x00005938 jam  0x00000000 , 0x0000477d 
+ 00023250  0x00005939 call  0x00005a73 
+ 00023251  0x0000593a jam  0x00000001 , 0x00004794 
+ 00023252  0x0000593b call  0x00006042 
+ 00023253  0x0000593c fetch  0x00000001 , 0x00004795 
+ 00023254  0x0000593d nbranch  0x00005ad8 , 0x00000034 
+ 00023255  0x0000593e jam  0x00000014 , 0x00004796 
+ 00023256  0x00005940 fetch  0x00000002 , 0x000043f1 
+ 00023257  0x00005941 set0  0x00000000 , 0x0000003f 
+ 00023258  0x00005942 store  0x00000002 , 0x000043f1 
+ 00023259  0x00005943 jam  0x00000000 , 0x00004845 
+ 00023260  0x00005944 fetch  0x00000002 , 0x000047be 
+ 00023261  0x00005945 store  0x00000002 , 0x000047c0 
+ 00023262  0x00005946 call  0x00005c0b 
+ 00023263  0x00005947 branch  0x00005c39 
+ 00023264  0x0000594a setarg  0x00000000 
+ 00023265  0x0000594b store  0x00000002 , 0x000047c0 
+ 00023266  0x0000594c jam  0x00000000 , 0x00004794 
+ 00023267  0x0000594d arg  0x00000006 , 0x00000002 
+ 00023268  0x0000594e fetch  0x00000008 , 0x00004713 
+ 00023269  0x0000594f bbit1  0x0000001b , 0x00005ae7 
+ 00023270  0x00005950 arg  0x00000007 , 0x00000002 
+ 00023271  0x00005952 storet  0x00000002 , 0x000042d3 
+ 00023272  0x00005953 storet  0x00000002 , 0x000042d5 
+ 00023273  0x00005954 jam  0x00000000 , 0x000047c2 
+ 00023274  0x00005955 jam  0x00000000 , 0x00004956 
+ 00023275  0x00005956 call  0x000029cb 
+ 00023276  0x00005957 branch  0x00005b76 
+ 00023277  0x0000595a arg  0x00000002 , 0x00000007 
+ 00023278  0x0000595b branch  0x00005af8 
+ 00023279  0x0000595f jam  0x00000012 , 0x0000066f 
+ 00023280  0x00005960 branch  0x00007834 
+ 00023281  0x00005963 fetch  0x00000001 , 0x00004795 
+ 00023282  0x00005964 beq  0x00000001 , 0x00005af4 
+ 00023283  0x00005965 branch  0x00005af6 
+ 00023284  0x00005967 call  0x00005aef 
+ 00023285  0x00005968 jam  0x00000014 , 0x00004844 
+ 00023286  0x0000596a arg  0x00000001 , 0x00000007 
+ 00023287  0x0000596b branch  0x00005af8 
+ 00023288  0x0000596e fetch  0x00000001 , 0x00004843 
+ 00023289  0x0000596f qset1  0x0000003f 
+ 00023290  0x00005970 store  0x00000001 , 0x00004843 
+ 00023291  0x00005971 rtn 
+ 00023292  0x00005974 fetch  0x00000002 , 0x0000433c 
+ 00023293  0x00005975 rtneq  0x00000000 
+ 00023294  0x00005976 fetch  0x00000001 , 0x0000016a 
+ 00023295  0x00005977 rshift2  0x0000003f , 0x0000003f 
+ 00023296  0x00005978 sub  0x0000003f , 0x0000000c , 0x0000003e 
+ 00023297  0x00005979 rtn  0x00000002 
+ 00023298  0x0000597a setarg  0x00000009 
+ 00023299  0x0000597b store  0x00000002 , 0x000042d3 
+ 00023300  0x0000597c store  0x00000002 , 0x000042d5 
+ 00023301  0x0000597d call  0x00005aef 
+ 00023302  0x0000597f jam  0x00000001 , 0x000047c2 
+ 00023303  0x00005980 rtn 
+ 00023304  0x00005983 fetch  0x00000001 , 0x00004795 
+ 00023305  0x00005984 nrtn  0x00000034 
+ 00023306  0x00005985 fetch  0x00000001 , 0x00004398 
+ 00023307  0x00005986 sub  0x0000003f , 0x00000022 , 0x0000003f 
+ 00023308  0x00005987 nrtn  0x00000005 
+ 00023309  0x00005988 jam  0x00000000 , 0x00004844 
+ 00023310  0x0000598a arg  0x00000000 , 0x00000007 
+ 00023311  0x0000598b branch  0x00005af8 
+ 00023312  0x0000598e fetch  0x00000001 , 0x000001a2 
+ 00023313  0x0000598f sub  0x0000003f , 0x0000000c , 0x0000003e 
+ 00023314  0x00005990 nbranch  0x00005b06 , 0x00000002 
+ 00023315  0x00005991 store  0x00000002 , 0x000042d3 
+ 00023316  0x00005992 store  0x00000002 , 0x000042d5 
+ 00023317  0x00005993 fetch  0x00000001 , 0x000001a4 
+ 00023318  0x00005994 branch  0x00005b1d , 0x00000034 
+ 00023319  0x00005995 fetcht  0x00000001 , 0x0000496b 
+ 00023320  0x00005996 isub  0x00000002 , 0x0000003e 
+ 00023321  0x00005997 branch  0x00005b1d , 0x00000002 
+ 00023322  0x00005998 fetch  0x00000001 , 0x000001a4 
+ 00023323  0x00005999 store  0x00000001 , 0x000040c0 
+ 00023324  0x0000599a branch  0x00005b1f 
+ 00023325  0x0000599c fetch  0x00000001 , 0x0000496b 
+ 00023326  0x0000599d store  0x00000001 , 0x000040c0 
+ 00023327  0x0000599f jam  0x00000000 , 0x000047c2 
+ 00023328  0x000059a0 rtn 
+ 00023329  0x000059a3 jam  0x00000000 , 0x00004843 
+ 00023330  0x000059a4 rtn 
+ 00023331  0x000059a7 bpatch  0x00000086 , 0x00004010 
+ 00023332  0x000059a8 call  0x00002a28 
+ 00023333  0x000059a9 nrtn  0x00000034 
+ 00023334  0x000059aa fetch  0x00000001 , 0x0000478f 
+ 00023335  0x000059ab beq  0x000000ff , 0x00005b2b 
+ 00023336  0x000059ac fetch  0x00000001 , 0x00004843 
+ 00023337  0x000059ad and  0x0000003f , 0x00000003 , 0x0000003f 
+ 00023338  0x000059ae rtnne  0x00000003 
+ 00023339  0x000059b0 fetch  0x00000001 , 0x00004956 
+ 00023340  0x000059b1 call  0x00005a71 , 0x00000034 
+ 00023341  0x000059b2 fetch  0x00000008 , 0x00004713 
+ 00023342  0x000059b3 bbit1  0x00000001 , 0x00005b5b 
+ 00023343  0x000059b4 bbit1  0x00000000 , 0x00005b5b 
+ 00023344  0x000059b5 bbit1  0x00000005 , 0x00005b5b 
+ 00023345  0x000059b6 bbit1  0x00000006 , 0x00005b5b 
+ 00023346  0x000059b7 call  0x00005601 
+ 00023347  0x000059b8 call  0x00005ab2 
+ 00023348  0x000059b9 nrtn  0x00000028 
+ 00023349  0x000059ba call  0x00005abc 
+ 00023350  0x000059bb call  0x00005a74 
+ 00023351  0x000059bc call  0x000056b1 
+ 00023352  0x000059bd fetch  0x00000008 , 0x00004713 
+ 00023353  0x000059be bbit0  0x00000016 , 0x00005b3c 
+ 00023354  0x000059bf fetch  0x00000001 , 0x0000496c 
+ 00023355  0x000059c0 beq  0x00000001 , 0x00005b3d 
+ 00023356  0x000059c2 branch  0x00005b5d 
+ 00023357  0x000059c6 fetch  0x00000001 , 0x0000496d 
+ 00023358  0x000059c7 branch  0x00005b4d , 0x00000034 
+ 00023359  0x000059c8 fetch  0x00000008 , 0x0000472b 
+ 00023360  0x000059ca store  0x00000008 , 0x00000670 
+ 00023361  0x000059cb fetch  0x00000001 , 0x0000472a 
+ 00023362  0x000059cc beq  0x00000003 , 0x00005b4f 
+ 00023363  0x000059cd beq  0x00000002 , 0x00005b52 
+ 00023364  0x000059ce jam  0x00000008 , 0x000047b4 
+ 00023365  0x000059cf fetcht  0x00000002 , 0x000047b5 
+ 00023366  0x000059d1 fetch  0x00000001 , 0x000047b4 
+ 00023367  0x000059d2 copy  0x0000003f , 0x00000011 
+ 00023368  0x000059d3 call  0x00002dee 
+ 00023369  0x000059d4 fetcht  0x00000001 , 0x000047b4 
+ 00023370  0x000059d5 copy  0x00000002 , 0x00000039 
+ 00023371  0x000059d6 arg  0x00000670 , 0x00000006 
+ 00023372  0x000059d7 branch  0x00007cda 
+ 00023373  0x000059da fetch  0x00000008 , 0x00004734 
+ 00023374  0x000059db branch  0x00005b40 
+ 00023375  0x000059de jam  0x00000003 , 0x000047b4 
+ 00023376  0x000059df fetcht  0x00000002 , 0x000047b7 
+ 00023377  0x000059e0 branch  0x00005b46 
+ 00023378  0x000059e3 jam  0x00000002 , 0x000047b4 
+ 00023379  0x000059e4 fetcht  0x00000002 , 0x000047b9 
+ 00023380  0x000059e5 branch  0x00005b46 
+ 00023381  0x000059e8 arg  0x00000001 , 0x00000011 
+ 00023382  0x000059e9 fetcht  0x00000002 , 0x000047bb 
+ 00023383  0x000059ea call  0x00002dee 
+ 00023384  0x000059eb fetch  0x00000001 , 0x000047bd 
+ 00023385  0x000059ec istore  0x00000001 , 0x00000005 
+ 00023386  0x000059ed rtn 
+ 00023387  0x000059f0 setarg  0x00000000 
+ 00023388  0x000059f1 store  0x00000007 , 0x00004846 
+ 00023389  0x000059f3 jam  0x00000007 , 0x000047b4 
+ 00023390  0x000059f4 fetch  0x00000007 , 0x00004846 
+ 00023391  0x000059f5 store  0x00000007 , 0x00000670 
+ 00023392  0x000059f6 fetcht  0x00000002 , 0x0000439b 
+ 00023393  0x000059f7 branch  0x00005b46 
+ 00023394  0x000059fa jam  0x00000000 , 0x00004795 
+ 00023395  0x000059fb fetch  0x00000003 , 0x0000479a 
+ 00023396  0x000059fc store  0x00000003 , 0x0000434d 
+ 00023397  0x000059fd call  0x00005b6b 
+ 00023398  0x000059fe setarg  0x00000005 
+ 00023399  0x000059ff istore  0x00000001 , 0x00000006 
+ 00023400  0x00005a00 arg  0x000047a0 , 0x00000006 
+ 00023401  0x00005a01 call  0x00005b72 
+ 00023402  0x00005a02 branch  0x00007870 
+ 00023403  0x00005a05 arg  0x00004349 , 0x00000011 
+ 00023404  0x00005a07 ifetch  0x00000001 , 0x00000011 
+ 00023405  0x00005a08 rtn  0x00000034 
+ 00023406  0x00005a09 iadd  0x00000006 , 0x00000011 
+ 00023407  0x00005a0a ifetch  0x00000001 , 0x00000006 
+ 00023408  0x00005a0b rtneq  0x00000001 
+ 00023409  0x00005a0c branch  0x00005b6c 
+ 00023410  0x00005a0f arg  0x00004354 , 0x00000005 
+ 00023411  0x00005a10 arg  0x00000013 , 0x00000039 
+ 00023412  0x00005a11 call  0x00007cda 
+ 00023413  0x00005a12 branch  0x00002969 
+ 00023414  0x00005a19 call  0x00005b7b 
+ 00023415  0x00005a1a fetch  0x00000002 , 0x000043ef 
+ 00023416  0x00005a1b bbit1  0x00000007 , 0x00005b81 
+ 00023417  0x00005a1c bbit1  0x00000000 , 0x000042fc 
+ 00023418  0x00005a1d branch  0x00005c1a 
+ 00023419  0x00005a20 setarg  0x00000000 
+ 00023420  0x00005a21 store  0x00000008 , 0x0000484f 
+ 00023421  0x00005a22 istore  0x00000004 , 0x00000005 
+ 00023422  0x00005a23 jam  0x00000000 , 0x00004860 
+ 00023423  0x00005a24 jam  0x00000000 , 0x0000429a 
+ 00023424  0x00005a25 rtn 
+ 00023425  0x00005a28 call  0x00005b21 
+ 00023426  0x00005a29 fetch  0x00000002 , 0x000043ef 
+ 00023427  0x00005a2a bbit1  0x00000000 , 0x000042fc 
+ 00023428  0x00005a2b branch  0x000054cd 
+ 00023429  0x00005a30 bpatch  0x00000087 , 0x00004010 
+ 00023430  0x00005a32 call  0x0000614d 
+ 00023431  0x00005a33 call  0x0000553d 
+ 00023432  0x00005a35 call  0x00006110 
+ 00023433  0x00005a36 call  0x000061b1 
+ 00023434  0x00005a37 call  0x0000611e 
+ 00023435  0x00005a39 call  0x0000328e 
+ 00023436  0x00005a3a call  0x00003531 
+ 00023437  0x00005a3b call  0x00005fdd 
+ 00023438  0x00005a3d call  0x0000572c 
+ 00023439  0x00005a3e call  0x00005b9b 
+ 00023440  0x00005a3f call  0x00005bab 
+ 00023441  0x00005a40 call  0x00005bce 
+ 00023442  0x00005a42 call  0x00005bd3 
+ 00023443  0x00005a43 call  0x00005be1 
+ 00023444  0x00005a44 call  0x00005bee 
+ 00023445  0x00005a45 call  0x00005be4 
+ 00023446  0x00005a47 call  0x00005bfb 
+ 00023447  0x00005a48 call  0x00005bfe 
+ 00023448  0x00005a49 call  0x000056b6 
+ 00023449  0x00005a4a call  0x00005c0e 
+ 00023450  0x00005a4b branch  0x00005c05 
+ 00023451  0x00005a4e fetch  0x00000008 , 0x00004713 
+ 00023452  0x00005a4f bbit1  0x00000037 , 0x00005b9e 
+ 00023453  0x00005a50 rtn 
+ 00023454  0x00005a53 fetch  0x00000001 , 0x0000497f 
+ 00023455  0x00005a54 rtnne  0x00000001 
+ 00023456  0x00005a55 arg  0x0000497c , 0x00000013 
+ 00023457  0x00005a56 arg  0x00005ba3 , 0x00000012 
+ 00023458  0x00005a57 branch  0x000042e0 
+ 00023459  0x00005a5a fetch  0x00000001 , 0x00004666 
+ 00023460  0x00005a5b rtneq  0x00000000 
+ 00023461  0x00005a5c fetch  0x00000008 , 0x00004713 
+ 00023462  0x00005a5d rtnbit1  0x00000006 
+ 00023463  0x00005a5e arg  0x00000006 , 0x00000007 
+ 00023464  0x00005a5f call  0x00005f00 
+ 00023465  0x00005a60 call  0x000042d0 
+ 00023466  0x00005a61 branch  0x00005c15 
+ 00023467  0x00005a64 fetch  0x00000001 , 0x00004666 
+ 00023468  0x00005a65 beq  0x00000000 , 0x00005bb1 
+ 00023469  0x00005a66 fetch  0x00000008 , 0x00004713 
+ 00023470  0x00005a67 rtnbit0  0x00000035 
+ 00023471  0x00005a68 fetcht  0x00000001 , 0x00004727 
+ 00023472  0x00005a69 branch  0x00005bb4 
+ 00023473  0x00005a6c fetch  0x00000008 , 0x00004713 
+ 00023474  0x00005a6d rtnbit0  0x00000032 
+ 00023475  0x00005a6e fetcht  0x00000001 , 0x00004728 
+ 00023476  0x00005a70 storet  0x00000001 , 0x0000497e 
+ 00023477  0x00005a71 call  0x00005888 
+ 00023478  0x00005a72 and  0x0000003f , 0x00000007 , 0x0000003f 
+ 00023479  0x00005a73 fetcht  0x00000001 , 0x0000497e 
+ 00023480  0x00005a74 isub  0x00000002 , 0x0000003e 
+ 00023481  0x00005a75 branch  0x00005bc0 , 0x00000005 
+ 00023482  0x00005a77 fetch  0x00000001 , 0x000044eb 
+ 00023483  0x00005a78 store  0x00000001 , 0x00004981 
+ 00023484  0x00005a79 fetch  0x00000001 , 0x00004980 
+ 00023485  0x00005a7a rtneq  0x00000000 
+ 00023486  0x00005a7b jam  0x00000000 , 0x00004980 
+ 00023487  0x00005a7c rtn 
+ 00023488  0x00005a7f call  0x00005bc5 
+ 00023489  0x00005a80 fetch  0x00000001 , 0x00004980 
+ 00023490  0x00005a81 rtneq  0x00000001 
+ 00023491  0x00005a82 jam  0x00000001 , 0x00004980 
+ 00023492  0x00005a83 rtn 
+ 00023493  0x00005a86 arg  0x00006047 , 0x00000012 
+ 00023494  0x00005a87 arg  0x00004981 , 0x00000013 
+ 00023495  0x00005a88 fetch  0x00000001 , 0x00004666 
+ 00023496  0x00005a89 beq  0x00000000 , 0x000042e0 
+ 00023497  0x00005a8a arg  0x00005ba3 , 0x00000012 
+ 00023498  0x00005a8b call  0x000042e0 
+ 00023499  0x00005a8c fetch  0x00000001 , 0x00004981 
+ 00023500  0x00005a8d beq  0x00000001 , 0x00005ef2 
+ 00023501  0x00005a8e rtn 
+ 00023502  0x00005a91 arg  0x00004790 , 0x00000013 
+ 00023503  0x00005a92 arg  0x00005bd1 , 0x00000012 
+ 00023504  0x00005a93 branch  0x000042e7 
+ 00023505  0x00005a96 call  0x00005c39 
+ 00023506  0x00005a97 branch  0x000054cd 
+ 00023507  0x00005a9a arg  0x00004845 , 0x00000013 
+ 00023508  0x00005a9b arg  0x00005bd9 , 0x00000012 
+ 00023509  0x00005a9c call  0x000042e0 
+ 00023510  0x00005a9d fetch  0x00000001 , 0x00004845 
+ 00023511  0x00005a9e beq  0x00000001 , 0x00004313 
+ 00023512  0x00005a9f rtn 
+ 00023513  0x00005aa2 fetch  0x00000001 , 0x0000478f 
+ 00023514  0x00005aa3 beq  0x000000ff , 0x00005a9a 
+ 00023515  0x00005aa4 fetch  0x00000001 , 0x0000477f 
+ 00023516  0x00005aa5 nbranch  0x00005f1b , 0x00000034 
+ 00023517  0x00005aa6 fetch  0x00000008 , 0x00004713 
+ 00023518  0x00005aa7 bbit1  0x00000033 , 0x00005c1a 
+ 00023519  0x00005aa8 bbit1  0x0000003e , 0x0000603f 
+ 00023520  0x00005aa9 branch  0x000054cd 
+ 00023521  0x00005aac arg  0x00004844 , 0x00000013 
+ 00023522  0x00005aad arg  0x00005b0e , 0x00000012 
+ 00023523  0x00005aae branch  0x000042e0 
+ 00023524  0x00005ab1 fetch  0x00000001 , 0x00004794 
+ 00023525  0x00005ab2 rtn  0x00000034 
+ 00023526  0x00005ab3 arg  0x00004796 , 0x00000013 
+ 00023527  0x00005ab4 arg  0x00005be9 , 0x00000012 
+ 00023528  0x00005ab5 branch  0x000042e0 
+ 00023529  0x00005ab7 fetch  0x00000001 , 0x00004795 
+ 00023530  0x00005ab8 nrtn  0x00000034 
+ 00023531  0x00005ab9 fetch  0x00000001 , 0x000042fc 
+ 00023532  0x00005aba rtnne  0x00000000 
+ 00023533  0x00005abb branch  0x00002fcd 
+ 00023534  0x00005abe fetch  0x00000008 , 0x00004713 
+ 00023535  0x00005abf rtnbit1  0x0000003b 
+ 00023536  0x00005ac0 arg  0x000047c0 , 0x00000013 
+ 00023537  0x00005ac1 arg  0x00005bf3 , 0x00000012 
+ 00023538  0x00005ac2 branch  0x000042e0 
+ 00023539  0x00005ac5 fetch  0x00000002 , 0x000047be 
+ 00023540  0x00005ac6 store  0x00000002 , 0x000047c0 
+ 00023541  0x00005ac7 branch  0x00005b55 
+ 00023542  0x00005aca fetch  0x00000001 , 0x00004843 
+ 00023543  0x00005acb rtnbit1  0x00000002 
+ 00023544  0x00005acc call  0x00005aef 
+ 00023545  0x00005acd arg  0x00000000 , 0x00000007 
+ 00023546  0x00005ace branch  0x00005af8 
+ 00023547  0x00005ad1 arg  0x00004792 , 0x00000013 
+ 00023548  0x00005ad2 arg  0x000054cd , 0x00000012 
+ 00023549  0x00005ad3 branch  0x000042e0 
+ 00023550  0x00005ad6 arg  0x0000477e , 0x00000013 
+ 00023551  0x00005ad7 arg  0x00005c01 , 0x00000012 
+ 00023552  0x00005ad8 branch  0x000042e0 
+ 00023553  0x00005ada fetch  0x00000001 , 0x0000496b 
+ 00023554  0x00005adb store  0x00000001 , 0x000040c0 
+ 00023555  0x00005adc jam  0x00000001 , 0x0000477d 
+ 00023556  0x00005add rtn 
+ 00023557  0x00005ae1 arg  0x00004781 , 0x00000013 
+ 00023558  0x00005ae2 arg  0x00005c08 , 0x00000012 
+ 00023559  0x00005ae3 branch  0x000042e7 
+ 00023560  0x00005ae6 fetch  0x00000001 , 0x00004666 
+ 00023561  0x00005ae7 beq  0x00000000 , 0x00005ff2 
+ 00023562  0x00005ae8 branch  0x00005aad 
+ 00023563  0x00005aeb fetch  0x00000002 , 0x00004725 
+ 00023564  0x00005aec store  0x00000002 , 0x00004781 
+ 00023565  0x00005aed rtn 
+ 00023566  0x00005af0 arg  0x000046f3 , 0x00000013 
+ 00023567  0x00005af1 arg  0x00005c11 , 0x00000012 
+ 00023568  0x00005af2 branch  0x000042e0 
+ 00023569  0x00005af5 call  0x00005ca6 
+ 00023570  0x00005af6 fetch  0x00000001 , 0x00004793 
+ 00023571  0x00005af7 nbranch  0x00005ed1 , 0x00000034 
+ 00023572  0x00005af8 rtn 
+ 00023573  0x00005afb isolate1  0x00000026 , 0x00000000 
+ 00023574  0x00005afc call  0x00006018 , 0x00000001 
+ 00023575  0x00005afd call  0x00005aad 
+ 00023576  0x00005afe call  0x00005b21 
+ 00023577  0x00005aff branch  0x00005c1a 
+ 00023578  0x00005b02 bpatch  0x00000088 , 0x00004011 
+ 00023579  0x00005b03 call  0x000061ab 
+ 00023580  0x00005b04 fetch  0x00000002 , 0x000044e9 
+ 00023581  0x00005b05 isolate1  0x0000000b , 0x0000003f 
+ 00023582  0x00005b06 call  0x00005c3e , 0x00000001 
+ 00023583  0x00005b07 call  0x00005aa8 
+ 00023584  0x00005b08 fetch  0x00000002 , 0x000044e9 
+ 00023585  0x00005b09 bbit1  0x0000000b , 0x00005c2a 
+ 00023586  0x00005b0a fetch  0x00000008 , 0x00004713 
+ 00023587  0x00005b0b bbit0  0x00000008 , 0x00005c2a 
+ 00023588  0x00005b0c fetcht  0x00000002 , 0x00004695 
+ 00023589  0x00005b0d increase  0x00000001 , 0x00000002 
+ 00023590  0x00005b0e storet  0x00000002 , 0x00004695 
+ 00023591  0x00005b0f storet  0x00000002 , 0x000042dc 
+ 00023592  0x00005b10 random  0x0000003f 
+ 00023593  0x00005b11 store  0x00000001 , 0x000042db 
+ 00023594  0x00005b13 fetch  0x00000003 , 0x00004797 
+ 00023595  0x00005b14 store  0x00000003 , 0x000042de 
+ 00023596  0x00005b15 call  0x0000432d 
+ 00023597  0x00005b16 fetch  0x00000002 , 0x00004638 
+ 00023598  0x00005b17 store  0x00000002 , 0x00004790 
+ 00023599  0x00005b18 setarg  0x00000000 
+ 00023600  0x00005b19 store  0x00000002 , 0x00004781 
+ 00023601  0x00005b1a store  0x00000002 , 0x000047c0 
+ 00023602  0x00005b1b store  0x00000001 , 0x00004845 
+ 00023603  0x00005b1c store  0x00000001 , 0x00004792 
+ 00023604  0x00005b1d store  0x00000001 , 0x00004956 
+ 00023605  0x00005b1e arg  0x00000002 , 0x00000007 
+ 00023606  0x00005b1f call  0x00005f00 
+ 00023607  0x00005b20 call  0x00005ef4 
+ 00023608  0x00005b21 branch  0x00005b62 
+ 00023609  0x00005b24 bpatch  0x00000089 , 0x00004011 
+ 00023610  0x00005b25 arg  0x00000006 , 0x00000007 
+ 00023611  0x00005b26 call  0x00005f04 
+ 00023612  0x00005b27 jam  0x00000000 , 0x00004792 
+ 00023613  0x00005b28 branch  0x00005c3e 
+ 00023614  0x00005b2a setarg  0x00000000 
+ 00023615  0x00005b2b store  0x00000001 , 0x00004845 
+ 00023616  0x00005b2c store  0x00000002 , 0x00004790 
+ 00023617  0x00005b2d branch  0x00007876 
+ 00023618  0x00005b30 bpatch  0x0000008a , 0x00004011 
+ 00023619  0x00005b31 fetch  0x00000008 , 0x00004713 
+ 00023620  0x00005b32 rtnbit0  0x00000002 
+ 00023621  0x00005b33 arg  0x00000002 , 0x00000007 
+ 00023622  0x00005b34 call  0x00005f04 
+ 00023623  0x00005b35 call  0x00005c4a 
+ 00023624  0x00005b37 call  0x00005c59 
+ 00023625  0x00005b38 branch  0x00005ca3 
+ 00023626  0x00005b3b fetch  0x00000001 , 0x00000032 
+ 00023627  0x00005b3c beq  0x00000034 , 0x00005c4d 
+ 00023628  0x00005b3d rtn 
+ 00023629  0x00005b3f store  0x00000001 , 0x0000495a 
+ 00023630  0x00005b40 fetch  0x00000006 , 0x00000178 
+ 00023631  0x00005b42 store  0x00000006 , 0x0000495b 
+ 00023632  0x00005b43 fetch  0x00000007 , 0x0000495a 
+ 00023633  0x00005b44 arg  0x00004667 , 0x00000006 
+ 00023634  0x00005b45 arg  0x00000003 , 0x00000039 
+ 00023635  0x00005b47 ifetcht  0x00000007 , 0x00000006 
+ 00023636  0x00005b48 isub  0x00000002 , 0x0000003e 
+ 00023637  0x00005b49 branch  0x00005c69 , 0x00000005 
+ 00023638  0x00005b4a increase  0x00000016 , 0x00000006 
+ 00023639  0x00005b4b loop  0x00005c53 
+ 00023640  0x00005b4c rtn 
+ 00023641  0x00005b4e arg  0x00004667 , 0x00000011 
+ 00023642  0x00005b4f fetch  0x00000001 , 0x00004666 
+ 00023643  0x00005b50 increase  0xffffffff , 0x0000003f 
+ 00023644  0x00005b51 mul32  0x0000003f , 0x0000001d , 0x0000003f 
+ 00023645  0x00005b52 iadd  0x00000011 , 0x00000011 
+ 00023646  0x00005b53 fetch  0x00000001 , 0x00000032 
+ 00023647  0x00005b54 istore  0x00000001 , 0x00000011 
+ 00023648  0x00005b55 beq  0x00000034 , 0x00005c62 
+ 00023649  0x00005b56 rtn 
+ 00023650  0x00005b59 fetch  0x00000006 , 0x00000178 
+ 00023651  0x00005b5a istore  0x00000006 , 0x00000005 
+ 00023652  0x00005b5b arg  0x0000428a , 0x00000006 
+ 00023653  0x00005b5c call  0x00007c8f 
+ 00023654  0x00005b5d fetch  0x00000006 , 0x000042db 
+ 00023655  0x00005b5e istore  0x00000006 , 0x00000005 
+ 00023656  0x00005b5f rtn 
+ 00023657  0x00005b62 increase  0xfffffffa , 0x00000006 
+ 00023658  0x00005b63 copy  0x00000006 , 0x00000005 
+ 00023659  0x00005b64 fetcht  0x00000006 , 0x0000495b 
+ 00023660  0x00005b65 increase  0x00000003 , 0x00000002 
+ 00023661  0x00005b66 istoret  0x00000006 , 0x00000005 
+ 00023662  0x00005b67 rtn 
+ 00023663  0x00005b6a arg  0x00004667 , 0x00000011 
+ 00023664  0x00005b6b fetch  0x00000001 , 0x00004666 
+ 00023665  0x00005b6c rtneq  0x00000000 
+ 00023666  0x00005b6d increase  0xffffffff , 0x0000003f 
+ 00023667  0x00005b6e mul32  0x0000003f , 0x0000001d , 0x0000003f 
+ 00023668  0x00005b6f iadd  0x00000011 , 0x00000011 
+ 00023669  0x00005b70 ifetch  0x00000001 , 0x00000011 
+ 00023670  0x00005b71 store  0x00000001 , 0x000043f3 
+ 00023671  0x00005b72 beq  0x00000034 , 0x00005c79 
+ 00023672  0x00005b73 rtn 
+ 00023673  0x00005b76 ifetch  0x00000006 , 0x00000006 
+ 00023674  0x00005b78 store  0x00000006 , 0x00004116 
+ 00023675  0x00005b79 arg  0x0000428a , 0x00000005 
+ 00023676  0x00005b7a call  0x00007c8f 
+ 00023677  0x00005b7b ifetch  0x00000006 , 0x00000006 
+ 00023678  0x00005b7c store  0x00000006 , 0x000042db 
+ 00023679  0x00005b7d rtn 
+ 00023680  0x00005b80 bpatch  0x0000008b , 0x00004011 
+ 00023681  0x00005b81 fetch  0x00000002 , 0x0000468e 
+ 00023682  0x00005b82 arg  0x0000aa55 , 0x00000002 
+ 00023683  0x00005b83 isub  0x00000002 , 0x0000003e 
+ 00023684  0x00005b84 branch  0x00005c8f , 0x00000005 
+ 00023685  0x00005b86 storet  0x00000002 , 0x0000468e 
+ 00023686  0x00005b87 call  0x00005c9c 
+ 00023687  0x00005b88 fetch  0x00000001 , 0x000049a1 
+ 00023688  0x00005b89 store  0x00000001 , 0x00004666 
+ 00023689  0x00005b8a fetch  0x00000004 , 0x000045e4 
+ 00023690  0x00005b8b store  0x00000004 , 0x000045e8 
+ 00023691  0x00005b8c store  0x00000004 , 0x0000458f 
+ 00023692  0x00005b8e fetch  0x00000001 , 0x00004651 
+ 00023693  0x00005b8f store  0x00000001 , 0x00004690 
+ 00023694  0x00005b90 rtn 
+ 00023695  0x00005b93 call  0x00005c94 
+ 00023696  0x00005b95 fetch  0x00000004 , 0x00004691 
+ 00023697  0x00005b96 store  0x00000004 , 0x000045e8 
+ 00023698  0x00005b97 store  0x00000004 , 0x0000458f 
+ 00023699  0x00005b98 rtn 
+ 00023700  0x00005b9b fetch  0x00000008 , 0x00004713 
+ 00023701  0x00005b9c rtnbit0  0x0000000f 
+ 00023702  0x00005b9d fetch  0x00000002 , 0x000049fa 
+ 00023703  0x00005b9e copy  0x0000003f , 0x00000012 
+ 00023704  0x00005b9f call  0x00005e51 
+ 00023705  0x00005ba0 fetch  0x00000001 , 0x000049d4 
+ 00023706  0x00005ba1 call  0x00005c8c , 0x00000034 
+ 00023707  0x00005ba2 rtn 
+ 00023708  0x00005ba5 fetch  0x00000006 , 0x000042db 
+ 00023709  0x00005ba6 store  0x00000006 , 0x0000466e 
+ 00023710  0x00005ba7 add  0x0000003f , 0x00000100 , 0x0000003f 
+ 00023711  0x00005ba8 store  0x00000006 , 0x0000467b 
+ 00023712  0x00005ba9 add  0x0000003f , 0x00000100 , 0x0000003f 
+ 00023713  0x00005baa store  0x00000006 , 0x00004688 
+ 00023714  0x00005bab rtn 
+ 00023715  0x00005bb0 fetch  0x00000001 , 0x000046f4 
+ 00023716  0x00005bb1 store  0x00000001 , 0x000046f3 
+ 00023717  0x00005bb2 rtn 
+ 00023718  0x00005bb5 bpatch  0x0000008c , 0x00004011 
+ 00023719  0x00005bb6 fetch  0x00000008 , 0x00004713 
+ 00023720  0x00005bb7 bbit1  0x00000013 , 0x00005cb1 
+ 00023721  0x00005bb8 bbit1  0x00000012 , 0x00005cb9 
+ 00023722  0x00005bb9 bbit1  0x00000014 , 0x00005cc0 
+ 00023723  0x00005bba rtn 
+ 00023724  0x00005bbd bpatch  0x0000008d , 0x00004011 
+ 00023725  0x00005bbe fetch  0x00000008 , 0x00004713 
+ 00023726  0x00005bbf bbit1  0x00000013 , 0x00005cb5 
+ 00023727  0x00005bc0 bbit1  0x00000014 , 0x00005d3c 
+ 00023728  0x00005bc1 rtn 
+ 00023729  0x00005bc6 arg  0x00000080 , 0x00000002 
+ 00023730  0x00005bc7 arg  0x00004666 , 0x00000011 
+ 00023731  0x00005bc8 arg  0x00000000 , 0x00000012 
+ 00023732  0x00005bc9 branch  0x00006cd3 
+ 00023733  0x00005bcc arg  0x00000001 , 0x00000002 
+ 00023734  0x00005bcd arg  0x00004690 , 0x00000011 
+ 00023735  0x00005bce arg  0x0000005a , 0x00000012 
+ 00023736  0x00005bcf branch  0x00006cd3 
+ 00023737  0x00005bd4 call  0x00006c20 
+ 00023738  0x00005bd5 call  0x00005d7b 
+ 00023739  0x00005bd6 call  0x00005d90 
+ 00023740  0x00005bd8 call  0x00005d75 
+ 00023741  0x00005bd9 call  0x00005d93 
+ 00023742  0x00005bda call  0x00005d82 
+ 00023743  0x00005bdb branch  0x000055f6 
+ 00023744  0x00005be1 call  0x00005cc3 
+ 00023745  0x00005be2 call  0x00005ce5 
+ 00023746  0x00005be3 branch  0x00005d26 
+ 00023747  0x00005be8 fetchr  0x00000012 , 0x00000002 , 0x000049e2 
+ 00023748  0x00005be9 copy  0x00000012 , 0x00000013 
+ 00023749  0x00005beb call  0x00005dc0 
+ 00023750  0x00005bec fetch  0x00000001 , 0x000049a1 
+ 00023751  0x00005bed branch  0x00005ccf , 0x00000034 
+ 00023752  0x00005bee store  0x00000001 , 0x000049a0 
+ 00023753  0x00005bef increase  0x00000001 , 0x00000013 
+ 00023754  0x00005bf0 fetch  0x00000002 , 0x000049e4 
+ 00023755  0x00005bf1 isub  0x00000013 , 0x0000003e 
+ 00023756  0x00005bf2 nrtn  0x00000002 
+ 00023757  0x00005bf3 copy  0x00000013 , 0x00000012 
+ 00023758  0x00005bf4 branch  0x00005cc5 
+ 00023759  0x00005bf7 fetch  0x00000001 , 0x000049a0 
+ 00023760  0x00005bf8 and  0x0000003f , 0x000000f0 , 0x0000003f 
+ 00023761  0x00005bf9 branch  0x00005cd8 , 0x00000034 
+ 00023762  0x00005bfa fetch  0x00000001 , 0x00004666 
+ 00023763  0x00005bfb store  0x00000001 , 0x000049a2 
+ 00023764  0x00005bfd arg  0x00000001 , 0x00000039 
+ 00023765  0x00005bfe copy  0x00000013 , 0x00000012 
+ 00023766  0x00005bff arg  0x000049a2 , 0x00000011 
+ 00023767  0x00005c00 branch  0x00006b45 
+ 00023768  0x00005c03 fetch  0x00000001 , 0x000049a0 
+ 00023769  0x00005c04 fetcht  0x00000001 , 0x00004666 
+ 00023770  0x00005c05 isub  0x00000002 , 0x0000003e 
+ 00023771  0x00005c06 rtn  0x00000005 
+ 00023772  0x00005c07 lshift4  0x00000002 , 0x00000002 
+ 00023773  0x00005c08 iadd  0x00000002 , 0x0000003f 
+ 00023774  0x00005c09 store  0x00000001 , 0x000049a2 
+ 00023775  0x00005c0b copy  0x00000013 , 0x0000003f 
+ 00023776  0x00005c0c fetcht  0x00000002 , 0x000049e2 
+ 00023777  0x00005c0d isub  0x00000002 , 0x0000003e 
+ 00023778  0x00005c0e branch  0x00005cd4 , 0x00000005 
+ 00023779  0x00005c10 increase  0xffffffff , 0x00000013 
+ 00023780  0x00005c11 branch  0x00005cd4 
+ 00023781  0x00005c16 fetch  0x00000001 , 0x00004666 
+ 00023782  0x00005c17 beq  0x00000000 , 0x00005cea 
+ 00023783  0x00005c18 beq  0x00000001 , 0x00005cfe 
+ 00023784  0x00005c19 beq  0x00000002 , 0x00005d12 
+ 00023785  0x00005c1a rtn 
+ 00023786  0x00005c1d fetchr  0x00000012 , 0x00000002 , 0x000049e6 
+ 00023787  0x00005c1e copy  0x00000012 , 0x00000013 
+ 00023788  0x00005c20 call  0x00005e29 
+ 00023789  0x00005c21 fetch  0x00000004 , 0x000049da 
+ 00023790  0x00005c22 branch  0x00005cf6 , 0x00000034 
+ 00023791  0x00005c23 store  0x00000004 , 0x000049d6 
+ 00023792  0x00005c24 increase  0x00000004 , 0x00000013 
+ 00023793  0x00005c25 fetch  0x00000002 , 0x000049e8 
+ 00023794  0x00005c26 isub  0x00000013 , 0x0000003e 
+ 00023795  0x00005c27 nrtn  0x00000002 
+ 00023796  0x00005c28 copy  0x00000013 , 0x00000012 
+ 00023797  0x00005c29 branch  0x00005cec 
+ 00023798  0x00005c2c fetch  0x00000004 , 0x000049d6 
+ 00023799  0x00005c2d fetcht  0x00000004 , 0x00004691 
+ 00023800  0x00005c2e isub  0x00000002 , 0x0000003e 
+ 00023801  0x00005c2f rtn  0x00000005 
+ 00023802  0x00005c30 arg  0x00000004 , 0x00000039 
+ 00023803  0x00005c31 arg  0x00004691 , 0x00000011 
+ 00023804  0x00005c32 copy  0x00000013 , 0x00000012 
+ 00023805  0x00005c33 branch  0x00006b45 
+ 00023806  0x00005c36 fetchr  0x00000012 , 0x00000002 , 0x000049ea 
+ 00023807  0x00005c37 copy  0x00000012 , 0x00000013 
+ 00023808  0x00005c39 call  0x00005de1 
+ 00023809  0x00005c3a fetch  0x00000006 , 0x000049a9 
+ 00023810  0x00005c3b branch  0x00005d0a , 0x00000034 
+ 00023811  0x00005c3c store  0x00000006 , 0x000049a3 
+ 00023812  0x00005c3d increase  0x00000006 , 0x00000013 
+ 00023813  0x00005c3e fetch  0x00000002 , 0x000049ec 
+ 00023814  0x00005c3f isub  0x00000013 , 0x0000003e 
+ 00023815  0x00005c40 nrtn  0x00000002 
+ 00023816  0x00005c41 copy  0x00000013 , 0x00000012 
+ 00023817  0x00005c42 branch  0x00005d00 
+ 00023818  0x00005c45 fetch  0x00000006 , 0x000049a3 
+ 00023819  0x00005c46 fetcht  0x00000006 , 0x00004668 
+ 00023820  0x00005c47 isub  0x00000002 , 0x0000003e 
+ 00023821  0x00005c48 rtn  0x00000005 
+ 00023822  0x00005c49 arg  0x00000006 , 0x00000039 
+ 00023823  0x00005c4a arg  0x00004668 , 0x00000011 
+ 00023824  0x00005c4b copy  0x00000013 , 0x00000012 
+ 00023825  0x00005c4c branch  0x00006b45 
+ 00023826  0x00005c50 fetchr  0x00000012 , 0x00000002 , 0x000049f2 
+ 00023827  0x00005c51 copy  0x00000012 , 0x00000013 
+ 00023828  0x00005c53 call  0x00005e05 
+ 00023829  0x00005c54 fetch  0x00000006 , 0x000049c1 
+ 00023830  0x00005c55 branch  0x00005d1e , 0x00000034 
+ 00023831  0x00005c56 store  0x00000006 , 0x000049bb 
+ 00023832  0x00005c57 increase  0x00000006 , 0x00000013 
+ 00023833  0x00005c58 fetch  0x00000002 , 0x000049f4 
+ 00023834  0x00005c59 isub  0x00000013 , 0x0000003e 
+ 00023835  0x00005c5a nrtn  0x00000002 
+ 00023836  0x00005c5b copy  0x00000013 , 0x00000012 
+ 00023837  0x00005c5c branch  0x00005d14 
+ 00023838  0x00005c5f fetch  0x00000006 , 0x000049bb 
+ 00023839  0x00005c60 fetcht  0x00000006 , 0x00004675 
+ 00023840  0x00005c61 isub  0x00000002 , 0x0000003e 
+ 00023841  0x00005c62 rtn  0x00000005 
+ 00023842  0x00005c63 arg  0x00000006 , 0x00000039 
+ 00023843  0x00005c64 arg  0x00004675 , 0x00000011 
+ 00023844  0x00005c65 copy  0x00000013 , 0x00000012 
+ 00023845  0x00005c66 branch  0x00006b45 
+ 00023846  0x00005c6b fetch  0x00000001 , 0x00004666 
+ 00023847  0x00005c6c rtneq  0x00000000 
+ 00023848  0x00005c6d fetchr  0x00000012 , 0x00000002 , 0x000049fe 
+ 00023849  0x00005c6e copy  0x00000012 , 0x00000013 
+ 00023850  0x00005c70 call  0x00005e3d 
+ 00023851  0x00005c71 fetch  0x00000002 , 0x000049e0 
+ 00023852  0x00005c72 branch  0x00005d34 , 0x00000034 
+ 00023853  0x00005c73 store  0x00000002 , 0x000049de 
+ 00023854  0x00005c74 increase  0x00000002 , 0x00000013 
+ 00023855  0x00005c75 fetch  0x00000002 , 0x00004a00 
+ 00023856  0x00005c76 isub  0x00000013 , 0x0000003e 
+ 00023857  0x00005c77 nrtn  0x00000002 
+ 00023858  0x00005c78 copy  0x00000013 , 0x00000012 
+ 00023859  0x00005c79 branch  0x00005d2a 
+ 00023860  0x00005c7c fetch  0x00000002 , 0x000049de 
+ 00023861  0x00005c7d fetcht  0x00000002 , 0x00004695 
+ 00023862  0x00005c7e isub  0x00000002 , 0x0000003e 
+ 00023863  0x00005c7f rtn  0x00000005 
+ 00023864  0x00005c80 arg  0x00000002 , 0x00000039 
+ 00023865  0x00005c81 arg  0x00004695 , 0x00000011 
+ 00023866  0x00005c82 copy  0x00000013 , 0x00000012 
+ 00023867  0x00005c83 branch  0x00006b45 
+ 00023868  0x00005c88 fetch  0x00000008 , 0x00004713 
+ 00023869  0x00005c89 rtnbit0  0x0000000f 
+ 00023870  0x00005c8a fetchr  0x00000012 , 0x00000002 , 0x000049fa 
+ 00023871  0x00005c8b copy  0x00000012 , 0x00000013 
+ 00023872  0x00005c8d call  0x00005e51 
+ 00023873  0x00005c8e fetch  0x00000001 , 0x000049d4 
+ 00023874  0x00005c8f branch  0x00005d4a , 0x00000034 
+ 00023875  0x00005c90 store  0x00000001 , 0x000049d3 
+ 00023876  0x00005c91 increase  0x00000001 , 0x00000013 
+ 00023877  0x00005c92 fetch  0x00000002 , 0x000049fc 
+ 00023878  0x00005c93 isub  0x00000013 , 0x0000003e 
+ 00023879  0x00005c94 nrtn  0x00000002 
+ 00023880  0x00005c95 copy  0x00000013 , 0x00000012 
+ 00023881  0x00005c96 branch  0x00005d40 
+ 00023882  0x00005c99 fetch  0x00000001 , 0x000049d3 
+ 00023883  0x00005c9a and  0x0000003f , 0x000000f0 , 0x0000003f 
+ 00023884  0x00005c9b branch  0x00005d53 , 0x00000034 
+ 00023885  0x00005c9c fetch  0x00000001 , 0x00004690 
+ 00023886  0x00005c9d store  0x00000001 , 0x000049d5 
+ 00023887  0x00005c9f arg  0x00000001 , 0x00000039 
+ 00023888  0x00005ca0 copy  0x00000013 , 0x00000012 
+ 00023889  0x00005ca1 arg  0x000049d5 , 0x00000011 
+ 00023890  0x00005ca2 branch  0x00006b45 
+ 00023891  0x00005ca5 fetch  0x00000001 , 0x000049d3 
+ 00023892  0x00005ca6 fetcht  0x00000001 , 0x00004690 
+ 00023893  0x00005ca7 isub  0x00000002 , 0x0000003e 
+ 00023894  0x00005ca8 rtn  0x00000005 
+ 00023895  0x00005ca9 lshift4  0x00000002 , 0x00000002 
+ 00023896  0x00005caa iadd  0x00000002 , 0x0000003f 
+ 00023897  0x00005cab store  0x00000001 , 0x000049d5 
+ 00023898  0x00005cad copy  0x00000013 , 0x0000003f 
+ 00023899  0x00005cae fetcht  0x00000002 , 0x000049fa 
+ 00023900  0x00005caf isub  0x00000002 , 0x0000003e 
+ 00023901  0x00005cb0 branch  0x00005d4f , 0x00000005 
+ 00023902  0x00005cb2 increase  0xffffffff , 0x00000013 
+ 00023903  0x00005cb3 branch  0x00005d4f 
+ 00023904  0x00005cbd call  0x00006cbc 
+ 00023905  0x00005cbe fetch  0x00000008 , 0x00004713 
+ 00023906  0x00005cbf isolate1  0x00000009 , 0x0000003f 
+ 00023907  0x00005cc0 ncall  0x00006cc4 , 0x00000001 
+ 00023908  0x00005cc1 call  0x00005d66 
+ 00023909  0x00005cc2 branch  0x00005c80 
+ 00023910  0x00005cc5 arg  0x00000080 , 0x00000002 
+ 00023911  0x00005cc6 arg  0x00004666 , 0x00000011 
+ 00023912  0x00005cc7 arg  0x00000000 , 0x00000012 
+ 00023913  0x00005cc8 branch  0x00006ce1 
+ 00023914  0x00005ccb arg  0x00000001 , 0x00000002 
+ 00023915  0x00005ccc arg  0x00004690 , 0x00000011 
+ 00023916  0x00005ccd arg  0x0000005a , 0x00000012 
+ 00023917  0x00005cce branch  0x00006ce1 
+ 00023918  0x00005cd3 call  0x00006c20 
+ 00023919  0x00005cd4 call  0x00005d7b 
+ 00023920  0x00005cd5 call  0x00005d75 
+ 00023921  0x00005cd6 call  0x00006c4d 
+ 00023922  0x00005cd7 call  0x00005d82 
+ 00023923  0x00005cd8 call  0x00005c80 
+ 00023924  0x00005cd9 branch  0x000055f6 
+ 00023925  0x00005cdc setarg  0x000046e6 
+ 00023926  0x00005cdd arg  0x00004666 , 0x00000002 
+ 00023927  0x00005cde isub  0x00000002 , 0x00000002 
+ 00023928  0x00005cdf fetch  0x00000003 , 0x000046ec 
+ 00023929  0x00005ce0 arg  0x00004666 , 0x00000011 
+ 00023930  0x00005ce1 rtn 
+ 00023931  0x00005ce4 jam  0x000000ab , 0x00000678 
+ 00023932  0x00005ce6 call  0x0000705b 
+ 00023933  0x00005ce7 call  0x00006c26 
+ 00023934  0x00005ce8 arg  0x000046ef , 0x00000011 
+ 00023935  0x00005ce9 fetcht  0x00000001 , 0x00000678 
+ 00023936  0x00005cea call  0x00005d84 
+ 00023937  0x00005ceb branch  0x0000705b 
+ 00023938  0x00005cee jam  0x000000b9 , 0x00000678 
+ 00023939  0x00005cef branch  0x00005d7c 
+ 00023940  0x00005cf2 istoret  0x00000001 , 0x00000011 
+ 00023941  0x00005cf3 rshift16  0x0000003f , 0x00000002 
+ 00023942  0x00005cf4 istoret  0x00000001 , 0x00000005 
+ 00023943  0x00005cf5 rshift8  0x0000003f , 0x00000002 
+ 00023944  0x00005cf6 istoret  0x00000001 , 0x00000005 
+ 00023945  0x00005cf7 istore  0x00000001 , 0x00000005 
+ 00023946  0x00005cf8 deposit  0x00000011 
+ 00023947  0x00005cf9 store  0x00000002 , 0x00008084 
+ 00023948  0x00005cfa setarg  0x00000000 
+ 00023949  0x00005cfb store  0x00000002 , 0x00008088 
+ 00023950  0x00005cfc jam  0x00000002 , 0x00008006 
+ 00023951  0x00005cfd branch  0x00006be0 
+ 00023952  0x00005d00 fetch  0x00000003 , 0x000046ec 
+ 00023953  0x00005d01 store  0x00000003 , 0x00004419 
+ 00023954  0x00005d02 branch  0x00006bfa 
+ 00023955  0x00005d05 copy  0x0000003f , 0x00000013 
+ 00023956  0x00005d06 copy  0x00000011 , 0x0000003f 
+ 00023957  0x00005d07 increase  0xfffffffc , 0x0000003f 
+ 00023958  0x00005d08 copy  0x0000003f , 0x00000012 
+ 00023959  0x00005d09 ifetch  0x00000004 , 0x00000012 
+ 00023960  0x00005d0a store  0x00000004 , 0x000046ef 
+ 00023961  0x00005d0b copy  0x00000013 , 0x0000003f 
+ 00023962  0x00005d0c call  0x00006c3c 
+ 00023963  0x00005d0d fetch  0x00000004 , 0x000046ef 
+ 00023964  0x00005d0e istore  0x00000004 , 0x00000012 
+ 00023965  0x00005d0f rtn 
+ 00023966  0x00005d12 fetch  0x00000008 , 0x00004713 
+ 00023967  0x00005d13 rtnbit0  0x00000012 
+ 00023968  0x00005d14 call  0x00005d82 
+ 00023969  0x00005d15 call  0x000069e0 
+ 00023970  0x00005d16 fetcht  0x00000001 , 0x00004421 
+ 00023971  0x00005d17 call  0x00006ef3 
+ 00023972  0x00005d18 fetcht  0x00000001 , 0x00004426 
+ 00023973  0x00005d19 branch  0x000055b1 
+ 00023974  0x00005d1e call  0x00005e43 
+ 00023975  0x00005d1f call  0x00005db4 
+ 00023976  0x00005d20 call  0x00005dcc 
+ 00023977  0x00005d21 call  0x00005e2f 
+ 00023978  0x00005d23 arg  0x00000002 , 0x00000039 
+ 00023979  0x00005d24 fetch  0x00000002 , 0x00004a02 
+ 00023980  0x00005d25 copy  0x0000003f , 0x00000012 
+ 00023981  0x00005d26 arg  0x0000468e , 0x00000011 
+ 00023982  0x00005d27 call  0x00006b74 
+ 00023983  0x00005d28 call  0x00005c80 
+ 00023984  0x00005d2a arg  0x00000002 , 0x00000039 
+ 00023985  0x00005d2b arg  0x0000468e , 0x00000011 
+ 00023986  0x00005d2c fetchr  0x00000012 , 0x00000002 , 0x00004a02 
+ 00023987  0x00005d2d branch  0x00006b45 
+ 00023988  0x00005d32 fetchr  0x00000012 , 0x00000002 , 0x000049e2 
+ 00023989  0x00005d33 copy  0x00000012 , 0x00000013 
+ 00023990  0x00005d35 call  0x00005dc0 
+ 00023991  0x00005d36 fetch  0x00000001 , 0x000049a1 
+ 00023992  0x00005d37 branch  0x00005dc3 , 0x00000034 
+ 00023993  0x00005d38 store  0x00000001 , 0x000049a0 
+ 00023994  0x00005d39 increase  0x00000001 , 0x00000013 
+ 00023995  0x00005d3a fetch  0x00000002 , 0x000049e4 
+ 00023996  0x00005d3b isub  0x00000013 , 0x0000003e 
+ 00023997  0x00005d3c nbranch  0x00005dc3 , 0x00000002 
+ 00023998  0x00005d3d copy  0x00000013 , 0x00000012 
+ 00023999  0x00005d3e branch  0x00005db6 
+ 00024000  0x00005d41 arg  0x00000001 , 0x00000039 
+ 00024001  0x00005d42 arg  0x000049a1 , 0x00000011 
+ 00024002  0x00005d43 branch  0x00006b74 
+ 00024003  0x00005d46 fetch  0x00000001 , 0x000049a0 
+ 00024004  0x00005d47 copy  0x0000003f , 0x00000002 
+ 00024005  0x00005d48 and  0x0000003f , 0x000000f0 , 0x0000003f 
+ 00024006  0x00005d49 branch  0x00005dc9 , 0x00000034 
+ 00024007  0x00005d4a rshift4  0x0000003f , 0x0000003f 
+ 00024008  0x00005d4b branch  0x00005dca 
+ 00024009  0x00005d4e copy  0x00000002 , 0x0000003f 
+ 00024010  0x00005d50 store  0x00000001 , 0x00004666 
+ 00024011  0x00005d51 rtn 
+ 00024012  0x00005d55 fetch  0x00000001 , 0x00004666 
+ 00024013  0x00005d56 beq  0x00000000 , 0x00005e1d 
+ 00024014  0x00005d57 beq  0x00000001 , 0x00005dd1 
+ 00024015  0x00005d58 beq  0x00000002 , 0x00005dd3 
+ 00024016  0x00005d59 rtn 
+ 00024017  0x00005d5c call  0x00005dd5 
+ 00024018  0x00005d5d branch  0x00005de7 
+ 00024019  0x00005d60 call  0x00005df9 
+ 00024020  0x00005d61 branch  0x00005e0b 
+ 00024021  0x00005d65 fetchr  0x00000012 , 0x00000002 , 0x000049ea 
+ 00024022  0x00005d66 copy  0x00000012 , 0x00000013 
+ 00024023  0x00005d68 call  0x00005de1 
+ 00024024  0x00005d69 fetch  0x00000006 , 0x000049a9 
+ 00024025  0x00005d6a branch  0x00005de4 , 0x00000034 
+ 00024026  0x00005d6b store  0x00000006 , 0x000049a3 
+ 00024027  0x00005d6c increase  0x00000006 , 0x00000013 
+ 00024028  0x00005d6d fetch  0x00000002 , 0x000049ec 
+ 00024029  0x00005d6e isub  0x00000013 , 0x0000003e 
+ 00024030  0x00005d6f nbranch  0x00005de4 , 0x00000002 
+ 00024031  0x00005d70 copy  0x00000013 , 0x00000012 
+ 00024032  0x00005d71 branch  0x00005dd7 
+ 00024033  0x00005d74 arg  0x00000006 , 0x00000039 
+ 00024034  0x00005d75 arg  0x000049a9 , 0x00000011 
+ 00024035  0x00005d76 branch  0x00006b74 
+ 00024036  0x00005d79 fetch  0x00000006 , 0x000049a3 
+ 00024037  0x00005d7a store  0x00000006 , 0x00004668 
+ 00024038  0x00005d7b rtn 
+ 00024039  0x00005d7f fetchr  0x00000012 , 0x00000002 , 0x000049ee 
+ 00024040  0x00005d80 copy  0x00000012 , 0x00000013 
+ 00024041  0x00005d82 call  0x00005df3 
+ 00024042  0x00005d83 fetch  0x00000006 , 0x000049b5 
+ 00024043  0x00005d84 branch  0x00005df6 , 0x00000034 
+ 00024044  0x00005d85 store  0x00000006 , 0x000049af 
+ 00024045  0x00005d86 increase  0x00000006 , 0x00000013 
+ 00024046  0x00005d87 fetch  0x00000002 , 0x000049f0 
+ 00024047  0x00005d88 isub  0x00000013 , 0x0000003e 
+ 00024048  0x00005d89 nbranch  0x00005df6 , 0x00000002 
+ 00024049  0x00005d8a copy  0x00000013 , 0x00000012 
+ 00024050  0x00005d8b branch  0x00005de9 
+ 00024051  0x00005d8e arg  0x00000006 , 0x00000039 
+ 00024052  0x00005d8f arg  0x000049b5 , 0x00000011 
+ 00024053  0x00005d90 branch  0x00006b74 
+ 00024054  0x00005d93 fetch  0x00000006 , 0x000049af 
+ 00024055  0x00005d94 store  0x00000006 , 0x0000466e 
+ 00024056  0x00005d95 rtn 
+ 00024057  0x00005d9a fetchr  0x00000012 , 0x00000002 , 0x000049f2 
+ 00024058  0x00005d9b copy  0x00000012 , 0x00000013 
+ 00024059  0x00005d9d call  0x00005e05 
+ 00024060  0x00005d9e fetch  0x00000006 , 0x000049c1 
+ 00024061  0x00005d9f branch  0x00005e08 , 0x00000034 
+ 00024062  0x00005da0 store  0x00000006 , 0x000049bb 
+ 00024063  0x00005da1 increase  0x00000006 , 0x00000013 
+ 00024064  0x00005da2 fetch  0x00000002 , 0x000049f4 
+ 00024065  0x00005da3 isub  0x00000013 , 0x0000003e 
+ 00024066  0x00005da4 nbranch  0x00005e08 , 0x00000002 
+ 00024067  0x00005da5 copy  0x00000013 , 0x00000012 
+ 00024068  0x00005da6 branch  0x00005dfb 
+ 00024069  0x00005da9 arg  0x00000006 , 0x00000039 
+ 00024070  0x00005daa arg  0x000049c1 , 0x00000011 
+ 00024071  0x00005dab branch  0x00006b74 
+ 00024072  0x00005dae fetch  0x00000006 , 0x000049bb 
+ 00024073  0x00005daf store  0x00000006 , 0x00004675 
+ 00024074  0x00005db0 rtn 
+ 00024075  0x00005db4 fetchr  0x00000012 , 0x00000002 , 0x000049f6 
+ 00024076  0x00005db5 copy  0x00000012 , 0x00000013 
+ 00024077  0x00005db7 call  0x00005e17 
+ 00024078  0x00005db8 fetch  0x00000006 , 0x000049cd 
+ 00024079  0x00005db9 branch  0x00005e1a , 0x00000034 
+ 00024080  0x00005dba store  0x00000006 , 0x000049c7 
+ 00024081  0x00005dbb increase  0x00000006 , 0x00000013 
+ 00024082  0x00005dbc fetch  0x00000002 , 0x000049f8 
+ 00024083  0x00005dbd isub  0x00000013 , 0x0000003e 
+ 00024084  0x00005dbe nbranch  0x00005e1a , 0x00000002 
+ 00024085  0x00005dbf copy  0x00000013 , 0x00000012 
+ 00024086  0x00005dc0 branch  0x00005e0d 
+ 00024087  0x00005dc3 arg  0x00000006 , 0x00000039 
+ 00024088  0x00005dc4 arg  0x000049cd , 0x00000011 
+ 00024089  0x00005dc5 branch  0x00006b74 
+ 00024090  0x00005dc8 fetch  0x00000006 , 0x000049c7 
+ 00024091  0x00005dc9 store  0x00000006 , 0x0000467b 
+ 00024092  0x00005dca rtn 
+ 00024093  0x00005dcf fetchr  0x00000012 , 0x00000002 , 0x000049e6 
+ 00024094  0x00005dd0 copy  0x00000012 , 0x00000013 
+ 00024095  0x00005dd2 call  0x00005e29 
+ 00024096  0x00005dd3 fetch  0x00000004 , 0x000049da 
+ 00024097  0x00005dd4 branch  0x00005e2c , 0x00000034 
+ 00024098  0x00005dd5 store  0x00000004 , 0x000049d6 
+ 00024099  0x00005dd6 increase  0x00000004 , 0x00000013 
+ 00024100  0x00005dd7 fetch  0x00000002 , 0x000049e8 
+ 00024101  0x00005dd8 isub  0x00000013 , 0x0000003e 
+ 00024102  0x00005dd9 nbranch  0x00005e2c , 0x00000002 
+ 00024103  0x00005dda copy  0x00000013 , 0x00000012 
+ 00024104  0x00005ddb branch  0x00005e1f 
+ 00024105  0x00005dde arg  0x00000004 , 0x00000039 
+ 00024106  0x00005ddf arg  0x000049da , 0x00000011 
+ 00024107  0x00005de0 branch  0x00006b74 
+ 00024108  0x00005de3 fetch  0x00000004 , 0x000049d6 
+ 00024109  0x00005de4 store  0x00000004 , 0x00004691 
+ 00024110  0x00005de5 rtn 
+ 00024111  0x00005de9 fetch  0x00000001 , 0x00004666 
+ 00024112  0x00005dea rtneq  0x00000000 
+ 00024113  0x00005deb fetchr  0x00000012 , 0x00000002 , 0x000049fe 
+ 00024114  0x00005dec copy  0x00000012 , 0x00000013 
+ 00024115  0x00005dee call  0x00005e3d 
+ 00024116  0x00005def fetch  0x00000002 , 0x000049e0 
+ 00024117  0x00005df0 branch  0x00005e40 , 0x00000034 
+ 00024118  0x00005df1 store  0x00000002 , 0x000049de 
+ 00024119  0x00005df2 increase  0x00000002 , 0x00000013 
+ 00024120  0x00005df3 fetch  0x00000002 , 0x00004a00 
+ 00024121  0x00005df4 isub  0x00000013 , 0x0000003e 
+ 00024122  0x00005df5 nbranch  0x00005e40 , 0x00000002 
+ 00024123  0x00005df6 copy  0x00000013 , 0x00000012 
+ 00024124  0x00005df7 branch  0x00005e33 
+ 00024125  0x00005dfa arg  0x00000002 , 0x00000039 
+ 00024126  0x00005dfb arg  0x000049e0 , 0x00000011 
+ 00024127  0x00005dfc branch  0x00006b74 
+ 00024128  0x00005dff fetch  0x00000002 , 0x000049e0 
+ 00024129  0x00005e00 store  0x00000002 , 0x00004695 
+ 00024130  0x00005e01 rtn 
+ 00024131  0x00005e05 fetch  0x00000008 , 0x00004713 
+ 00024132  0x00005e06 bbit0  0x0000000f , 0x00005c8c 
+ 00024133  0x00005e07 fetchr  0x00000012 , 0x00000002 , 0x000049fa 
+ 00024134  0x00005e08 copy  0x00000012 , 0x00000013 
+ 00024135  0x00005e0a call  0x00005e51 
+ 00024136  0x00005e0b fetch  0x00000001 , 0x000049d4 
+ 00024137  0x00005e0c branch  0x00005e54 , 0x00000034 
+ 00024138  0x00005e0d store  0x00000001 , 0x000049d3 
+ 00024139  0x00005e0e increase  0x00000001 , 0x00000013 
+ 00024140  0x00005e0f fetch  0x00000002 , 0x000049fc 
+ 00024141  0x00005e10 isub  0x00000013 , 0x0000003e 
+ 00024142  0x00005e11 nbranch  0x00005e54 , 0x00000002 
+ 00024143  0x00005e12 copy  0x00000013 , 0x00000012 
+ 00024144  0x00005e13 branch  0x00005e47 
+ 00024145  0x00005e16 arg  0x00000001 , 0x00000039 
+ 00024146  0x00005e17 arg  0x000049d4 , 0x00000011 
+ 00024147  0x00005e18 branch  0x00006b74 
+ 00024148  0x00005e1b fetch  0x00000001 , 0x000049d3 
+ 00024149  0x00005e1c copy  0x0000003f , 0x00000002 
+ 00024150  0x00005e1d and  0x0000003f , 0x000000f0 , 0x0000003f 
+ 00024151  0x00005e1e branch  0x00005e5a , 0x00000034 
+ 00024152  0x00005e1f rshift4  0x0000003f , 0x0000003f 
+ 00024153  0x00005e20 branch  0x00005e5b 
+ 00024154  0x00005e23 copy  0x00000002 , 0x0000003f 
+ 00024155  0x00005e25 store  0x00000001 , 0x00004690 
+ 00024156  0x00005e26 rtn 
+ 00024157  0x00005e2c bpatch  0x0000008e , 0x00004011 
+ 00024158  0x00005e2d call  0x0000620e 
+ 00024159  0x00005e2e call  0x000078aa 
+ 00024160  0x00005e2f call  0x000056bb 
+ 00024161  0x00005e30 call  0x0000580e 
+ 00024162  0x00005e31 call  0x00005e66 
+ 00024163  0x00005e32 call  0x00005eb6 
+ 00024164  0x00005e33 call  0x00005ee7 
+ 00024165  0x00005e34 branch  0x0000561c 
+ 00024166  0x00005e37 fetch  0x00000008 , 0x00004713 
+ 00024167  0x00005e38 bbit1  0x00000029 , 0x00005e6b 
+ 00024168  0x00005e39 bbit1  0x00000037 , 0x00005e6b 
+ 00024169  0x00005e3a rtn 
+ 00024170  0x00005e3d jam  0x00000003 , 0x00004975 
+ 00024171  0x00005e3f call  0x00005e6d 
+ 00024172  0x00005e40 branch  0x00005e7e 
+ 00024173  0x00005e43 bpatch  0x0000008f , 0x00004011 
+ 00024174  0x00005e44 fetch  0x00000001 , 0x00004655 
+ 00024175  0x00005e45 rtneq  0x000000ff 
+ 00024176  0x00005e46 arg  0x00000000 , 0x00000011 
+ 00024177  0x00005e47 jam  0x00000006 , 0x00004977 
+ 00024178  0x00005e48 fetcht  0x00000001 , 0x00004655 
+ 00024179  0x00005e49 call  0x00005e81 
+ 00024180  0x00005e4a store  0x00000001 , 0x00004975 
+ 00024181  0x00005e4b fetch  0x00000001 , 0x00004654 
+ 00024182  0x00005e4c beq  0x000000ff , 0x00005e7c 
+ 00024183  0x00005e4d branch  0x000058df 
+ 00024184  0x00005e50 call  0x00005e6d 
+ 00024185  0x00005e51 copy  0x00000011 , 0x0000003f 
+ 00024186  0x00005e52 bbit1  0x00000006 , 0x00005ea4 
+ 00024187  0x00005e53 branch  0x00005e97 
+ 00024188  0x00005e56 fetcht  0x00000001 , 0x00004655 
+ 00024189  0x00005e57 call  0x000055b5 
+ 00024190  0x00005e59 copy  0x00000011 , 0x0000003f 
+ 00024191  0x00005e5a bbit1  0x00000006 , 0x00005ea2 
+ 00024192  0x00005e5b branch  0x00005e97 
+ 00024193  0x00005e5e fetch  0x00000008 , 0x00004713 
+ 00024194  0x00005e5f bbit1  0x0000002d , 0x00005e8d 
+ 00024195  0x00005e60 fetch  0x00000001 , 0x00004975 
+ 00024196  0x00005e61 copy  0x0000003f , 0x00000013 
+ 00024197  0x00005e62 fetch  0x00000001 , 0x00004654 
+ 00024198  0x00005e63 beq  0x000000ff , 0x00005931 
+ 00024199  0x00005e64 fetch  0x00000001 , 0x0000497b 
+ 00024200  0x00005e65 nbranch  0x00005e8a , 0x00000034 
+ 00024201  0x00005e66 branch  0x00005e8f 
+ 00024202  0x00005e69 jam  0x00000000 , 0x0000497f 
+ 00024203  0x00005e6a jam  0x00000000 , 0x00004975 
+ 00024204  0x00005e6b rtn 
+ 00024205  0x00005e6e fetch  0x00000001 , 0x00004975 
+ 00024206  0x00005e6f branch  0x00005925 
+ 00024207  0x00005e72 call  0x00006ee6 
+ 00024208  0x00005e73 fetcht  0x00000001 , 0x00004654 
+ 00024209  0x00005e74 branch  0x00005e8d , 0x00000001 
+ 00024210  0x00005e75 fetcht  0x00000001 , 0x00004654 
+ 00024211  0x00005e76 call  0x00006ef7 
+ 00024212  0x00005e77 fetcht  0x00000001 , 0x00004655 
+ 00024213  0x00005e78 fetch  0x00000001 , 0x00004975 
+ 00024214  0x00005e79 branch  0x00005925 
+ 00024215  0x00005e7c fetch  0x00000001 , 0x0000497f 
+ 00024216  0x00005e7d rtneq  0x00000000 
+ 00024217  0x00005e7e jam  0x00000000 , 0x0000497f 
+ 00024218  0x00005e7f fetch  0x00000008 , 0x00004713 
+ 00024219  0x00005e80 rtnbit1  0x00000034 
+ 00024220  0x00005e81 fetch  0x00000001 , 0x0000497c 
+ 00024221  0x00005e82 sub  0x0000003f , 0x00000014 , 0x0000003e 
+ 00024222  0x00005e83 ncall  0x00005ec6 , 0x00000002 
+ 00024223  0x00005e84 fetch  0x00000001 , 0x000044eb 
+ 00024224  0x00005e85 store  0x00000001 , 0x0000497c 
+ 00024225  0x00005e86 rtn 
+ 00024226  0x00005e89 call  0x00005eae 
+ 00024227  0x00005e8a rtn  0x00000028 
+ 00024228  0x00005e8b fetch  0x00000001 , 0x0000497f 
+ 00024229  0x00005e8c rtneq  0x00000001 
+ 00024230  0x00005e8d jam  0x00000001 , 0x0000497f 
+ 00024231  0x00005e8e fetch  0x00000008 , 0x00004713 
+ 00024232  0x00005e8f bbit1  0x00000034 , 0x00005ba3 
+ 00024233  0x00005e90 fetch  0x00000001 , 0x00004845 
+ 00024234  0x00005e91 rtn  0x00000034 
+ 00024235  0x00005e92 fetch  0x00000001 , 0x0000463c 
+ 00024236  0x00005e93 store  0x00000001 , 0x00004845 
+ 00024237  0x00005e94 rtn 
+ 00024238  0x00005e97 disable  0x00000028 
+ 00024239  0x00005e98 fetch  0x00000008 , 0x00004713 
+ 00024240  0x00005e99 rtnbit1  0x0000002d 
+ 00024241  0x00005e9b fetch  0x00000001 , 0x0000496f 
+ 00024242  0x00005e9c rtn  0x00000034 
+ 00024243  0x00005e9d fetch  0x00000001 , 0x00004970 
+ 00024244  0x00005e9e rtn  0x00000034 
+ 00024245  0x00005e9f branch  0x00007dba 
+ 00024246  0x00005ea2 bpatch  0x00000090 , 0x00004012 
+ 00024247  0x00005ea3 fetch  0x00000008 , 0x00004713 
+ 00024248  0x00005ea4 rtnbit0  0x0000002a 
+ 00024249  0x00005ea5 fetcht  0x00000001 , 0x0000465a 
+ 00024250  0x00005ea6 call  0x000055b5 
+ 00024251  0x00005ea7 fetcht  0x00000001 , 0x0000465a 
+ 00024252  0x00005ea8 call  0x00006ee6 
+ 00024253  0x00005ea9 branch  0x00005ec2 , 0x00000001 
+ 00024254  0x00005eab fetch  0x00000001 , 0x00004666 
+ 00024255  0x00005eac rtneq  0x00000001 
+ 00024256  0x00005ead jam  0x00000001 , 0x00004666 
+ 00024257  0x00005eae branch  0x00005aaa 
+ 00024258  0x00005eb1 fetch  0x00000001 , 0x00004666 
+ 00024259  0x00005eb2 rtneq  0x00000000 
+ 00024260  0x00005eb3 jam  0x00000000 , 0x00004666 
+ 00024261  0x00005eb4 branch  0x00006018 
+ 00024262  0x00005eb7 bpatch  0x00000091 , 0x00004012 
+ 00024263  0x00005eb8 fetch  0x00000001 , 0x0000471b 
+ 00024264  0x00005eb9 rtneq  0x00000001 
+ 00024265  0x00005eba call  0x00005ed3 
+ 00024266  0x00005ebb storet  0x00000001 , 0x00004666 
+ 00024267  0x00005ebe call  0x00005eea 
+ 00024268  0x00005ebf call  0x00005aaa 
+ 00024269  0x00005ec0 call  0x000042d0 
+ 00024270  0x00005ec1 call  0x00005eec 
+ 00024271  0x00005ec2 jam  0x00000001 , 0x00004793 
+ 00024272  0x00005ec3 branch  0x00005ca3 
+ 00024273  0x00005ec6 call  0x00005eea 
+ 00024274  0x00005ec7 branch  0x00006ca3 
+ 00024275  0x00005eca fetcht  0x00000001 , 0x00004666 
+ 00024276  0x00005ecb increase  0x00000001 , 0x00000002 
+ 00024277  0x00005ecc fetch  0x00000008 , 0x00004713 
+ 00024278  0x00005ecd bbit1  0x00000011 , 0x00005eda 
+ 00024279  0x00005ece sub  0x00000002 , 0x00000002 , 0x0000003e 
+ 00024280  0x00005ecf ncall  0x00005ee1 , 0x00000002 
+ 00024281  0x00005ed0 rtn 
+ 00024282  0x00005ed3 fetch  0x00000001 , 0x0000471b 
+ 00024283  0x00005ed4 increase  0xffffffff , 0x0000003f 
+ 00024284  0x00005ed5 isub  0x00000002 , 0x0000003e 
+ 00024285  0x00005ed6 ncall  0x00005edf , 0x00000002 
+ 00024286  0x00005ed7 rtn 
+ 00024287  0x00005eda arg  0x00000000 , 0x00000002 
+ 00024288  0x00005edb rtn 
+ 00024289  0x00005edd arg  0x00000001 , 0x00000002 
+ 00024290  0x00005ede rtn 
+ 00024291  0x00005ee1 arg  0x00000001 , 0x00000002 
+ 00024292  0x00005ee2 arg  0x00004666 , 0x00000011 
+ 00024293  0x00005ee3 arg  0x00000000 , 0x00000012 
+ 00024294  0x00005ee4 branch  0x00006cd3 
+ 00024295  0x00005ee7 fetch  0x00000008 , 0x00004713 
+ 00024296  0x00005ee8 rtnbit0  0x00000034 
+ 00024297  0x00005ee9 branch  0x00005e6b 
+ 00024298  0x00005eec arg  0x00000000 , 0x00000007 
+ 00024299  0x00005eed branch  0x00005f00 
+ 00024300  0x00005eef arg  0x00000000 , 0x00000007 
+ 00024301  0x00005ef0 branch  0x00005f04 
+ 00024302  0x00005ef2 arg  0x00000003 , 0x00000007 
+ 00024303  0x00005ef3 branch  0x00005f00 
+ 00024304  0x00005ef5 arg  0x00000003 , 0x00000007 
+ 00024305  0x00005ef6 branch  0x00005f04 
+ 00024306  0x00005ef8 arg  0x00000005 , 0x00000007 
+ 00024307  0x00005ef9 branch  0x00005f00 
+ 00024308  0x00005efb arg  0x00000005 , 0x00000007 
+ 00024309  0x00005efc branch  0x00005f04 
+ 00024310  0x00005eff arg  0x00000015 , 0x00000007 
+ 00024311  0x00005f00 branch  0x00005f00 
+ 00024312  0x00005f03 arg  0x00000018 , 0x00000007 
+ 00024313  0x00005f04 branch  0x00005f00 
+ 00024314  0x00005f07 arg  0x0000000e , 0x00000007 
+ 00024315  0x00005f08 branch  0x00005f00 
+ 00024316  0x00005f0b arg  0x0000000c , 0x00000007 
+ 00024317  0x00005f0c branch  0x00005f00 
+ 00024318  0x00005f0f arg  0x0000001c , 0x00000007 
+ 00024319  0x00005f10 branch  0x00005f00 
+ 00024320  0x00005f13 fetch  0x00000008 , 0x00004713 
+ 00024321  0x00005f14 qset1  0x0000003f 
+ 00024322  0x00005f15 store  0x00000008 , 0x00004713 
+ 00024323  0x00005f16 rtn 
+ 00024324  0x00005f19 fetch  0x00000008 , 0x00004713 
+ 00024325  0x00005f1a qset0  0x0000003f 
+ 00024326  0x00005f1b store  0x00000008 , 0x00004713 
+ 00024327  0x00005f1c rtn 
+ 00024328  0x00005f1f setarg  0x00000000 
+ 00024329  0x00005f20 store  0x00000008 , 0x0000472a 
+ 00024330  0x00005f21 store  0x00000008 , 0x00004733 
+ 00024331  0x00005f22 fetch  0x00000001 , 0x00004729 
+ 00024332  0x00005f23 beq  0x00000002 , 0x00005f12 
+ 00024333  0x00005f24 beq  0x00000003 , 0x00005f14 
+ 00024334  0x00005f25 beq  0x00000004 , 0x00005f19 
+ 00024335  0x00005f26 setarg  0x00070008 
+ 00024336  0x00005f28 store  0x00000008 , 0x0000472b 
+ 00024337  0x00005f29 rtn 
+ 00024338  0x00005f2c setarg  0x00040005 
+ 00024339  0x00005f2d branch  0x00005f10 
+ 00024340  0x00005f30 setarg  0x00022303 
+ 00024341  0x00005f32 store  0x00000008 , 0x0000472a 
+ 00024342  0x00005f33 setarg  0x00000003 
+ 00024343  0x00005f34 store  0x00000008 , 0x00004733 
+ 00024344  0x00005f35 rtn 
+ 00024345  0x00005f38 setarg  0x0000cd03 
+ 00024346  0x00005f39 branch  0x00005f15 
+ 00024347  0x00005f3d bpatch  0x00000092 , 0x00004012 
+ 00024348  0x00005f3e fetch  0x00000001 , 0x0000477f 
+ 00024349  0x00005f3f increase  0xffffffff , 0x0000003f 
+ 00024350  0x00005f40 store  0x00000001 , 0x0000477f 
+ 00024351  0x00005f41 fetcht  0x00000001 , 0x00004666 
+ 00024352  0x00005f42 sub  0x00000002 , 0x00000001 , 0x0000003e 
+ 00024353  0x00005f43 ncall  0x00005ed3 , 0x00000005 
+ 00024354  0x00005f44 storet  0x00000001 , 0x00004666 
+ 00024355  0x00005f45 call  0x00005ee3 
+ 00024356  0x00005f46 call  0x00005c59 
+ 00024357  0x00005f47 branch  0x000054a0 
+ 00024358  0x00005f4c bpatch  0x00000093 , 0x00004012 
+ 00024359  0x00005f4d fetch  0x00000001 , 0x00004957 
+ 00024360  0x00005f4e rtneq  0x00000003 
+ 00024361  0x00005f4f fetch  0x00000008 , 0x00004713 
+ 00024362  0x00005f50 rtnbit0  0x00000038 
+ 00024363  0x00005f51 fetch  0x00000004 , 0x00004847 
+ 00024364  0x00005f52 rtn  0x00000034 
+ 00024365  0x00005f53 call  0x00005fcd 
+ 00024366  0x00005f54 setarg  0x00000003 
+ 00024367  0x00005f55 call  0x00005fc3 
+ 00024368  0x00005f56 call  0x00005fbf , 0x00000034 
+ 00024369  0x00005f57 ncall  0x00005fc1 , 0x00000034 
+ 00024370  0x00005f58 setarg  0x00000002 
+ 00024371  0x00005f59 call  0x00005fc8 
+ 00024372  0x00005f5a call  0x00005fbf , 0x00000034 
+ 00024373  0x00005f5b fetch  0x00000001 , 0x00004861 
+ 00024374  0x00005f5c beq  0x00000001 , 0x00005f3c 
+ 00024375  0x00005f5e fetch  0x00000008 , 0x00004713 
+ 00024376  0x00005f5f rtnbit0  0x00000038 
+ 00024377  0x00005f60 arg  0x00000005 , 0x00000039 
+ 00024378  0x00005f61 arg  0x00004861 , 0x00000005 
+ 00024379  0x00005f62 branch  0x00007ca1 
+ 00024380  0x00005f65 call  0x00005f50 
+ 00024381  0x00005f66 fetch  0x00000002 , 0x00004862 
+ 00024382  0x00005f67 store  0x00000002 , 0x0000070b 
+ 00024383  0x00005f68 fetch  0x00000002 , 0x00004847 
+ 00024384  0x00005f69 store  0x00000002 , 0x0000070d 
+ 00024385  0x00005f6a call  0x00005f89 
+ 00024386  0x00005f6b fetch  0x00000002 , 0x0000070b 
+ 00024387  0x00005f6c store  0x00000002 , 0x00004862 
+ 00024388  0x00005f6d fetch  0x00000002 , 0x0000070d 
+ 00024389  0x00005f6e store  0x00000002 , 0x00004847 
+ 00024390  0x00005f70 fetch  0x00000002 , 0x00004864 
+ 00024391  0x00005f71 store  0x00000002 , 0x0000070b 
+ 00024392  0x00005f72 fetch  0x00000002 , 0x00004849 
+ 00024393  0x00005f73 store  0x00000002 , 0x0000070d 
+ 00024394  0x00005f74 call  0x00005f91 
+ 00024395  0x00005f75 fetch  0x00000002 , 0x0000070b 
+ 00024396  0x00005f76 store  0x00000002 , 0x00004864 
+ 00024397  0x00005f77 fetch  0x00000002 , 0x0000070d 
+ 00024398  0x00005f78 store  0x00000002 , 0x00004849 
+ 00024399  0x00005f79 rtn 
+ 00024400  0x00005f7c fetch  0x00000008 , 0x00004713 
+ 00024401  0x00005f7d rtnbit0  0x00000039 
+ 00024402  0x00005f7e bpatch  0x00000094 , 0x00004012 
+ 00024403  0x00005f7f fetch  0x00000002 , 0x00004862 
+ 00024404  0x00005f80 store  0x00000002 , 0x00000712 
+ 00024405  0x00005f81 call  0x00005f64 
+ 00024406  0x00005f82 store  0x00000002 , 0x00004862 
+ 00024407  0x00005f83 fetch  0x00000002 , 0x00004847 
+ 00024408  0x00005f84 store  0x00000002 , 0x00000712 
+ 00024409  0x00005f85 call  0x00005f72 
+ 00024410  0x00005f86 store  0x00000002 , 0x00004847 
+ 00024411  0x00005f87 fetch  0x00000002 , 0x00004864 
+ 00024412  0x00005f88 store  0x00000002 , 0x00000712 
+ 00024413  0x00005f89 call  0x00005f64 
+ 00024414  0x00005f8a store  0x00000002 , 0x00004864 
+ 00024415  0x00005f8b fetch  0x00000002 , 0x00004849 
+ 00024416  0x00005f8c store  0x00000002 , 0x00000712 
+ 00024417  0x00005f8d call  0x00005f72 
+ 00024418  0x00005f8e store  0x00000002 , 0x00004849 
+ 00024419  0x00005f8f rtn 
+ 00024420  0x00005f92 fetch  0x00000001 , 0x00000713 
+ 00024421  0x00005f93 branch  0x00005f67 , 0x00000034 
+ 00024422  0x00005f94 branch  0x00005f6c 
+ 00024423  0x00005f97 fetch  0x00000001 , 0x00000712 
+ 00024424  0x00005f98 call  0x00005f7f 
+ 00024425  0x00005f99 store  0x00000001 , 0x00000712 
+ 00024426  0x00005f9b fetch  0x00000002 , 0x00000712 
+ 00024427  0x00005f9c rtn 
+ 00024428  0x00005f9e fetch  0x00000001 , 0x00000712 
+ 00024429  0x00005f9f call  0x00005fbb 
+ 00024430  0x00005fa0 call  0x00005f7f 
+ 00024431  0x00005fa1 call  0x00007dc8 , 0x00000034 
+ 00024432  0x00005fa2 call  0x00005fb7 
+ 00024433  0x00005fa3 branch  0x00005f6a 
+ 00024434  0x00005fa6 fetch  0x00000001 , 0x00000713 
+ 00024435  0x00005fa7 branch  0x00005f75 , 0x00000034 
+ 00024436  0x00005fa8 branch  0x00005f79 
+ 00024437  0x00005faa fetch  0x00000001 , 0x00000712 
+ 00024438  0x00005fab call  0x00005f84 
+ 00024439  0x00005fac store  0x00000001 , 0x00000712 
+ 00024440  0x00005fad branch  0x00005f6a 
+ 00024441  0x00005faf fetch  0x00000001 , 0x00000712 
+ 00024442  0x00005fb0 call  0x00005fbb 
+ 00024443  0x00005fb1 call  0x00005f84 
+ 00024444  0x00005fb2 call  0x00007dc8 , 0x00000034 
+ 00024445  0x00005fb3 call  0x00005fb7 
+ 00024446  0x00005fb4 branch  0x00005f6a 
+ 00024447  0x00005fb7 mul32  0x0000003f , 0x00000004 , 0x0000003f 
+ 00024448  0x00005fb8 div  0x0000003f , 0x00000005 
+ 00024449  0x00005fb9 call  0x00007d62 
+ 00024450  0x00005fba quotient  0x0000003f 
+ 00024451  0x00005fbb rtn 
+ 00024452  0x00005fbd mul32  0x0000003f , 0x0000000c , 0x0000003f 
+ 00024453  0x00005fbe div  0x0000003f , 0x0000000a 
+ 00024454  0x00005fbf call  0x00007d62 
+ 00024455  0x00005fc0 quotient  0x0000003f 
+ 00024456  0x00005fc1 rtn 
+ 00024457  0x00005fc4 fetch  0x00000002 , 0x0000070b 
+ 00024458  0x00005fc5 fetcht  0x00000002 , 0x0000070d 
+ 00024459  0x00005fc6 iadd  0x00000002 , 0x0000003f 
+ 00024460  0x00005fc7 fetcht  0x00000001 , 0x00004866 
+ 00024461  0x00005fc8 iadd  0x00000002 , 0x0000003f 
+ 00024462  0x00005fc9 and  0x0000003f , 0x00000001 , 0x00000002 
+ 00024463  0x00005fca storet  0x00000001 , 0x00004866 
+ 00024464  0x00005fcb branch  0x00005f99 
+ 00024465  0x00005fce fetch  0x00000002 , 0x0000070b 
+ 00024466  0x00005fcf fetcht  0x00000002 , 0x0000070d 
+ 00024467  0x00005fd0 iadd  0x00000002 , 0x0000003f 
+ 00024468  0x00005fd1 fetcht  0x00000001 , 0x00004867 
+ 00024469  0x00005fd2 iadd  0x00000002 , 0x0000003f 
+ 00024470  0x00005fd3 and  0x0000003f , 0x00000001 , 0x00000002 
+ 00024471  0x00005fd4 storet  0x00000001 , 0x00004867 
+ 00024472  0x00005fd5 branch  0x00005f99 
+ 00024473  0x00005fd8 store  0x00000003 , 0x0000070f 
+ 00024474  0x00005fd9 isolate1  0x00000010 , 0x0000003f 
+ 00024475  0x00005fda branch  0x00005fa3 , 0x00000001 
+ 00024476  0x00005fdb fetch  0x00000001 , 0x00000710 
+ 00024477  0x00005fdc beq  0x000000ff , 0x00005faa 
+ 00024478  0x00005fdd fetch  0x00000001 , 0x0000070f 
+ 00024479  0x00005fdf rshift  0x0000003f , 0x0000003f 
+ 00024480  0x00005fe0 store  0x00000002 , 0x0000070b 
+ 00024481  0x00005fe1 store  0x00000002 , 0x0000070d 
+ 00024482  0x00005fe2 rtn 
+ 00024483  0x00005fe4 fetch  0x00000001 , 0x00000710 
+ 00024484  0x00005fe5 beq  0x00000000 , 0x00005fa7 
+ 00024485  0x00005fe6 fetch  0x00000003 , 0x0000070f 
+ 00024486  0x00005fe7 branch  0x00005f9f 
+ 00024487  0x00005fe9 jam  0x00000000 , 0x00000711 
+ 00024488  0x00005fea fetch  0x00000001 , 0x0000070f 
+ 00024489  0x00005feb branch  0x00005f9f 
+ 00024490  0x00005fee fetch  0x00000001 , 0x0000070f 
+ 00024491  0x00005fef call  0x00005fb5 
+ 00024492  0x00005ff0 store  0x00000001 , 0x0000070b 
+ 00024493  0x00005ff1 store  0x00000001 , 0x0000070d 
+ 00024494  0x00005ff2 branch  0x00005fb3 , 0x00000034 
+ 00024495  0x00005ff3 setarg  0x000000ff 
+ 00024496  0x00005ff5 store  0x00000001 , 0x0000070c 
+ 00024497  0x00005ff6 store  0x00000001 , 0x0000070e 
+ 00024498  0x00005ff7 rtn 
+ 00024499  0x00005ff9 setarg  0x00000000 
+ 00024500  0x00005ffa branch  0x00005fb0 
+ 00024501  0x00005ffd call  0x00005fbb 
+ 00024502  0x00005ffe rshift  0x0000003f , 0x0000003f 
+ 00024503  0x00006000 call  0x00005fbc 
+ 00024504  0x00006001 sub  0x0000003f , 0x00000000 , 0x0000003f 
+ 00024505  0x00006002 store  0x00000001 , 0x00000712 
+ 00024506  0x00006003 rtn 
+ 00024507  0x00006006 sub  0x0000003f , 0x00000000 , 0x0000003f 
+ 00024508  0x00006008 store  0x00000001 , 0x00000684 
+ 00024509  0x00006009 fetch  0x00000001 , 0x00000684 
+ 00024510  0x0000600a rtn 
+ 00024511  0x0000600d jam  0x00000000 , 0x00004861 
+ 00024512  0x0000600e rtn 
+ 00024513  0x00006010 jam  0x00000001 , 0x00004861 
+ 00024514  0x00006011 rtn 
+ 00024515  0x00006015 isub  0x00000011 , 0x0000003e 
+ 00024516  0x00006016 nbranch  0x00007dc8 , 0x00000002 
+ 00024517  0x00006017 isub  0x00000012 , 0x0000003e 
+ 00024518  0x00006018 nbranch  0x00007dc8 , 0x00000002 
+ 00024519  0x00006019 branch  0x00007dca 
+ 00024520  0x0000601b isub  0x00000011 , 0x0000003e 
+ 00024521  0x0000601c nrtn  0x00000002 
+ 00024522  0x0000601d isub  0x00000012 , 0x0000003e 
+ 00024523  0x0000601e nrtn  0x00000002 
+ 00024524  0x0000601f branch  0x00007dca 
+ 00024525  0x00006022 fetch  0x00000002 , 0x00004847 
+ 00024526  0x00006023 call  0x00005fd4 
+ 00024527  0x00006024 copy  0x0000003f , 0x00000011 
+ 00024528  0x00006025 fetch  0x00000002 , 0x00004849 
+ 00024529  0x00006026 call  0x00005fd4 
+ 00024530  0x00006027 copy  0x0000003f , 0x00000012 
+ 00024531  0x00006028 rtn 
+ 00024532  0x0000602b store  0x00000002 , 0x0000070d 
+ 00024533  0x0000602c fetch  0x00000001 , 0x0000070e 
+ 00024534  0x0000602d beq  0x000000ff , 0x00005fda 
+ 00024535  0x0000602e fetch  0x00000001 , 0x0000070d 
+ 00024536  0x00006030 and_into  0x000000ff , 0x0000003f 
+ 00024537  0x00006032 rtn 
+ 00024538  0x00006034 fetch  0x00000002 , 0x0000070d 
+ 00024539  0x00006035 sub  0x0000003f , 0x00000000 , 0x0000003f 
+ 00024540  0x00006036 branch  0x00005fd8 
+ 00024541  0x00006039 arg  0x0000461f , 0x00000013 
+ 00024542  0x0000603a arg  0x00005fe0 , 0x00000012 
+ 00024543  0x0000603b branch  0x000042e0 
+ 00024544  0x0000603d fetch  0x00000004 , 0x00004613 
+ 00024545  0x0000603e store  0x00000004 , 0x000045af 
+ 00024546  0x0000603f jam  0x00000001 , 0x0000477d 
+ 00024547  0x00006040 rtn 
+ 00024548  0x00006044 fetch  0x00000001 , 0x00004740 
+ 00024549  0x00006045 beq  0x00000000 , 0x00005fec 
+ 00024550  0x00006046 beq  0x00000001 , 0x00005fee 
+ 00024551  0x00006047 beq  0x00000002 , 0x00005fe9 
+ 00024552  0x00006048 beq  0x00000003 , 0x00005ff0 
+ 00024553  0x0000604a setarg  0x000ea600 
+ 00024554  0x0000604c store  0x00000004 , 0x00004613 
+ 00024555  0x0000604d rtn 
+ 00024556  0x0000604f setarg  0x0005e740 
+ 00024557  0x00006050 branch  0x00005fea 
+ 00024558  0x00006052 setarg  0x000927c0 
+ 00024559  0x00006053 branch  0x00005fea 
+ 00024560  0x00006055 setarg  0x00124f80 
+ 00024561  0x00006056 branch  0x00005fea 
+ 00024562  0x00006059 bpatch  0x00000095 , 0x00004012 
+ 00024563  0x0000605a jam  0x00000000 , 0x00004600 
+ 00024564  0x0000605b call  0x00003647 
+ 00024565  0x0000605c setarg  0xffffffff 
+ 00024566  0x0000605d store  0x00000004 , 0x000045af 
+ 00024567  0x0000605e setarg  0x00000000 
+ 00024568  0x0000605f store  0x00000007 , 0x00004846 
+ 00024569  0x00006060 jam  0x00000001 , 0x0000473f 
+ 00024570  0x00006061 call  0x000059ed 
+ 00024571  0x00006062 call  0x000054dc 
+ 00024572  0x00006063 branch  0x0000622b 
+ 00024573  0x00006066 fetch  0x00000001 , 0x0000473f 
+ 00024574  0x00006067 ncall  0x00006001 , 0x00000034 
+ 00024575  0x00006068 jam  0x00000000 , 0x0000473f 
+ 00024576  0x00006069 rtn 
+ 00024577  0x0000606c call  0x0000594c 
+ 00024578  0x0000606d fetch  0x00000008 , 0x00004713 
+ 00024579  0x0000606e rtnbit0  0x0000003c 
+ 00024580  0x00006070 fetch  0x00000001 , 0x0000464a 
+ 00024581  0x00006071 arg  0x00000040 , 0x00000002 
+ 00024582  0x00006072 call  0x00006f21 
+ 00024583  0x00006073 fetch  0x00000001 , 0x0000464b 
+ 00024584  0x00006074 arg  0x00000040 , 0x00000002 
+ 00024585  0x00006075 branch  0x00006f21 
+ 00024586  0x00006078 call  0x0000600e 
+ 00024587  0x00006079 fetch  0x00000001 , 0x0000473f 
+ 00024588  0x0000607a nbranch  0x00006235 , 0x00000034 
+ 00024589  0x0000607b branch  0x00003610 
+ 00024590  0x0000607e fetch  0x00000004 , 0x000045e8 
+ 00024591  0x0000607f fetcht  0x00000004 , 0x000045e4 
+ 00024592  0x00006080 isub  0x00000002 , 0x0000003e 
+ 00024593  0x00006081 branch  0x00006013 , 0x00000005 
+ 00024594  0x00006082 branch  0x00006016 
+ 00024595  0x00006085 jam  0x00000000 , 0x00004143 
+ 00024596  0x00006086 jam  0x000000aa , 0x00004141 
+ 00024597  0x00006087 rtn 
+ 00024598  0x00006089 jam  0x000000ff , 0x00004143 
+ 00024599  0x0000608a rtn 
+ 00024600  0x0000608d set0  0x00000026 , 0x00000000 
+ 00024601  0x0000608e jam  0x00000000 , 0x000045fc 
+ 00024602  0x0000608f arg  0x00000001 , 0x00000007 
+ 00024603  0x00006090 branch  0x00005f04 
+ 00024604  0x00006093 fetch  0x00000008 , 0x00004713 
+ 00024605  0x00006094 bbit0  0x00000011 , 0x0000602a 
+ 00024606  0x00006095 call  0x00006195 
+ 00024607  0x00006096 call  0x000054ac 
+ 00024608  0x00006097 branch  0x00006067 , 0x00000028 
+ 00024609  0x00006098 fetch  0x00000008 , 0x00004713 
+ 00024610  0x00006099 bbit1  0x00000030 , 0x0000602f 
+ 00024611  0x0000609a bbit0  0x00000031 , 0x0000602f 
+ 00024612  0x0000609b call  0x00005883 
+ 00024613  0x0000609c and  0x00000011 , 0x00000007 , 0x0000003f 
+ 00024614  0x0000609d fetcht  0x00000001 , 0x00004728 
+ 00024615  0x0000609e isub  0x00000002 , 0x0000003e 
+ 00024616  0x0000609f branch  0x00006047 , 0x00000005 
+ 00024617  0x000060a0 branch  0x0000602f 
+ 00024618  0x000060a3 fetch  0x00000001 , 0x0000477f 
+ 00024619  0x000060a4 nbranch  0x00005f1b , 0x00000034 
+ 00024620  0x000060a5 rtn 
+ 00024621  0x000060a8 call  0x000054ac 
+ 00024622  0x000060a9 branch  0x00006038 , 0x00000028 
+ 00024623  0x000060ab jam  0x00000000 , 0x00004666 
+ 00024624  0x000060ac fetch  0x00000002 , 0x00004721 
+ 00024625  0x000060ad store  0x00000002 , 0x000045de 
+ 00024626  0x000060ae jam  0x00000002 , 0x000045e2 
+ 00024627  0x000060af branch  0x00003534 
+ 00024628  0x000060b2 fetch  0x00000002 , 0x000045d6 
+ 00024629  0x000060b3 store  0x00000002 , 0x000045de 
+ 00024630  0x000060b4 jam  0x00000004 , 0x000045e2 
+ 00024631  0x000060b5 branch  0x00003534 
+ 00024632  0x000060b8 fetch  0x00000001 , 0x00004666 
+ 00024633  0x000060b9 beq  0x00000000 , 0x00006067 
+ 00024634  0x000060ba call  0x00005aa8 
+ 00024635  0x000060bc call  0x00006018 
+ 00024636  0x000060bd jam  0x00000001 , 0x00004666 
+ 00024637  0x000060be call  0x00005c6f 
+ 00024638  0x000060bf branch  0x000054a0 
+ 00024639  0x000060c2 call  0x000054ac 
+ 00024640  0x000060c3 branch  0x000054cd , 0x00000028 
+ 00024641  0x000060c4 branch  0x00005c1a 
+ 00024642  0x000060c7 call  0x000054ac 
+ 00024643  0x000060c8 rtn  0x00000028 
+ 00024644  0x000060c9 fetch  0x00000008 , 0x00004713 
+ 00024645  0x000060ca bbit1  0x0000003e , 0x00005ca3 
+ 00024646  0x000060cb rtn 
+ 00024647  0x000060ce call  0x00006195 
+ 00024648  0x000060cf jam  0x00000000 , 0x000045e2 
+ 00024649  0x000060d0 arg  0x00000001 , 0x00000007 
+ 00024650  0x000060d1 call  0x00005f00 
+ 00024651  0x000060d2 setarg  0x00000000 
+ 00024652  0x000060d3 store  0x00000002 , 0x000045de 
+ 00024653  0x000060d4 call  0x00005c39 
+ 00024654  0x000060d5 jam  0x00000001 , 0x00004589 
+ 00024655  0x000060d6 fetch  0x00000008 , 0x00004713 
+ 00024656  0x000060d7 bbit0  0x00000016 , 0x00003291 
+ 00024657  0x000060d8 jam  0x00000002 , 0x00004589 
+ 00024658  0x000060d9 branch  0x00003291 
+ 00024659  0x000060dc fetch  0x00000001 , 0x00004600 
+ 00024660  0x000060dd nbranch  0x00005ff2 , 0x00000034 
+ 00024661  0x000060de fetch  0x00000001 , 0x000045e2 
+ 00024662  0x000060df beq  0x00000002 , 0x0000605f 
+ 00024663  0x000060e0 beq  0x00000004 , 0x0000606b 
+ 00024664  0x000060e1 beq  0x00000003 , 0x00006070 
+ 00024665  0x000060e3 call  0x00006018 
+ 00024666  0x000060e4 fetch  0x00000001 , 0x0000477f 
+ 00024667  0x000060e5 nbranch  0x00005f1b , 0x00000034 
+ 00024668  0x000060e6 fetch  0x00000001 , 0x00004666 
+ 00024669  0x000060e7 beq  0x00000000 , 0x000054cd 
+ 00024670  0x000060e8 rtn 
+ 00024671  0x000060eb fetch  0x00000008 , 0x00004713 
+ 00024672  0x000060ec bbit1  0x0000003e , 0x00006034 
+ 00024673  0x000060ed bbit1  0x00000030 , 0x00006034 
+ 00024674  0x000060ee bbit0  0x0000003a , 0x00006067 
+ 00024675  0x000060ef fetch  0x00000004 , 0x00004691 
+ 00024676  0x000060f0 fetcht  0x00000004 , 0x000046e6 
+ 00024677  0x000060f1 isub  0x00000002 , 0x0000003e 
+ 00024678  0x000060f2 branch  0x00006047 , 0x00000005 
+ 00024679  0x000060f4 fetch  0x00000002 , 0x000045dc 
+ 00024680  0x000060f5 store  0x00000002 , 0x000045de 
+ 00024681  0x000060f6 jam  0x00000003 , 0x000045e2 
+ 00024682  0x000060f7 branch  0x00003534 
+ 00024683  0x000060fa fetch  0x00000008 , 0x00004713 
+ 00024684  0x000060fb bbit0  0x0000003e , 0x00006059 
+ 00024685  0x000060fc fetch  0x00000001 , 0x0000471b 
+ 00024686  0x000060fd beq  0x00000001 , 0x00006059 
+ 00024687  0x000060fe branch  0x0000603b 
+ 00024688  0x00006101 fetch  0x00000008 , 0x00004713 
+ 00024689  0x00006102 bbit0  0x0000003e , 0x00006059 
+ 00024690  0x00006103 bbit1  0x00000013 , 0x00006059 
+ 00024691  0x00006104 bbit1  0x00000012 , 0x00006059 
+ 00024692  0x00006105 branch  0x00006035 
+ 00024693  0x00006108 fetch  0x00000004 , 0x0000458f 
+ 00024694  0x00006109 store  0x00000004 , 0x000045e8 
+ 00024695  0x0000610a store  0x00000004 , 0x00004691 
+ 00024696  0x0000610b call  0x0000355a 
+ 00024697  0x0000610c call  0x00005c0b 
+ 00024698  0x0000610d call  0x0000618e 
+ 00024699  0x0000610e call  0x00005a73 
+ 00024700  0x0000610f jam  0x00000000 , 0x0000477d 
+ 00024701  0x00006110 jam  0x00000000 , 0x000045fc 
+ 00024702  0x00006111 jam  0x00000000 , 0x000045e2 
+ 00024703  0x00006112 fetch  0x00000004 , 0x000045e8 
+ 00024704  0x00006113 fetch  0x00000004 , 0x000045e4 
+ 00024705  0x00006114 isub  0x00000002 , 0x0000003e 
+ 00024706  0x00006115 rtn  0x00000005 
+ 00024707  0x00006116 branch  0x00006042 
+ 00024708  0x00006119 call  0x00005a73 
+ 00024709  0x0000611a call  0x00005a84 
+ 00024710  0x0000611c call  0x0000618e 
+ 00024711  0x0000611d call  0x00005c0b 
+ 00024712  0x0000611e arg  0x00000001 , 0x00000007 
+ 00024713  0x0000611f call  0x00005f04 
+ 00024714  0x00006120 setarg  0x00000000 
+ 00024715  0x00006121 store  0x00000002 , 0x000045d8 
+ 00024716  0x00006122 store  0x00000002 , 0x000045de 
+ 00024717  0x00006123 store  0x00000001 , 0x000045fc 
+ 00024718  0x00006124 store  0x00000001 , 0x00004860 
+ 00024719  0x00006125 store  0x00000001 , 0x000045e2 
+ 00024720  0x00006128 fetch  0x00000004 , 0x0000458f 
+ 00024721  0x00006129 store  0x00000004 , 0x000045e8 
+ 00024722  0x0000612a store  0x00000004 , 0x00004691 
+ 00024723  0x0000612b branch  0x00005ca3 
+ 00024724  0x0000612e call  0x00007de2 
+ 00024725  0x0000612f branch  0x000023fd 
+ 00024726  0x00006132 bpatch  0x00000096 , 0x00004012 
+ 00024727  0x00006133 rtnmark0  0x00000026 
+ 00024728  0x00006134 call  0x00005601 
+ 00024729  0x00006135 nrtn  0x00000028 
+ 00024730  0x00006136 fetch  0x00000001 , 0x0000477c 
+ 00024731  0x00006137 jam  0x00000000 , 0x0000477c 
+ 00024732  0x00006138 ncall  0x00006094 , 0x00000034 
+ 00024733  0x0000613a fetch  0x00000008 , 0x00004713 
+ 00024734  0x0000613b bbit0  0x00000016 , 0x000060a1 
+ 00024735  0x0000613c fetch  0x00000001 , 0x0000496c 
+ 00024736  0x0000613d nbranch  0x000060b6 , 0x00000034 
+ 00024737  0x0000613f call  0x00005a74 
+ 00024738  0x00006140 fetch  0x00000001 , 0x00004589 
+ 00024739  0x00006141 bbit1  0x00000001 , 0x000060b0 
+ 00024740  0x00006142 fetcht  0x00000001 , 0x0000451a 
+ 00024741  0x00006143 fetch  0x00000001 , 0x00004846 
+ 00024742  0x00006144 ior  0x00000002 , 0x0000003f 
+ 00024743  0x00006145 store  0x00000001 , 0x00004846 
+ 00024744  0x00006146 fetcht  0x00000001 , 0x0000451f 
+ 00024745  0x00006147 fetch  0x00000001 , 0x0000484b 
+ 00024746  0x00006148 iadd  0x00000002 , 0x0000003f 
+ 00024747  0x00006149 store  0x00000001 , 0x0000484b 
+ 00024748  0x0000614a fetcht  0x00000001 , 0x00004520 
+ 00024749  0x0000614b fetch  0x00000001 , 0x0000484c 
+ 00024750  0x0000614c iadd  0x00000002 , 0x0000003f 
+ 00024751  0x0000614d store  0x00000001 , 0x0000484c 
+ 00024752  0x0000614f jam  0x00000001 , 0x00004589 
+ 00024753  0x00006150 arg  0x00000007 , 0x00000011 
+ 00024754  0x00006151 arg  0x00004846 , 0x00000012 
+ 00024755  0x00006152 fetch  0x00000002 , 0x0000484b 
+ 00024756  0x00006153 rtn  0x00000034 
+ 00024757  0x00006154 branch  0x000036db 
+ 00024758  0x00006157 jam  0x00000002 , 0x00004589 
+ 00024759  0x00006158 arg  0x00000009 , 0x00000011 
+ 00024760  0x00006159 fetch  0x00000001 , 0x0000496d 
+ 00024761  0x0000615a nbranch  0x000060bc , 0x00000034 
+ 00024762  0x0000615b arg  0x00004733 , 0x00000012 
+ 00024763  0x0000615c rtn 
+ 00024764  0x0000615e arg  0x0000472a , 0x00000012 
+ 00024765  0x0000615f rtn 
+ 00024766  0x00006165 setarg  0x00000000 
+ 00024767  0x00006166 store  0x00000003 , 0x000046f8 
+ 00024768  0x00006167 rtn 
+ 00024769  0x0000616a fetch  0x00000008 , 0x00004713 
+ 00024770  0x0000616b rtnbit0  0x0000000e 
+ 00024771  0x0000616c fetch  0x00000001 , 0x0000477d 
+ 00024772  0x0000616d rtn  0x00000034 
+ 00024773  0x0000616e fetch  0x00000001 , 0x00004602 
+ 00024774  0x0000616f rtn  0x00000034 
+ 00024775  0x00006170 fetch  0x00000001 , 0x000046f5 
+ 00024776  0x00006171 increase  0x00000001 , 0x0000003f 
+ 00024777  0x00006172 and_into  0x00000003 , 0x0000003f 
+ 00024778  0x00006173 store  0x00000001 , 0x000046f5 
+ 00024779  0x00006174 nrtn  0x00000034 
+ 00024780  0x00006175 jam  0x00000000 , 0x000046f6 
+ 00024781  0x00006177 bpatch  0x00000097 , 0x00004012 
+ 00024782  0x00006178 fetch  0x00000001 , 0x000046f6 
+ 00024783  0x00006179 increase  0x00000001 , 0x0000003f 
+ 00024784  0x0000617a store  0x00000001 , 0x000046f6 
+ 00024785  0x0000617b sub  0x0000003f , 0x00000008 , 0x0000003e 
+ 00024786  0x0000617c nbranch  0x000060d9 , 0x00000002 
+ 00024787  0x0000617d call  0x0000357f 
+ 00024788  0x0000617e call  0x00003651 
+ 00024789  0x0000617f nbranch  0x000060df , 0x00000018 
+ 00024790  0x00006180 nbranch  0x000060df , 0x0000002f 
+ 00024791  0x00006181 call  0x000060f2 
+ 00024792  0x00006182 call  0x000060e9 
+ 00024793  0x00006184 call  0x0000357b 
+ 00024794  0x00006185 fetch  0x00000001 , 0x000046f7 
+ 00024795  0x00006186 increase  0x00000001 , 0x0000003f 
+ 00024796  0x00006187 store  0x00000001 , 0x000046f7 
+ 00024797  0x00006188 beq  0x00000010 , 0x000060e1 
+ 00024798  0x00006189 rtn 
+ 00024799  0x0000618c call  0x00003222 
+ 00024800  0x0000618d branch  0x000060cd 
+ 00024801  0x00006190 jam  0x00000000 , 0x000046f7 
+ 00024802  0x00006191 fetch  0x00000001 , 0x000046f8 
+ 00024803  0x00006192 rtnbit1  0x00000000 
+ 00024804  0x00006193 set1  0x00000000 , 0x0000003f 
+ 00024805  0x00006194 store  0x00000001 , 0x000046f8 
+ 00024806  0x00006195 fetch  0x00000002 , 0x00004723 
+ 00024807  0x00006196 store  0x00000002 , 0x00004781 
+ 00024808  0x00006197 branch  0x000059ed 
+ 00024809  0x0000619a fetch  0x00000001 , 0x00004602 
+ 00024810  0x0000619b branch  0x000060be , 0x00000034 
+ 00024811  0x0000619c jam  0x00000000 , 0x000046f7 
+ 00024812  0x0000619d fetch  0x00000001 , 0x000046f8 
+ 00024813  0x0000619e rtnbit0  0x00000000 
+ 00024814  0x0000619f set0  0x00000000 , 0x0000003f 
+ 00024815  0x000061a0 store  0x00000001 , 0x000046f8 
+ 00024816  0x000061a1 call  0x00005c0b 
+ 00024817  0x000061a2 branch  0x0000594c 
+ 00024818  0x000061a5 call  0x0000366e 
+ 00024819  0x000061a6 fetch  0x00000001 , 0x000044f8 
+ 00024820  0x000061a7 compare  0x00000008 , 0x0000003f , 0x000000f8 
+ 00024821  0x000061a8 nrtn  0x00000001 
+ 00024822  0x000061a9 fetch  0x00000001 , 0x000044f9 
+ 00024823  0x000061aa beq  0x000000ff , 0x00005ff2 
+ 00024824  0x000061ab rtn 
+ 00024825  0x000061b1 fetch  0x00000001 , 0x00004793 
+ 00024826  0x000061b2 nrtn  0x00000034 
+ 00024827  0x000061b3 call  0x00005e78 
+ 00024828  0x000061b4 call  0x000060fe 
+ 00024829  0x000061b5 branch  0x00003662 
+ 00024830  0x000061b8 arg  0x0000000c , 0x00000007 
+ 00024831  0x000061b9 call  0x00007cef 
+ 00024832  0x000061ba nrtn  0x00000034 
+ 00024833  0x000061bb call  0x00006106 
+ 00024834  0x000061bc call  0x0000572c 
+ 00024835  0x000061be arg  0x0000000c , 0x00000007 
+ 00024836  0x000061bf setarg  0x000000a0 
+ 00024837  0x000061c0 branch  0x00007ce1 
+ 00024838  0x000061c3 fetch  0x00000008 , 0x00004713 
+ 00024839  0x000061c4 rtnbit0  0x00000028 
+ 00024840  0x000061c6 branch  0x000056bb 
+ 00024841  0x000061ca fetch  0x00000001 , 0x00004666 
+ 00024842  0x000061cb bne  0x00000000 , 0x00002421 
+ 00024843  0x000061cc fetch  0x00000001 , 0x000045ca 
+ 00024844  0x000061cd rtn  0x00000034 
+ 00024845  0x000061cf jam  0x00000002 , 0x00008042 
+ 00024846  0x000061d0 jam  0x000000f8 , 0x00008130 
+ 00024847  0x000061d1 rtn 
+ 00024848  0x000061d7 fetch  0x00000001 , 0x0000465c 
+ 00024849  0x000061d8 rtneq  0x000000ff 
+ 00024850  0x000061d9 fetch  0x00000002 , 0x00004781 
+ 00024851  0x000061da rtn  0x00000034 
+ 00024852  0x000061db fetch  0x00000002 , 0x00004725 
+ 00024853  0x000061dc fetcht  0x00000002 , 0x00004781 
+ 00024854  0x000061dd isub  0x00000002 , 0x00000002 
+ 00024855  0x000061de fetch  0x00000002 , 0x0000470f 
+ 00024856  0x000061df isub  0x00000002 , 0x0000003f 
+ 00024857  0x000061e0 branch  0x0000611c , 0x00000002 
+ 00024858  0x000061e2 fetcht  0x00000001 , 0x0000465c 
+ 00024859  0x000061e3 branch  0x000061e5 
+ 00024860  0x000061e5 fetcht  0x00000001 , 0x0000465c 
+ 00024861  0x000061e6 branch  0x000061e4 
+ 00024862  0x000061ee arg  0x00004711 , 0x00000013 
+ 00024863  0x000061ef arg  0x00006121 , 0x00000012 
+ 00024864  0x000061f0 branch  0x000042e0 
+ 00024865  0x000061f3 bpatch  0x00000098 , 0x00004013 
+ 00024866  0x000061f4 fetch  0x00000001 , 0x00004957 
+ 00024867  0x000061f5 beq  0x00000003 , 0x00006131 
+ 00024868  0x000061f6 beq  0x0000000b , 0x00006131 
+ 00024869  0x000061f7 fetcht  0x00000001 , 0x00004690 
+ 00024870  0x000061f8 increase  0x00000002 , 0x00000002 
+ 00024871  0x000061fa sub  0x00000002 , 0x00000003 , 0x0000003e 
+ 00024872  0x000061fb call  0x00006134 , 0x00000002 
+ 00024873  0x000061fc ncall  0x00006138 , 0x00000002 
+ 00024874  0x000061fd copy  0x00000002 , 0x0000003f 
+ 00024875  0x000061fe iadd  0x0000003f , 0x0000003f 
+ 00024876  0x000061ff store  0x00000001 , 0x0000470c 
+ 00024877  0x00006201 jam  0x00000004 , 0x000046fe 
+ 00024878  0x00006202 call  0x00006185 
+ 00024879  0x00006203 jam  0x00000001 , 0x000046fc 
+ 00024880  0x00006204 branch  0x00006192 
+ 00024881  0x00006207 fetcht  0x00000001 , 0x00004690 
+ 00024882  0x00006208 increase  0x00000001 , 0x00000002 
+ 00024883  0x00006209 branch  0x00006127 
+ 00024884  0x0000620c fetch  0x00000008 , 0x00004713 
+ 00024885  0x0000620d rtnbit0  0x0000001c 
+ 00024886  0x0000620e increase  0x00000001 , 0x00000002 
+ 00024887  0x0000620f rtn 
+ 00024888  0x00006211 increase  0xfffffffd , 0x00000002 
+ 00024889  0x00006212 rtn 
+ 00024890  0x00006216 fetch  0x00000001 , 0x00004661 
+ 00024891  0x00006217 rtneq  0x000000ff 
+ 00024892  0x00006218 fetch  0x00000002 , 0x00004790 
+ 00024893  0x00006219 nrtn  0x00000034 
+ 00024894  0x0000621a fetch  0x00000002 , 0x000045d8 
+ 00024895  0x0000621b nrtn  0x00000034 
+ 00024896  0x0000621c fetch  0x00000002 , 0x000045de 
+ 00024897  0x0000621d nrtn  0x00000034 
+ 00024898  0x0000621e fetch  0x00000001 , 0x00004701 
+ 00024899  0x0000621f nrtn  0x00000034 
+ 00024900  0x00006220 fetch  0x00000001 , 0x00004712 
+ 00024901  0x00006221 branch  0x00006121 , 0x00000034 
+ 00024902  0x00006222 store  0x00000001 , 0x00004711 
+ 00024903  0x00006223 rtn 
+ 00024904  0x0000622c disable  0x00000028 
+ 00024905  0x0000622d fetch  0x00000001 , 0x000046fe 
+ 00024906  0x0000622e sub  0x0000003f , 0x00000004 , 0x0000003e 
+ 00024907  0x0000622f nrtn  0x00000005 
+ 00024908  0x00006230 branch  0x00007dba 
+ 00024909  0x00006233 fetch  0x00000008 , 0x00004713 
+ 00024910  0x00006234 rtnbit0  0x00000023 
+ 00024911  0x00006235 rtnbit0  0x00000004 
+ 00024912  0x00006236 fetch  0x00000002 , 0x00004790 
+ 00024913  0x00006237 nrtn  0x00000034 
+ 00024914  0x00006238 fetch  0x00000002 , 0x000045d8 
+ 00024915  0x00006239 nrtn  0x00000034 
+ 00024916  0x0000623a fetch  0x00000002 , 0x000045de 
+ 00024917  0x0000623b nrtn  0x00000034 
+ 00024918  0x0000623c fetch  0x00000001 , 0x00004701 
+ 00024919  0x0000623d nrtn  0x00000034 
+ 00024920  0x0000623e call  0x00006148 
+ 00024921  0x0000623f rtn  0x00000028 
+ 00024922  0x00006241 fetch  0x00000001 , 0x0000470e 
+ 00024923  0x00006242 branch  0x00006173 , 0x00000034 
+ 00024924  0x00006244 fetcht  0x00000001 , 0x00004709 
+ 00024925  0x00006245 increase  0x00000001 , 0x00000002 
+ 00024926  0x00006246 storet  0x00000001 , 0x00004709 
+ 00024927  0x00006247 fetch  0x00000001 , 0x00004707 
+ 00024928  0x00006248 isub  0x00000002 , 0x0000003e 
+ 00024929  0x00006249 ncall  0x0000616a , 0x00000002 
+ 00024930  0x0000624a fetch  0x00000001 , 0x00004708 
+ 00024931  0x0000624b isub  0x00000002 , 0x0000003e 
+ 00024932  0x0000624c nbranch  0x0000616e , 0x00000002 
+ 00024933  0x0000624e fetch  0x00000008 , 0x00004713 
+ 00024934  0x0000624f bbit1  0x00000024 , 0x000061d9 
+ 00024935  0x00006250 bbit1  0x00000026 , 0x000061d9 
+ 00024936  0x00006252 fetcht  0x00000001 , 0x00004660 
+ 00024937  0x00006253 branch  0x000061e4 
+ 00024938  0x00006256 jam  0x00000001 , 0x00004709 
+ 00024939  0x00006257 fetch  0x00000001 , 0x0000470e 
+ 00024940  0x00006258 increase  0xffffffff , 0x0000003f 
+ 00024941  0x00006259 store  0x00000001 , 0x0000470e 
+ 00024942  0x0000625b fetch  0x00000008 , 0x00004713 
+ 00024943  0x0000625c bbit1  0x00000024 , 0x000061eb 
+ 00024944  0x0000625d bbit1  0x00000026 , 0x000061eb 
+ 00024945  0x0000625f fetcht  0x00000001 , 0x00004660 
+ 00024946  0x00006260 branch  0x000061e5 
+ 00024947  0x00006263 fetch  0x00000008 , 0x00004713 
+ 00024948  0x00006264 bbit1  0x00000022 , 0x0000616e 
+ 00024949  0x00006265 call  0x0000617e 
+ 00024950  0x00006266 branch  0x0000615c 
+ 00024951  0x0000626f jam  0x00000000 , 0x000046fb 
+ 00024952  0x00006270 call  0x000061fd 
+ 00024953  0x00006271 jam  0x00000000 , 0x000046fe 
+ 00024954  0x00006272 fetch  0x00000001 , 0x00004707 
+ 00024955  0x00006273 rshift  0x0000003f , 0x0000003f 
+ 00024956  0x00006274 store  0x00000001 , 0x00004708 
+ 00024957  0x00006275 rtn 
+ 00024958  0x00006277 fetch  0x00000001 , 0x0000470d 
+ 00024959  0x00006278 store  0x00000001 , 0x0000470e 
+ 00024960  0x00006279 rtn 
+ 00024961  0x0000627c fetch  0x00000001 , 0x000046fe 
+ 00024962  0x0000627d beq  0x00000001 , 0x00006188 
+ 00024963  0x0000627e beq  0x00000002 , 0x0000618a 
+ 00024964  0x0000627f beq  0x00000003 , 0x0000618c 
+ 00024965  0x00006281 fetch  0x00000001 , 0x00004705 
+ 00024966  0x00006283 store  0x00000001 , 0x00004706 
+ 00024967  0x00006284 rtn 
+ 00024968  0x00006286 fetch  0x00000001 , 0x00004702 
+ 00024969  0x00006287 branch  0x00006186 
+ 00024970  0x00006289 fetch  0x00000001 , 0x00004703 
+ 00024971  0x0000628a branch  0x00006186 
+ 00024972  0x0000628c fetch  0x00000001 , 0x00004704 
+ 00024973  0x0000628d branch  0x00006186 
+ 00024974  0x00006291 bpatch  0x00000099 , 0x00004013 
+ 00024975  0x00006292 fetch  0x00000001 , 0x00004700 
+ 00024976  0x00006293 store  0x00000001 , 0x00004701 
+ 00024977  0x00006294 jam  0x00000000 , 0x000046fc 
+ 00024978  0x00006296 jam  0x00000000 , 0x000046fd 
+ 00024979  0x00006297 jam  0x00000001 , 0x000046fb 
+ 00024980  0x00006298 rtn 
+ 00024981  0x0000629c bpatch  0x0000009a , 0x00004013 
+ 00024982  0x0000629d fetch  0x00000001 , 0x00004666 
+ 00024983  0x0000629e rtnne  0x00000000 
+ 00024984  0x0000629f call  0x000061ae 
+ 00024985  0x000062a0 jam  0x00000001 , 0x000046fe 
+ 00024986  0x000062a1 call  0x00006188 
+ 00024987  0x000062a2 fetch  0x00000001 , 0x000046ff 
+ 00024988  0x000062a3 rtn  0x00000034 
+ 00024989  0x000062a4 fetch  0x00000001 , 0x0000470a 
+ 00024990  0x000062a5 branch  0x000061a9 
+ 00024991  0x000062a8 fetch  0x00000001 , 0x00004666 
+ 00024992  0x000062a9 rtneq  0x00000000 
+ 00024993  0x000062aa call  0x000061ae 
+ 00024994  0x000062ab fetch  0x00000008 , 0x00004713 
+ 00024995  0x000062ac rtnbit0  0x00000021 
+ 00024996  0x000062ad jam  0x00000003 , 0x000046fe 
+ 00024997  0x000062ae call  0x0000618c 
+ 00024998  0x000062af fetch  0x00000001 , 0x000046ff 
+ 00024999  0x000062b0 rtn  0x00000034 
+ 00025000  0x000062b1 fetch  0x00000001 , 0x0000470b 
+ 00025001  0x000062b3 store  0x00000001 , 0x0000470c 
+ 00025002  0x000062b4 rtn 
+ 00025003  0x000062b7 jam  0x00000000 , 0x000046ff 
+ 00025004  0x000062b8 jam  0x00000002 , 0x000046fe 
+ 00025005  0x000062b9 call  0x0000618a 
+ 00025006  0x000062bb jam  0x00000001 , 0x000046fb 
+ 00025007  0x000062bc jam  0x00000001 , 0x000046fc 
+ 00025008  0x000062bd branch  0x000061d8 
+ 00025009  0x000062c2 fetch  0x00000001 , 0x000046fb 
+ 00025010  0x000062c3 rtn  0x00000034 
+ 00025011  0x000062c4 fetch  0x00000001 , 0x000046fc 
+ 00025012  0x000062c5 beq  0x00000001 , 0x000061bd 
+ 00025013  0x000062c7 fetch  0x00000001 , 0x00004701 
+ 00025014  0x000062c8 branch  0x000061ba , 0x00000034 
+ 00025015  0x000062c9 increase  0xffffffff 
+ 00025016  0x000062ca store  0x00000001 , 0x00004701 
+ 00025017  0x000062cb branch  0x000061d9 
+ 00025018  0x000062ce jam  0x00000000 , 0x000046fb 
+ 00025019  0x000062cf call  0x0000617e 
+ 00025020  0x000062d0 branch  0x000061eb 
+ 00025021  0x000062d3 bpatch  0x0000009b , 0x00004013 
+ 00025022  0x000062d4 fetch  0x00000001 , 0x000046fe 
+ 00025023  0x000062d5 rtn  0x00000034 
+ 00025024  0x000062d6 beq  0x00000004 , 0x000061c5 
+ 00025025  0x000062d7 branch  0x000061c2 
+ 00025026  0x000062da fetch  0x00000001 , 0x000046ff 
+ 00025027  0x000062db beq  0x00000001 , 0x000061c5 
+ 00025028  0x000062dc branch  0x000061c7 
+ 00025029  0x000062df fetch  0x00000001 , 0x0000470c 
+ 00025030  0x000062e0 branch  0x000061e6 , 0x00000034 
+ 00025031  0x000062e2 arg  0x00004706 , 0x00000013 
+ 00025032  0x000062e3 arg  0x000061ca , 0x00000012 
+ 00025033  0x000062e4 branch  0x000042e0 
+ 00025034  0x000062e7 fetch  0x00000001 , 0x000046fe 
+ 00025035  0x000062e8 beq  0x00000004 , 0x000061d2 
+ 00025036  0x000062e9 fetch  0x00000001 , 0x000046ff 
+ 00025037  0x000062ea beq  0x00000001 , 0x000061d2 
+ 00025038  0x000062ec call  0x00006181 
+ 00025039  0x000062ed fetch  0x00000001 , 0x000046fd 
+ 00025040  0x000062ee beq  0x00000001 , 0x000061e8 
+ 00025041  0x000062ef branch  0x000061d6 
+ 00025042  0x000062f2 fetch  0x00000001 , 0x0000470c 
+ 00025043  0x000062f3 increase  0xffffffff 
+ 00025044  0x000062f4 store  0x00000001 , 0x0000470c 
+ 00025045  0x000062f5 branch  0x000061ce 
+ 00025046  0x000062f9 fetch  0x00000001 , 0x000046fe 
+ 00025047  0x000062fa beq  0x00000004 , 0x00006208 
+ 00025048  0x000062fc jam  0x00000001 , 0x000046fd 
+ 00025049  0x000062fe bpatch  0x0000009c , 0x00004013 
+ 00025050  0x000062ff fetch  0x00000001 , 0x00004666 
+ 00025051  0x00006300 beq  0x00000000 , 0x000061df 
+ 00025052  0x00006301 beq  0x00000001 , 0x000061e1 
+ 00025053  0x00006302 beq  0x00000002 , 0x000061e3 
+ 00025054  0x00006303 rtn 
+ 00025055  0x00006305 fetcht  0x00000001 , 0x0000465d 
+ 00025056  0x00006306 branch  0x000061e4 
+ 00025057  0x00006308 fetcht  0x00000001 , 0x0000465e 
+ 00025058  0x00006309 branch  0x000061e4 
+ 00025059  0x0000630b fetcht  0x00000001 , 0x0000465f 
+ 00025060  0x0000630d branch  0x00006ef7 
+ 00025061  0x00006310 branch  0x00006ef3 
+ 00025062  0x00006313 jam  0x00000000 , 0x000046fb 
+ 00025063  0x00006314 jam  0x00000000 , 0x000046fe 
+ 00025064  0x00006316 fetch  0x00000001 , 0x000046fe 
+ 00025065  0x00006317 beq  0x00000004 , 0x00006202 
+ 00025066  0x00006319 jam  0x00000000 , 0x000046fd 
+ 00025067  0x0000631b bpatch  0x0000009d , 0x00004013 
+ 00025068  0x0000631c fetch  0x00000001 , 0x00004666 
+ 00025069  0x0000631d beq  0x00000000 , 0x000061f1 
+ 00025070  0x0000631e beq  0x00000001 , 0x000061f5 
+ 00025071  0x0000631f beq  0x00000002 , 0x000061f9 
+ 00025072  0x00006320 rtn 
+ 00025073  0x00006322 fetcht  0x00000001 , 0x0000465d 
+ 00025074  0x00006323 fetch  0x00000008 , 0x00004713 
+ 00025075  0x00006324 bbit0  0x00000020 , 0x000061e5 
+ 00025076  0x00006325 branch  0x00006f0f 
+ 00025077  0x00006327 fetcht  0x00000001 , 0x0000465e 
+ 00025078  0x00006328 fetch  0x00000008 , 0x00004713 
+ 00025079  0x00006329 bbit0  0x00000020 , 0x000061e5 
+ 00025080  0x0000632a branch  0x00006f0f 
+ 00025081  0x0000632c fetcht  0x00000001 , 0x0000465f 
+ 00025082  0x0000632d fetch  0x00000008 , 0x00004713 
+ 00025083  0x0000632e bbit0  0x00000020 , 0x000061e5 
+ 00025084  0x0000632f branch  0x00006f0f 
+ 00025085  0x00006332 call  0x000061f1 
+ 00025086  0x00006333 call  0x000061f5 
+ 00025087  0x00006334 call  0x000061f9 
+ 00025088  0x00006335 call  0x0000616e 
+ 00025089  0x00006336 branch  0x00006202 
+ 00025090  0x00006339 jam  0x00000000 , 0x000046fd 
+ 00025091  0x0000633a fetch  0x00000008 , 0x00004713 
+ 00025092  0x0000633b bbit1  0x00000025 , 0x000061ea 
+ 00025093  0x0000633c bbit1  0x00000026 , 0x000061ea 
+ 00025094  0x0000633e fetcht  0x00000001 , 0x00004661 
+ 00025095  0x0000633f branch  0x000061e5 
+ 00025096  0x00006342 jam  0x00000001 , 0x000046fd 
+ 00025097  0x00006343 fetch  0x00000008 , 0x00004713 
+ 00025098  0x00006344 bbit1  0x00000025 , 0x000061d8 
+ 00025099  0x00006345 bbit1  0x00000026 , 0x000061d8 
+ 00025100  0x00006347 fetcht  0x00000001 , 0x00004661 
+ 00025101  0x00006348 branch  0x000061e4 
+ 00025102  0x0000634d fetch  0x00000008 , 0x00004713 
+ 00025103  0x0000634e rtnbit0  0x00000004 
+ 00025104  0x0000634f fetch  0x00000001 , 0x00004709 
+ 00025105  0x00006350 fetcht  0x00000001 , 0x00004708 
+ 00025106  0x00006351 sub  0x0000003f , 0x00000002 , 0x0000003e 
+ 00025107  0x00006352 branch  0x0000621b , 0x00000002 
+ 00025108  0x00006354 fetch  0x00000001 , 0x00004666 
+ 00025109  0x00006355 beq  0x00000000 , 0x00006218 
+ 00025110  0x00006356 jam  0x00000001 , 0x00004094 
+ 00025111  0x00006357 rtn 
+ 00025112  0x0000635a fetch  0x00000008 , 0x00004713 
+ 00025113  0x0000635b rtnbit1  0x00000018 
+ 00025114  0x0000635c branch  0x000036ca 
+ 00025115  0x0000635f fetch  0x00000001 , 0x00004666 
+ 00025116  0x00006360 beq  0x00000000 , 0x000036db 
+ 00025117  0x00006361 jam  0x00000000 , 0x00004094 
+ 00025118  0x00006362 rtn 
+ 00025119  0x00006367 fetch  0x00000001 , 0x00000009 
+ 00025120  0x00006368 branch  0x000035cb 
+ 00025121  0x0000636b call  0x0000621f 
+ 00025122  0x0000636c branch  0x000036e8 
+ 00025123  0x0000636f fetch  0x00000001 , 0x00004843 
+ 00025124  0x00006370 compare  0x00000003 , 0x0000003f , 0x00000003 
+ 00025125  0x00006371 nbranch  0x00007dc8 , 0x00000001 
+ 00025126  0x00006372 call  0x0000432b 
+ 00025127  0x00006373 branch  0x00007dca 
+ 00025128  0x00006376 fetch  0x00000002 , 0x000044e9 
+ 00025129  0x00006377 bbit1  0x00000009 , 0x00006223 
+ 00025130  0x00006378 rtn 
+ 00025131  0x0000637b call  0x000036b4 
+ 00025132  0x0000637c nrtn  0x00000028 
+ 00025133  0x0000637d jam  0x00000001 , 0x0000477c 
+ 00025134  0x0000637e call  0x000036be 
+ 00025135  0x0000637f jam  0x00000000 , 0x00004772 
+ 00025136  0x00006380 call  0x000062aa 
+ 00025137  0x00006381 fetch  0x00000001 , 0x0000473f 
+ 00025138  0x00006382 ncall  0x000054dc , 0x00000034 
+ 00025139  0x00006383 fetch  0x00000004 , 0x000045af 
+ 00025140  0x00006384 branch  0x00003622 
+ 00025141  0x00006387 fetch  0x00000001 , 0x0000477b 
+ 00025142  0x00006388 branch  0x00003616 , 0x00000034 
+ 00025143  0x00006389 call  0x000036b4 
+ 00025144  0x0000638a nrtn  0x00000028 
+ 00025145  0x0000638b fetch  0x00000001 , 0x00004772 
+ 00025146  0x0000638c jam  0x00000000 , 0x00004772 
+ 00025147  0x0000638d sub  0x0000003f , 0x00000000 , 0x0000003e 
+ 00025148  0x0000638e nbranch  0x0000625c , 0x00000005 
+ 00025149  0x0000638f fetcht  0x00000002 , 0x00004622 
+ 00025150  0x00006390 sub  0x00000002 , 0x00000000 , 0x0000003e 
+ 00025151  0x00006391 branch  0x00006252 , 0x00000005 
+ 00025152  0x00006393 fetch  0x00000004 , 0x00004767 
+ 00025153  0x00006394 branch  0x00006252 , 0x00000034 
+ 00025154  0x00006396 fetcht  0x00000004 , 0x00004751 
+ 00025155  0x00006397 isub  0x00000002 , 0x00000002 
+ 00025156  0x00006398 storet  0x00000004 , 0x00004777 
+ 00025157  0x00006399 nbranch  0x00006255 , 0x00000002 
+ 00025158  0x0000639a fetch  0x00000003 , 0x00004608 
+ 00025159  0x0000639b isub  0x00000002 , 0x0000003f 
+ 00025160  0x0000639c nbranch  0x00006260 , 0x00000002 
+ 00025161  0x0000639d arg  0x00000600 , 0x00000002 
+ 00025162  0x0000639e isub  0x00000002 , 0x0000003e 
+ 00025163  0x0000639f nbranch  0x00006260 , 0x00000002 
+ 00025164  0x000063a1 store  0x00000004 , 0x00004773 
+ 00025165  0x000063a2 call  0x00006259 
+ 00025166  0x000063a3 fetch  0x00000004 , 0x00004773 
+ 00025167  0x000063a5 call  0x00007d25 
+ 00025168  0x000063a6 storet  0x00000004 , 0x000040a9 
+ 00025169  0x000063a7 branch  0x0000241e 
+ 00025170  0x000063aa call  0x00006259 
+ 00025171  0x000063ab fetch  0x00000003 , 0x00004608 
+ 00025172  0x000063ac branch  0x0000624c 
+ 00025173  0x000063af sub  0x00000002 , 0x00000000 , 0x00000002 
+ 00025174  0x000063b0 fetch  0x00000003 , 0x00004608 
+ 00025175  0x000063b1 iadd  0x00000002 , 0x0000003f 
+ 00025176  0x000063b2 branch  0x0000624c 
+ 00025177  0x000063b5 setarg  0x00000000 
+ 00025178  0x000063b6 store  0x00000004 , 0x00004777 
+ 00025179  0x000063b7 rtn 
+ 00025180  0x000063ba fetch  0x00000004 , 0x00004767 
+ 00025181  0x000063bb fetcht  0x00000004 , 0x00004777 
+ 00025182  0x000063bc iadd  0x00000002 , 0x0000003f 
+ 00025183  0x000063bd branch  0x00006242 
+ 00025184  0x000063c0 jam  0x00000001 , 0x00004772 
+ 00025185  0x000063c1 rtn 
+ 00025186  0x000063c5 call  0x00006264 
+ 00025187  0x000063c6 branch  0x00005ffd 
+ 00025188  0x000063c9 fetch  0x00000001 , 0x0000477b 
+ 00025189  0x000063ca rtn  0x00000034 
+ 00025190  0x000063cb fetch  0x00000001 , 0x00004618 
+ 00025191  0x000063cc beq  0x00000001 , 0x000062a6 
+ 00025192  0x000063cd fetch  0x00000001 , 0x00004760 
+ 00025193  0x000063ce branch  0x000062a6 , 0x00000034 
+ 00025194  0x000063cf copy  0x00000019 , 0x0000003f 
+ 00025195  0x000063d0 fetcht  0x00000006 , 0x00004761 
+ 00025196  0x000063d1 store  0x00000006 , 0x00004761 
+ 00025197  0x000063d2 call  0x00007d10 
+ 00025198  0x000063d3 store  0x00000004 , 0x00004767 
+ 00025199  0x000063d5 fetch  0x00000001 , 0x00004772 
+ 00025200  0x000063d6 nrtn  0x00000034 
+ 00025201  0x000063d7 fetch  0x00000002 , 0x00004622 
+ 00025202  0x000063d8 nrtn  0x00000034 
+ 00025203  0x000063d9 fetch  0x00000004 , 0x00004767 
+ 00025204  0x000063db fetcht  0x00000005 , 0x0000476b 
+ 00025205  0x000063dc iadd  0x00000002 , 0x0000003f 
+ 00025206  0x000063dd store  0x00000005 , 0x0000476b 
+ 00025207  0x000063de fetcht  0x00000001 , 0x00004760 
+ 00025208  0x000063df fetch  0x00000001 , 0x00004770 
+ 00025209  0x000063e0 isub  0x00000002 , 0x0000003e 
+ 00025210  0x000063e1 branch  0x0000627e , 0x00000005 
+ 00025211  0x000063e2 increase  0x00000001 , 0x00000002 
+ 00025212  0x000063e3 storet  0x00000001 , 0x00004760 
+ 00025213  0x000063e4 rtn 
+ 00025214  0x000063e7 jam  0x00000001 , 0x00004760 
+ 00025215  0x000063e8 arg  0x00000000 , 0x00000002 
+ 00025216  0x000063e9 fetch  0x00000005 , 0x0000476b 
+ 00025217  0x000063ea storet  0x00000005 , 0x0000476b 
+ 00025218  0x000063eb fetcht  0x00000001 , 0x00004770 
+ 00025219  0x000063ec idiv  0x00000002 
+ 00025220  0x000063ed call  0x00007d62 
+ 00025221  0x000063ee quotient  0x00000011 
+ 00025222  0x000063f0 fetch  0x00000004 , 0x00004751 
+ 00025223  0x000063f1 fetcht  0x00000001 , 0x00004771 
+ 00025224  0x000063f2 isub  0x00000002 , 0x00000002 
+ 00025225  0x000063f3 increase  0xffffffd8 , 0x00000002 
+ 00025226  0x000063f5 copy  0x00000011 , 0x0000003f 
+ 00025227  0x000063f6 isub  0x00000002 , 0x0000003f 
+ 00025228  0x000063f7 branch  0x00006299 , 0x00000002 
+ 00025229  0x000063f8 sub  0x0000003f , 0x00000000 , 0x0000003f 
+ 00025230  0x000063fa rshift2  0x0000003f , 0x0000003f 
+ 00025231  0x000063fb fetcht  0x00000003 , 0x00004608 
+ 00025232  0x000063fc iadd  0x00000002 , 0x00000002 
+ 00025233  0x000063fd bpatch  0x0000009e , 0x00004013 
+ 00025234  0x000063fe fetch  0x00000003 , 0x0000475d 
+ 00025235  0x000063ff arg  0x00001800 , 0x00000011 
+ 00025236  0x00006400 iadd  0x00000011 , 0x0000003f 
+ 00025237  0x00006401 isub  0x00000002 , 0x0000003e 
+ 00025238  0x00006402 nbranch  0x000062a4 , 0x00000002 
+ 00025239  0x00006403 storet  0x00000003 , 0x00004608 
+ 00025240  0x00006404 rtn 
+ 00025241  0x00006407 rshift2  0x0000003f , 0x00000002 
+ 00025242  0x00006408 fetch  0x00000003 , 0x00004608 
+ 00025243  0x00006409 isub  0x00000002 , 0x00000002 
+ 00025244  0x0000640a bpatch  0x0000009f , 0x00004013 
+ 00025245  0x0000640b fetch  0x00000003 , 0x0000475d 
+ 00025246  0x0000640c arg  0x00001800 , 0x00000011 
+ 00025247  0x0000640d isub  0x00000011 , 0x0000003f 
+ 00025248  0x0000640e isub  0x00000002 , 0x0000003e 
+ 00025249  0x0000640f branch  0x000062a4 , 0x00000002 
+ 00025250  0x00006410 storet  0x00000003 , 0x00004608 
+ 00025251  0x00006411 rtn 
+ 00025252  0x00006414 store  0x00000003 , 0x00004608 
+ 00025253  0x00006415 rtn 
+ 00025254  0x00006418 jam  0x00000001 , 0x00004760 
+ 00025255  0x00006419 copy  0x00000019 , 0x0000003f 
+ 00025256  0x0000641a store  0x00000006 , 0x00004761 
+ 00025257  0x0000641b rtn 
+ 00025258  0x0000641e setarg  0x00000000 
+ 00025259  0x0000641f store  0x00000001 , 0x00004760 
+ 00025260  0x00006420 store  0x00000005 , 0x0000476b 
+ 00025261  0x00006421 rtn 
+ 00025262  0x0000642b call  0x00007396 
+ 00025263  0x0000642c rtn  0x0000002b 
+ 00025264  0x0000642e setarg  0x00006327 
+ 00025265  0x0000642f store  0x00000002 , 0x000043db 
+ 00025266  0x00006431 setarg  0x000062d9 
+ 00025267  0x00006432 store  0x00000002 , 0x000043dd 
+ 00025268  0x00006434 setarg  0x0000638a 
+ 00025269  0x00006435 store  0x00000002 , 0x000043df 
+ 00025270  0x00006437 setarg  0x0000630e 
+ 00025271  0x00006438 store  0x00000002 , 0x000043e3 
+ 00025272  0x0000643a setarg  0x00006365 
+ 00025273  0x0000643b store  0x00000002 , 0x00004524 
+ 00025274  0x0000643d call  0x000062c2 
+ 00025275  0x0000643f bpatch  0x000000a0 , 0x00004014 
+ 00025276  0x00006440 call  0x00006396 
+ 00025277  0x00006443 fetch  0x00000001 , 0x0000451a 
+ 00025278  0x00006444 beq  0x00000000 , 0x000062d0 
+ 00025279  0x00006445 fetch  0x00000001 , 0x0000451b 
+ 00025280  0x00006446 store  0x00000001 , 0x000044ec 
+ 00025281  0x00006447 branch  0x000063a1 
+ 00025282  0x0000644b setarg  0x0000632b 
+ 00025283  0x0000644c store  0x00000002 , 0x000043d5 
+ 00025284  0x0000644e setarg  0x00006329 
+ 00025285  0x0000644f store  0x00000002 , 0x000043d7 
+ 00025286  0x00006451 setarg  0x00006340 
+ 00025287  0x00006452 store  0x00000002 , 0x0000451f 
+ 00025288  0x00006454 setarg  0x0000639a 
+ 00025289  0x00006455 store  0x00000002 , 0x00004521 
+ 00025290  0x00006457 jam  0x00000007 , 0x0000415e 
+ 00025291  0x00006458 call  0x00002969 
+ 00025292  0x00006459 call  0x0000638d 
+ 00025293  0x0000645a call  0x00006ff7 
+ 00025294  0x0000645b call  0x000078ad 
+ 00025295  0x0000645c branch  0x000077ac 
+ 00025296  0x00006461 jam  0x000000ff , 0x000044ec 
+ 00025297  0x00006462 jam  0x00000001 , 0x0000451c 
+ 00025298  0x00006463 branch  0x00006340 
+ 00025299  0x00006468 fetch  0x00000001 , 0x0000451c 
+ 00025300  0x00006469 beq  0x00000002 , 0x00004308 
+ 00025301  0x0000646a call  0x000069b9 
+ 00025302  0x0000646b fetch  0x00000001 , 0x00004441 
+ 00025303  0x0000646c nbranch  0x00004308 , 0x00000034 
+ 00025304  0x0000646d branch  0x0000430a 
+ 00025305  0x00006472 copy  0x00000013 , 0x0000003f 
+ 00025306  0x00006475 beq  0x00000014 , 0x000062e2 
+ 00025307  0x00006476 beq  0x00000015 , 0x000062e6 
+ 00025308  0x00006477 beq  0x0000003f , 0x000062e9 
+ 00025309  0x00006478 beq  0x00000040 , 0x000062ef 
+ 00025310  0x0000647a beq  0x00000010 , 0x000063b6 
+ 00025311  0x0000647b beq  0x0000002c , 0x000062f5 
+ 00025312  0x0000647c beq  0x0000002d , 0x00006300 
+ 00025313  0x0000647d rtn 
+ 00025314  0x00006483 call  0x0000632d 
+ 00025315  0x00006484 setarg  0x00000000 
+ 00025316  0x00006485 store  0x00000002 , 0x000044f8 
+ 00025317  0x00006486 branch  0x00004325 
+ 00025318  0x0000648a call  0x000078ad 
+ 00025319  0x0000648b jam  0x00000000 , 0x000044f1 
+ 00025320  0x0000648c branch  0x00006340 
+ 00025321  0x00006490 call  0x000078ad 
+ 00025322  0x00006491 jam  0x00000001 , 0x000044f1 
+ 00025323  0x00006492 fetch  0x00000008 , 0x00004502 
+ 00025324  0x00006493 store  0x00000008 , 0x000042d3 
+ 00025325  0x00006494 call  0x0000432b 
+ 00025326  0x00006495 branch  0x00002e93 
+ 00025327  0x00006499 fetch  0x00000002 , 0x0000433c 
+ 00025328  0x0000649a rtneq  0x00000000 
+ 00025329  0x0000649b fetch  0x00000008 , 0x0000450a 
+ 00025330  0x0000649c rtn  0x00000034 
+ 00025331  0x0000649d store  0x00000008 , 0x000042d3 
+ 00025332  0x0000649e branch  0x00002e93 
+ 00025333  0x000064a6 fetch  0x00000001 , 0x0000451a 
+ 00025334  0x000064a7 rtneq  0x00000000 
+ 00025335  0x000064a8 fetch  0x00000001 , 0x0000451c 
+ 00025336  0x000064a9 rtnne  0x00000001 
+ 00025337  0x000064aa call  0x000062fb 
+ 00025338  0x000064ab branch  0x00004323 
+ 00025339  0x000064ae jam  0x00000001 , 0x000046bd 
+ 00025340  0x000064af arg  0x0000000b , 0x00000039 
+ 00025341  0x000064b0 arg  0x000046be , 0x00000005 
+ 00025342  0x000064b1 arg  0x000046a7 , 0x00000006 
+ 00025343  0x000064b2 branch  0x00007cda 
+ 00025344  0x000064b5 fetch  0x00000001 , 0x0000451a 
+ 00025345  0x000064b6 rtneq  0x00000000 
+ 00025346  0x000064b7 fetch  0x00000001 , 0x0000451c 
+ 00025347  0x000064b8 beq  0x00000001 , 0x00006305 
+ 00025348  0x000064b9 branch  0x000063b2 
+ 00025349  0x000064bc fetch  0x00000001 , 0x000046bd 
+ 00025350  0x000064bd rtnne  0x00000001 
+ 00025351  0x000064be jam  0x00000000 , 0x000046bd 
+ 00025352  0x000064bf fetch  0x00000002 , 0x000044e9 
+ 00025353  0x000064c0 bbit1  0x00000009 , 0x00004325 
+ 00025354  0x000064c1 arg  0x0000000b , 0x00000039 
+ 00025355  0x000064c2 arg  0x000046be , 0x00000006 
+ 00025356  0x000064c3 arg  0x000046a7 , 0x00000005 
+ 00025357  0x000064c4 branch  0x00007cda 
+ 00025358  0x000064cb call  0x00006311 
+ 00025359  0x000064ce call  0x00006318 
+ 00025360  0x000064d2 branch  0x00006322 
+ 00025361  0x000064d7 arg  0x00004518 , 0x00000013 
+ 00025362  0x000064d8 arg  0x00006314 , 0x00000012 
+ 00025363  0x000064d9 branch  0x000042e7 
+ 00025364  0x000064db jam  0x00000002 , 0x0000451c 
+ 00025365  0x000064dc call  0x00004325 
+ 00025366  0x000064dd call  0x0000634e 
+ 00025367  0x000064de branch  0x0000639e 
+ 00025368  0x000064e2 arg  0x000046ca , 0x00000013 
+ 00025369  0x000064e3 arg  0x0000631b , 0x00000012 
+ 00025370  0x000064e4 branch  0x000042e0 
+ 00025371  0x000064e7 fetch  0x00000002 , 0x000044e9 
+ 00025372  0x000064e8 bbit1  0x00000009 , 0x0000639e 
+ 00025373  0x000064e9 fetch  0x00000001 , 0x000046a7 
+ 00025374  0x000064ea beq  0x00000001 , 0x0000639e 
+ 00025375  0x000064eb beq  0x00000004 , 0x0000639e 
+ 00025376  0x000064ec beq  0x00000005 , 0x0000639e 
+ 00025377  0x000064ed branch  0x00004327 
+ 00025378  0x000064f2 fetch  0x00000001 , 0x0000451c 
+ 00025379  0x000064f3 rtnne  0x00000001 
+ 00025380  0x000064f4 arg  0x000044f8 , 0x00000013 
+ 00025381  0x000064f5 arg  0x00006331 , 0x00000012 
+ 00025382  0x000064f6 branch  0x000042e7 
+ 00025383  0x000064fa call  0x00006376 
+ 00025384  0x000064fb branch  0x00007027 
+ 00025385  0x000064ff call  0x00006f35 
+ 00025386  0x00006500 branch  0x0000701b 
+ 00025387  0x00006503 call  0x00006f35 
+ 00025388  0x00006504 branch  0x0000739a 
+ 00025389  0x0000650f fetch  0x00000002 , 0x00004514 
+ 00025390  0x00006510 store  0x00000002 , 0x00004516 
+ 00025391  0x00006511 store  0x00000002 , 0x00004518 
+ 00025392  0x00006512 branch  0x00004315 
+ 00025393  0x00006516 fetch  0x00000001 , 0x0000451c 
+ 00025394  0x00006517 rtnne  0x00000001 
+ 00025395  0x0000651c fetch  0x00000002 , 0x000044e9 
+ 00025396  0x0000651d rtnbit1  0x00000009 
+ 00025397  0x0000651e fetch  0x00000002 , 0x00004512 
+ 00025398  0x0000651f store  0x00000002 , 0x00004516 
+ 00025399  0x00006520 store  0x00000002 , 0x00004518 
+ 00025400  0x00006521 fetch  0x00000002 , 0x000044f4 
+ 00025401  0x00006522 call  0x000063c7 
+ 00025402  0x00006523 call  0x00004321 
+ 00025403  0x00006524 fetch  0x00000004 , 0x000044fe 
+ 00025404  0x00006525 store  0x00000004 , 0x000046aa 
+ 00025405  0x00006526 fetch  0x00000002 , 0x000044e9 
+ 00025406  0x00006527 rtnbit1  0x0000000b 
+ 00025407  0x00006528 branch  0x00004317 
+ 00025408  0x0000652c fetch  0x00000001 , 0x0000451c 
+ 00025409  0x0000652d rtnne  0x00000001 
+ 00025410  0x00006532 fetch  0x00000002 , 0x000044f8 
+ 00025411  0x00006533 fetcht  0x00000002 , 0x000044f6 
+ 00025412  0x00006534 storet  0x00000002 , 0x000044f8 
+ 00025413  0x00006535 nrtn  0x00000034 
+ 00025414  0x00006536 fetch  0x00000002 , 0x000044f2 
+ 00025415  0x00006537 call  0x000063c7 
+ 00025416  0x00006538 call  0x00004321 
+ 00025417  0x00006539 fetch  0x00000004 , 0x000044fa 
+ 00025418  0x0000653a store  0x00000004 , 0x000046aa 
+ 00025419  0x0000653b fetch  0x00000002 , 0x000044e9 
+ 00025420  0x0000653c rtnbit1  0x0000000b 
+ 00025421  0x0000653d branch  0x00004317 
+ 00025422  0x00006540 fetch  0x00000002 , 0x000044e9 
+ 00025423  0x00006541 bbit1  0x00000009 , 0x0000431f 
+ 00025424  0x00006542 branch  0x0000632d 
+ 00025425  0x00006547 call  0x00007dbc 
+ 00025426  0x00006548 fetch  0x00000002 , 0x000044e9 
+ 00025427  0x00006549 bbit1  0x00000009 , 0x00006355 
+ 00025428  0x0000654a rtn 
+ 00025429  0x0000654d fetch  0x00000001 , 0x000044f1 
+ 00025430  0x0000654e rtn  0x00000034 
+ 00025431  0x0000654f branch  0x00007dba 
+ 00025432  0x00006555 call  0x00007dbc 
+ 00025433  0x00006556 fetch  0x00000002 , 0x000044e9 
+ 00025434  0x00006557 rtnbit1  0x00000009 
+ 00025435  0x00006558 branch  0x00007dba 
+ 00025436  0x00006561 branch  0x00006340 
+ 00025437  0x00006566 disable  0x0000002c 
+ 00025438  0x00006567 fetch  0x00000002 , 0x00004516 
+ 00025439  0x00006568 store  0x00000002 , 0x00004518 
+ 00025440  0x0000656a call  0x00006358 
+ 00025441  0x0000656b branch  0x0000635c , 0x00000028 
+ 00025442  0x0000656d call  0x00006351 
+ 00025443  0x0000656e nrtn  0x00000028 
+ 00025444  0x0000656f branch  0x00007dbe 
+ 00025445  0x00006574 call  0x0000635d 
+ 00025446  0x00006575 nrtn  0x0000002c 
+ 00025447  0x00006576 deposit  0x00000011 
+ 00025448  0x00006577 branch  0x0000636c , 0x00000034 
+ 00025449  0x00006579 call  0x00004323 
+ 00025450  0x0000657a arg  0x0000452e , 0x00000013 
+ 00025451  0x0000657b branch  0x0000636e 
+ 00025452  0x0000657e call  0x00004325 
+ 00025453  0x0000657f arg  0x00004556 , 0x00000013 
+ 00025454  0x00006582 arg  0x00000005 , 0x0000003f 
+ 00025455  0x00006583 imul32  0x00000007 , 0x0000003f 
+ 00025456  0x00006584 iadd  0x00000013 , 0x00000013 
+ 00025457  0x00006588 ifetch  0x00000001 , 0x00000013 
+ 00025458  0x00006589 rtn  0x00000034 
+ 00025459  0x0000658a call  0x00006382 
+ 00025460  0x0000658b increase  0x00000001 , 0x00000013 
+ 00025461  0x0000658c branch  0x00006371 
+ 00025462  0x00006590 fetch  0x00000002 , 0x000044e9 
+ 00025463  0x00006591 bbit1  0x00000009 , 0x00006379 
+ 00025464  0x00006592 rtn 
+ 00025465  0x00006595 call  0x00002a28 
+ 00025466  0x00006596 nrtn  0x00000034 
+ 00025467  0x00006597 call  0x00006385 
+ 00025468  0x00006598 nrtn  0x00000028 
+ 00025469  0x00006599 pincrease  0xffffffff 
+ 00025470  0x0000659a mul32  0x0000003f , 0x00000005 , 0x0000003f 
+ 00025471  0x0000659b arg  0x0000457e , 0x00000002 
+ 00025472  0x0000659c iadd  0x00000002 , 0x00000006 
+ 00025473  0x0000659d branch  0x000063cb 
+ 00025474  0x000065a2 store  0x00000001 , 0x00000670 
+ 00025475  0x000065a3 arg  0x00000670 , 0x00000011 
+ 00025476  0x000065a4 branch  0x000078b2 
+ 00025477  0x000065a7 arg  0x00000670 , 0x00000011 
+ 00025478  0x000065a8 call  0x000078ca 
+ 00025479  0x000065a9 nrtn  0x00000028 
+ 00025480  0x000065aa fetch  0x00000001 , 0x00000670 
+ 00025481  0x000065ab rtn 
+ 00025482  0x000065af fetch  0x00000002 , 0x00004398 
+ 00025483  0x000065b0 beq  0x00000018 , 0x000062e9 
+ 00025484  0x000065b1 rtn 
+ 00025485  0x000065b4 jam  0x00000002 , 0x000046c9 
+ 00025486  0x000065b6 setarg  0x00200008 
+ 00025487  0x000065b7 store  0x00000004 , 0x00004502 
+ 00025488  0x000065b8 setarg  0x012c0005 
+ 00025489  0x000065b9 istore  0x00000004 , 0x00000005 
+ 00025490  0x000065bc jam  0x00000017 , 0x000042e1 
+ 00025491  0x000065bf setarg  0x0000001b 
+ 00025492  0x000065c0 store  0x00000002 , 0x00004332 
+ 00025493  0x000065c1 branch  0x00002a41 
+ 00025494  0x000065c6 arg  0x00000028 , 0x00000039 
+ 00025495  0x000065c7 arg  0x0000457e , 0x00000005 
+ 00025496  0x000065c8 arg  0x000094f9 , 0x00000006 
+ 00025497  0x000065c9 branch  0x00007ccc 
+ 00025498  0x000065de arg  0x00000000 , 0x00000011 
+ 00025499  0x000065df arg  0x000046b2 , 0x00000013 
+ 00025500  0x000065e0 call  0x000077ca 
+ 00025501  0x000065e1 call  0x0000634e 
+ 00025502  0x000065e3 fetch  0x00000001 , 0x000046c9 
+ 00025503  0x000065e4 store  0x00000001 , 0x000046ca 
+ 00025504  0x000065e5 rtn 
+ 00025505  0x000065ea setarg  0x00000000 
+ 00025506  0x000065eb call  0x000063ad 
+ 00025507  0x000065ec jam  0x00000001 , 0x000044e4 
+ 00025508  0x000065ed call  0x00007776 
+ 00025509  0x000065ee call  0x00007780 
+ 00025510  0x000065f0 fetch  0x00000001 , 0x000046d0 
+ 00025511  0x000065f1 branch  0x000063aa , 0x00000034 
+ 00025512  0x000065f2 fetch  0x00000001 , 0x00008132 
+ 00025513  0x000065f3 bbit1  0x00000004 , 0x000063b9 
+ 00025514  0x000065f5 fetch  0x00000002 , 0x000044e9 
+ 00025515  0x000065f6 rtnbit1  0x0000000c 
+ 00025516  0x000065f7 branch  0x00004327 
+ 00025517  0x000065fa fetcht  0x00000002 , 0x00004430 
+ 00025518  0x000065fb istore  0x00000001 , 0x00000002 
+ 00025519  0x000065fc ifetch  0x00000001 , 0x00000005 
+ 00025520  0x000065fd store  0x00000001 , 0x000044eb 
+ 00025521  0x000065fe rtn 
+ 00025522  0x00006602 fetch  0x00000002 , 0x00004430 
+ 00025523  0x00006603 ifetch  0x00000001 , 0x0000003f 
+ 00025524  0x00006604 rtnne  0x00000000 
+ 00025525  0x00006605 branch  0x00004327 
+ 00025526  0x00006609 fetcht  0x00000002 , 0x00004430 
+ 00025527  0x0000660a ifetch  0x00000001 , 0x00000002 
+ 00025528  0x0000660b beq  0x00000001 , 0x000063c1 
+ 00025529  0x0000660d setarg  0x00000001 
+ 00025530  0x0000660e fetcht  0x00000002 , 0x00004430 
+ 00025531  0x0000660f istore  0x00000001 , 0x00000002 
+ 00025532  0x00006610 add  0x00000002 , 0x00000002 , 0x00000006 
+ 00025533  0x00006611 ifetch  0x00000001 , 0x00000006 
+ 00025534  0x00006612 istore  0x00000001 , 0x000044eb 
+ 00025535  0x00006613 ifetch  0x00000002 , 0x00000006 
+ 00025536  0x00006614 branch  0x00007d79 
+ 00025537  0x00006617 setarg  0x00000002 
+ 00025538  0x00006618 call  0x000063ad 
+ 00025539  0x00006619 add  0x00000002 , 0x00000005 , 0x00000006 
+ 00025540  0x0000661a ifetch  0x00000002 , 0x00000006 
+ 00025541  0x0000661b branch  0x00004327 , 0x00000034 
+ 00025542  0x0000661c branch  0x00007d79 
+ 00025543  0x00006622 store  0x00000002 , 0x000040a4 
+ 00025544  0x00006623 increase  0xfffffffc , 0x0000003f 
+ 00025545  0x00006624 store  0x00000002 , 0x00004389 
+ 00025546  0x00006625 rtn 
+ 00025547  0x00006628 ifetch  0x00000001 , 0x00000006 
+ 00025548  0x00006629 copy  0x0000003f , 0x00000011 
+ 00025549  0x0000662a ifetcht  0x00000002 , 0x00000006 
+ 00025550  0x0000662b call  0x00007c6d 
+ 00025551  0x0000662c call  0x00002dee 
+ 00025552  0x0000662d copy  0x00000011 , 0x00000039 
+ 00025553  0x0000662e call  0x00007c67 
+ 00025554  0x0000662f branch  0x00007cda 
+ 00025555  0x00006632 setarg  0x000093c0 
+ 00025556  0x00006633 store  0x00000002 , 0x000042f7 
+ 00025557  0x00006634 rtn 
+ 00025558  0x00006637 setarg  0x000046d2 
+ 00025559  0x00006638 store  0x00000002 , 0x000042f7 
+ 00025560  0x00006639 rtn 
+ 00025561  0x0000663d fetch  0x00000002 , 0x000046cb 
+ 00025562  0x0000663e store  0x00000002 , 0x00004526 
+ 00025563  0x0000663f fetch  0x00000001 , 0x000046cd 
+ 00025564  0x00006640 store  0x00000001 , 0x000046a9 
+ 00025565  0x00006641 store  0x00000001 , 0x000046b4 
+ 00025566  0x00006642 fetch  0x00000001 , 0x000046ce 
+ 00025567  0x00006643 store  0x00000001 , 0x0000451a 
+ 00025568  0x00006644 fetch  0x00000001 , 0x000046cf 
+ 00025569  0x00006645 store  0x00000001 , 0x0000451b 
+ 00025570  0x0000664b setarg  0x00000002 
+ 00025571  0x0000664c store  0x00000002 , 0x0000452e 
+ 00025572  0x0000664d store  0x00000002 , 0x00004533 
+ 00025573  0x0000664e setarg  0x00000006 
+ 00025574  0x0000664f store  0x00000002 , 0x00004556 
+ 00025575  0x00006650 store  0x00000002 , 0x0000455b 
+ 00025576  0x00006651 setarg  0x00000007 
+ 00025577  0x00006652 store  0x00000002 , 0x00004538 
+ 00025578  0x00006653 setarg  0x00000008 
+ 00025579  0x00006654 store  0x00000002 , 0x00004560 
+ 00025580  0x00006655 setarg  0x0000451c 
+ 00025581  0x00006656 store  0x00000002 , 0x00004430 
+ 00025582  0x00006657 setarg  0x00201400 
+ 00025583  0x00006658 store  0x00000003 , 0x0000451c 
+ 00025584  0x00006659 jam  0x00000001 , 0x00004094 
+ 00025585  0x0000665a setarg  0x00000100 
+ 00025586  0x0000665b store  0x00000002 , 0x000040a4 
+ 00025587  0x0000665c jam  0x00000008 , 0x000040a6 
+ 00025588  0x0000665d jam  0x00000005 , 0x000040c0 
+ 00025589  0x0000665e jam  0x00000002 , 0x000040c1 
+ 00025590  0x0000665f setarg  0x00000096 
+ 00025591  0x00006660 store  0x00000002 , 0x000044fa 
+ 00025592  0x00006661 istore  0x00000002 , 0x00000005 
+ 00025593  0x00006662 setarg  0x00000296 
+ 00025594  0x00006663 store  0x00000002 , 0x000044fe 
+ 00025595  0x00006664 istore  0x00000002 , 0x00000005 
+ 00025596  0x00006665 setsect  0x00000000 , 0x00000010 
+ 00025597  0x00006666 setsect  0x00000001 , 0x00008008 
+ 00025598  0x00006667 setsect  0x00000002 , 0x0002c000 
+ 00025599  0x00006668 setsect  0x00000003 , 0x00000004 
+ 00025600  0x00006669 store  0x00000008 , 0x0000450a 
+ 00025601  0x0000666a jam  0x00000001 , 0x000044ee 
+ 00025602  0x0000666b setarg  0x000046a7 
+ 00025603  0x0000666c store  0x00000002 , 0x000044ef 
+ 00025604  0x0000666d setarg  0x00000000 
+ 00025605  0x0000666e store  0x00000002 , 0x000046a7 
+ 00025606  0x0000666f setsect  0x00000000 , 0x000001a0 
+ 00025607  0x00006670 setsect  0x00000001 , 0x00000068 
+ 00025608  0x00006671 setsect  0x00000002 , 0x00000000 
+ 00025609  0x00006672 setsect  0x00000003 , 0x00000000 
+ 00025610  0x00006673 store  0x00000008 , 0x000046aa 
+ 00025611  0x00006674 setarg  0x00000301 
+ 00025612  0x00006675 store  0x00000002 , 0x000046b2 
+ 00025613  0x00006676 setsect  0x00000000 , 0x000001a0 
+ 00025614  0x00006677 setsect  0x00000001 , 0x000000e8 
+ 00025615  0x00006678 setsect  0x00000002 , 0x00000000 
+ 00025616  0x00006679 setsect  0x00000003 , 0x00000000 
+ 00025617  0x0000667a store  0x00000008 , 0x000046b5 
+ 00025618  0x0000667b setarg  0x0000000e 
+ 00025619  0x0000667c store  0x00000002 , 0x000044f2 
+ 00025620  0x0000667d setarg  0x00000140 
+ 00025621  0x0000667e store  0x00000002 , 0x000044f4 
+ 00025622  0x0000667f store  0x00000002 , 0x00004389 
+ 00025623  0x00006680 setarg  0x00000050 
+ 00025624  0x00006681 store  0x00000002 , 0x000044f6 
+ 00025625  0x00006682 jam  0x00000007 , 0x00004393 
+ 00025626  0x00006683 jam  0x00000000 , 0x00004388 
+ 00025627  0x00006684 setsect  0x00000000 , 0x000000fb 
+ 00025628  0x00006685 setsect  0x00000001 , 0x0002c212 
+ 00025629  0x00006686 setsect  0x00000002 , 0x0000800f 
+ 00025630  0x00006687 setsect  0x00000003 , 0x00000021 
+ 00025631  0x00006688 store  0x00000008 , 0x000043c0 
+ 00025632  0x00006689 setsect  0x00000000 , 0x00000bb8 
+ 00025633  0x0000668a setsect  0x00000001 , 0x000002ee 
+ 00025634  0x0000668b store  0x00000004 , 0x00004512 
+ 00025635  0x0000668c setarg  0x000045d8 
+ 00025636  0x0000668d store  0x00000002 , 0x000043fb 
+ 00025637  0x0000668e setarg  0x00002001 
+ 00025638  0x0000668f store  0x00000002 , 0x000045d8 
+ 00025639  0x00006690 jam  0x0000001f , 0x00004348 
+ 00025640  0x00006691 setsect  0x00000000 , 0x00010102 
+ 00025641  0x00006692 setsect  0x00000001 , 0x000080c1 
+ 00025642  0x00006693 setsect  0x00000002 , 0x00018120 
+ 00025643  0x00006694 setsect  0x00000003 , 0x0000640c 
+ 00025644  0x00006695 store  0x00000009 , 0x00004349 
+ 00025645  0x00006696 setsect  0x00000000 , 0x000003c1 
+ 00025646  0x00006697 istore  0x00000002 , 0x00000005 
+ 00025647  0x00006698 jam  0x0000001f , 0x00004368 
+ 00025648  0x00006699 setsect  0x00000000 , 0x0002090d 
+ 00025649  0x0000669a setsect  0x00000001 , 0x00034c15 
+ 00025650  0x0000669b setsect  0x00000002 , 0x00028532 
+ 00025651  0x0000669c setsect  0x00000003 , 0x0001d1d5 
+ 00025652  0x0000669d store  0x00000009 , 0x00004369 
+ 00025653  0x0000669e setsect  0x00000000 , 0x00026574 
+ 00025654  0x0000669f setsect  0x00000001 , 0x0000001c 
+ 00025655  0x000066a0 istore  0x00000003 , 0x00000005 
+ 00025656  0x000066a1 setarg  0x00004523 
+ 00025657  0x000066a2 store  0x00000002 , 0x0000442c 
+ 00025658  0x000066a3 jam  0x00000002 , 0x00004523 
+ 00025659  0x000066a4 setarg  0x000045fd 
+ 00025660  0x000066a5 store  0x00000002 , 0x000043f8 
+ 00025661  0x000066a6 jam  0x00000005 , 0x000043fa 
+ 00025662  0x000066a7 fetch  0x00000001 , 0x000046d1 
+ 00025663  0x000066a8 beq  0x00000000 , 0x000063d3 
+ 00025664  0x000066a9 beq  0x00000001 , 0x000063d6 
+ 00025665  0x000066aa rtn 
+ 00025666  0x000066b8 fetch  0x00000006 , 0x00004ee4 
+ 00025667  0x000066b9 store  0x00000006 , 0x00004526 
+ 00025668  0x000066ba jam  0x00000006 , 0x00004523 
+ 00025669  0x000066bb setarg  0x00004523 
+ 00025670  0x000066bc store  0x00000002 , 0x0000442c 
+ 00025671  0x000066bd rtn 
+ 00025672  0x000066c1 fetch  0x00000007 , 0x00004ee4 
+ 00025673  0x000066c2 store  0x00000007 , 0x00004526 
+ 00025674  0x000066c3 jam  0x00000007 , 0x00004523 
+ 00025675  0x000066c4 setarg  0x00004523 
+ 00025676  0x000066c5 store  0x00000002 , 0x0000442c 
+ 00025677  0x000066c6 rtn 
+ 00025678  0x000066ca fetch  0x00000008 , 0x00004ee4 
+ 00025679  0x000066cb store  0x00000008 , 0x00004526 
+ 00025680  0x000066cc jam  0x00000008 , 0x00004523 
+ 00025681  0x000066cd setarg  0x00004523 
+ 00025682  0x000066ce store  0x00000002 , 0x0000442c 
+ 00025683  0x000066cf rtn 
+ 00025684  0x000066d2 fetch  0x00000001 , 0x00004ee3 
+ 00025685  0x000066d3 beq  0x00000006 , 0x00006442 
+ 00025686  0x000066d4 beq  0x00000007 , 0x00006448 
+ 00025687  0x000066d5 beq  0x00000008 , 0x0000644e 
+ 00025688  0x000066d6 rtn 
+ 00025689  0x000066d9 bpatch  0x000000a1 , 0x00004014 
+ 00025690  0x000066db fetch  0x00000008 , 0x00004f0a 
+ 00025691  0x000066dc store  0x00000008 , 0x00004512 
+ 00025692  0x000066dd setarg  0x00000096 
+ 00025693  0x000066de store  0x00000002 , 0x000044f6 
+ 00025694  0x000066e0 fetch  0x00000007 , 0x00004f5a 
+ 00025695  0x000066e1 store  0x00000007 , 0x000046a7 
+ 00025696  0x000066e2 fetch  0x00000007 , 0x00004f61 
+ 00025697  0x000066e3 store  0x00000007 , 0x000046b2 
+ 00025698  0x000066e5 fetch  0x00000004 , 0x00004f68 
+ 00025699  0x000066e6 store  0x00000004 , 0x000044fa 
+ 00025700  0x000066e7 fetch  0x00000004 , 0x00004f6c 
+ 00025701  0x000066e8 store  0x00000004 , 0x000044fe 
+ 00025702  0x000066ea setarg  0x0000000e 
+ 00025703  0x000066eb store  0x00000002 , 0x000044f2 
+ 00025704  0x000066ec setarg  0x00000140 
+ 00025705  0x000066ed store  0x00000002 , 0x000044f4 
+ 00025706  0x000066ee store  0x00000002 , 0x00004389 
+ 00025707  0x000066f5 fetch  0x00000008 , 0x00004f02 
+ 00025708  0x000066f6 store  0x00000008 , 0x0000450a 
+ 00025709  0x000066f7 rtn 
+ 00025710  0x000066fc call  0x00007396 
+ 00025711  0x000066fd rtn  0x0000002b 
+ 00025712  0x000066ff call  0x00006454 
+ 00025713  0x00006700 call  0x00006459 
+ 00025714  0x00006703 setarg  0x00006484 
+ 00025715  0x00006704 store  0x00000002 , 0x000043db 
+ 00025716  0x00006706 setarg  0x000064df 
+ 00025717  0x00006707 store  0x00000002 , 0x000043dd 
+ 00025718  0x00006709 setarg  0x000066c5 
+ 00025719  0x0000670a store  0x00000002 , 0x000043df 
+ 00025720  0x0000670c setarg  0x000064b5 
+ 00025721  0x0000670d store  0x00000002 , 0x000043e3 
+ 00025722  0x0000670f setarg  0x00006505 
+ 00025723  0x00006710 store  0x00000002 , 0x00004524 
+ 00025724  0x00006712 call  0x000062c2 
+ 00025725  0x00006714 fetch  0x00000002 , 0x00004f87 
+ 00025726  0x00006715 store  0x00000002 , 0x00004332 
+ 00025727  0x00006716 fetch  0x00000008 , 0x0000450a 
+ 00025728  0x00006717 store  0x00000008 , 0x00004502 
+ 00025729  0x00006718 call  0x0000648e 
+ 00025730  0x00006719 bpatch  0x000000a2 , 0x00004014 
+ 00025731  0x0000671a branch  0x000062bd 
+ 00025732  0x0000671e call  0x0000649b 
+ 00025733  0x0000671f arg  0x00000009 , 0x00000007 
+ 00025734  0x00006720 call  0x00007cef 
+ 00025735  0x00006721 nrtn  0x00000034 
+ 00025736  0x00006722 setarg  0x00000020 
+ 00025737  0x00006723 arg  0x00000009 , 0x00000007 
+ 00025738  0x00006724 call  0x00007ce1 
+ 00025739  0x00006725 disable  0x00000028 
+ 00025740  0x00006726 call  0x0000701b 
+ 00025741  0x00006727 branch  0x0000656e 
+ 00025742  0x0000672a setarg  0x0000001f 
+ 00025743  0x0000672b mul32  0x0000003f , 0x0000000a , 0x0000003f 
+ 00025744  0x0000672c arg  0x00004c02 , 0x00000002 
+ 00025745  0x0000672d iadd  0x00000002 , 0x00000011 
+ 00025746  0x0000672e increase  0x00000003 , 0x00000011 
+ 00025747  0x0000672f arg  0x00000072 , 0x00000002 
+ 00025748  0x00006730 istoret  0x00000001 , 0x00000011 
+ 00025749  0x00006731 increase  0x0000000b , 0x00000011 
+ 00025750  0x00006732 arg  0x00000fff , 0x0000003f 
+ 00025751  0x00006733 isub  0x00000002 , 0x0000003f 
+ 00025752  0x00006734 lshift4  0x0000003f , 0x0000003f 
+ 00025753  0x00006735 istore  0x00000002 , 0x00000011 
+ 00025754  0x00006736 rtn 
+ 00025755  0x00006739 fetch  0x00000002 , 0x000044e9 
+ 00025756  0x0000673a bbit1  0x00000009 , 0x000064a0 
+ 00025757  0x0000673b arg  0x000045da , 0x00000005 
+ 00025758  0x0000673c arg  0x00000023 , 0x00000039 
+ 00025759  0x0000673d branch  0x00007ca1 
+ 00025760  0x00006740 call  0x00002a28 
+ 00025761  0x00006741 nrtn  0x00000034 
+ 00025762  0x00006742 call  0x000078fa 
+ 00025763  0x00006743 rtn  0x00000034 
+ 00025764  0x00006744 fetcht  0x00000004 , 0x000049e6 
+ 00025765  0x00006745 copy  0x00000022 , 0x0000003f 
+ 00025766  0x00006746 isub  0x00000002 , 0x00000002 
+ 00025767  0x00006747 rtn  0x00000005 
+ 00025768  0x00006748 nbranch  0x000064ac , 0x00000002 
+ 00025769  0x00006749 fetch  0x00000001 , 0x000049e5 
+ 00025770  0x0000674a isub  0x00000002 , 0x0000003e 
+ 00025771  0x0000674b rtn  0x00000002 
+ 00025772  0x0000674d copy  0x00000022 , 0x0000003f 
+ 00025773  0x0000674e store  0x00000004 , 0x000049e6 
+ 00025774  0x0000674f call  0x00006385 
+ 00025775  0x00006750 nrtn  0x00000028 
+ 00025776  0x00006751 pincrease  0xffffffff 
+ 00025777  0x00006752 mul32  0x0000003f , 0x0000000a , 0x0000003f 
+ 00025778  0x00006753 arg  0x00004c02 , 0x00000002 
+ 00025779  0x00006754 iadd  0x00000002 , 0x00000006 
+ 00025780  0x00006755 branch  0x000063cb 
+ 00025781  0x00006759 call  0x00006858 
+ 00025782  0x0000675a call  0x0000676c 
+ 00025783  0x0000675b call  0x0000675a 
+ 00025784  0x0000675c call  0x000064bc 
+ 00025785  0x0000675d call  0x000064d3 
+ 00025786  0x0000675e call  0x00006311 
+ 00025787  0x0000675f branch  0x000064d9 
+ 00025788  0x00006762 arg  0x00004ec1 , 0x00000013 
+ 00025789  0x00006763 arg  0x000064bf , 0x00000012 
+ 00025790  0x00006764 branch  0x000042e0 
+ 00025791  0x00006767 call  0x000078fa 
+ 00025792  0x00006768 nrtn  0x00000034 
+ 00025793  0x00006769 fetch  0x00000002 , 0x000048ac 
+ 00025794  0x0000676a nrtn  0x00000034 
+ 00025795  0x0000676c call  0x00006730 
+ 00025796  0x0000676d branch  0x000064cd , 0x00000034 
+ 00025797  0x0000676e copy  0x00000007 , 0x0000003f 
+ 00025798  0x0000676f compare  0x00000004 , 0x0000003f , 0x00000007 
+ 00025799  0x00006770 branch  0x000064cf , 0x00000001 
+ 00025800  0x00006772 copy  0x00000007 , 0x0000003f 
+ 00025801  0x00006773 compare  0x00000001 , 0x0000003f , 0x00000007 
+ 00025802  0x00006774 branch  0x000064d1 , 0x00000001 
+ 00025803  0x00006775 arg  0x00004eb6 , 0x00000013 
+ 00025804  0x00006776 branch  0x00006371 
+ 00025805  0x00006779 arg  0x00004eca , 0x00000013 
+ 00025806  0x0000677a branch  0x00006371 
+ 00025807  0x0000677d arg  0x00004ecf , 0x00000013 
+ 00025808  0x0000677e branch  0x00006371 
+ 00025809  0x00006781 arg  0x00004ed9 , 0x00000013 
+ 00025810  0x00006782 branch  0x00006371 
+ 00025811  0x00006785 arg  0x00004bff , 0x00000013 
+ 00025812  0x00006786 arg  0x000064d6 , 0x00000012 
+ 00025813  0x00006787 branch  0x000042e0 
+ 00025814  0x0000678a arg  0x0000000a , 0x00000039 
+ 00025815  0x0000678b arg  0x000049f4 , 0x00000005 
+ 00025816  0x0000678c branch  0x00007ca1 
+ 00025817  0x00006790 arg  0x000046ca , 0x00000013 
+ 00025818  0x00006791 arg  0x000064dc , 0x00000012 
+ 00025819  0x00006792 branch  0x000042e0 
+ 00025820  0x00006794 fetch  0x00000002 , 0x000044e9 
+ 00025821  0x00006795 bbit1  0x00000009 , 0x0000639e 
+ 00025822  0x00006796 branch  0x00004327 
+ 00025823  0x00006799 copy  0x00000013 , 0x0000003f 
+ 00025824  0x0000679a beq  0x00000014 , 0x000064f4 
+ 00025825  0x0000679b beq  0x00000015 , 0x000064ef 
+ 00025826  0x0000679c beq  0x00000031 , 0x000064e6 
+ 00025827  0x0000679d rtneq  0x00000040 
+ 00025828  0x0000679e beq  0x00000032 , 0x000066c8 
+ 00025829  0x0000679f branch  0x000062d9 
+ 00025830  0x000067a2 jam  0x00000001 , 0x00004ec2 
+ 00025831  0x000067a3 call  0x00006783 
+ 00025832  0x000067a5 fetch  0x00000002 , 0x00004f74 
+ 00025833  0x000067a6 store  0x00000002 , 0x00004eae 
+ 00025834  0x000067a8 fetcht  0x00000002 , 0x00004f76 
+ 00025835  0x000067a9 setarg  0x00000fff 
+ 00025836  0x000067aa isub  0x00000002 , 0x0000003f 
+ 00025837  0x000067ab store  0x00000002 , 0x00004eb0 
+ 00025838  0x000067ac rtn 
+ 00025839  0x000067af jam  0x00000000 , 0x00004eab 
+ 00025840  0x000067b0 jam  0x00000000 , 0x00004ec2 
+ 00025841  0x000067b1 call  0x000065ad 
+ 00025842  0x000067b2 call  0x00006500 
+ 00025843  0x000067b3 branch  0x000062e6 
+ 00025844  0x000067b6 copy  0x00000022 , 0x0000003f 
+ 00025845  0x000067b7 store  0x00000004 , 0x000049e6 
+ 00025846  0x000067b8 call  0x00006729 
+ 00025847  0x000067b9 branch  0x000062e2 
+ 00025848  0x000067bd disable  0x0000002c 
+ 00025849  0x000067be fetch  0x00000002 , 0x00004516 
+ 00025850  0x000067bf store  0x00000002 , 0x00004518 
+ 00025851  0x000067c0 call  0x00006358 
+ 00025852  0x000067c1 branch  0x0000635c , 0x00000028 
+ 00025853  0x000067c2 call  0x00006351 
+ 00025854  0x000067c3 nrtn  0x00000028 
+ 00025855  0x000067c4 branch  0x00007dbe 
+ 00025856  0x000067c7 jam  0x00000000 , 0x00004ec5 
+ 00025857  0x000067c8 rtn 
+ 00025858  0x000067cb copy  0x00000007 , 0x0000003f 
+ 00025859  0x000067cc rtnne  0x00000001 
+ 00025860  0x000067cd branch  0x0000650c 
+ 00025861  0x000067d0 call  0x000064f8 
+ 00025862  0x000067d1 nrtn  0x0000002c 
+ 00025863  0x000067d2 deposit  0x00000011 
+ 00025864  0x000067d3 branch  0x00006537 , 0x00000034 
+ 00025865  0x000067d5 bpatch  0x000000a3 , 0x00004014 
+ 00025866  0x000067d6 fetch  0x00000001 , 0x00004f9f 
+ 00025867  0x000067d7 nbranch  0x00006502 , 0x00000034 
+ 00025868  0x000067d9 jam  0x00000001 , 0x00004c00 
+ 00025869  0x000067da call  0x00004323 
+ 00025870  0x000067db call  0x0000652c 
+ 00025871  0x000067dc call  0x00006561 
+ 00025872  0x000067dd branch  0x00006500 , 0x00000002 
+ 00025873  0x000067de copy  0x00000007 , 0x0000003f 
+ 00025874  0x000067df fetcht  0x00000001 , 0x00004ec5 
+ 00025875  0x000067e0 isub  0x00000002 , 0x0000003e 
+ 00025876  0x000067e1 ncall  0x00006526 , 0x00000005 
+ 00025877  0x000067e2 copy  0x00000007 , 0x0000003f 
+ 00025878  0x000067e3 store  0x00000001 , 0x00004ec5 
+ 00025879  0x000067e4 fetcht  0x00000001 , 0x00004ec8 
+ 00025880  0x000067e5 isub  0x00000002 , 0x0000003e 
+ 00025881  0x000067e6 branch  0x00006524 , 0x00000005 
+ 00025882  0x000067e7 fetch  0x00000001 , 0x00004ec9 
+ 00025883  0x000067e8 nbranch  0x0000651f , 0x00000034 
+ 00025884  0x000067ea call  0x00006732 
+ 00025885  0x000067eb arg  0x0000000a , 0x0000003f 
+ 00025886  0x000067ec branch  0x0000655a 
+ 00025887  0x000067ef call  0x0000677f 
+ 00025888  0x000067f0 copy  0x00000007 , 0x0000003f 
+ 00025889  0x000067f1 beq  0x00000001 , 0x0000651c 
+ 00025890  0x000067f2 call  0x00006642 
+ 00025891  0x000067f3 branch  0x000065f4 
+ 00025892  0x000067f6 jam  0x00000001 , 0x00004ec6 
+ 00025893  0x000067f7 branch  0x000065f4 
+ 00025894  0x000067fa bpatch  0x000000a4 , 0x00004014 
+ 00025895  0x000067fb fetch  0x00000001 , 0x00004ec9 
+ 00025896  0x000067fc branch  0x000064c3 , 0x00000034 
+ 00025897  0x000067fd copy  0x00000007 , 0x0000003f 
+ 00025898  0x000067fe beq  0x00000001 , 0x000064c3 
+ 00025899  0x000067ff rtn 
+ 00025900  0x00006801 arg  0x0000000a , 0x0000003f 
+ 00025901  0x00006802 imul32  0x00000007 , 0x0000003f 
+ 00025902  0x00006803 arg  0x000049ea , 0x00000013 
+ 00025903  0x00006804 iadd  0x00000013 , 0x00000013 
+ 00025904  0x00006805 copy  0x00000022 , 0x0000003f 
+ 00025905  0x00006806 istore  0x00000004 , 0x00000013 
+ 00025906  0x00006807 increase  0x00000004 , 0x00000013 
+ 00025907  0x00006808 ifetch  0x00000001 , 0x00000013 
+ 00025908  0x00006809 increase  0x00000001 , 0x0000003f 
+ 00025909  0x0000680a istore  0x00000001 , 0x00000013 
+ 00025910  0x0000680b rtn 
+ 00025911  0x0000680d bpatch  0x000000a5 , 0x00004014 
+ 00025912  0x0000680e fetch  0x00000001 , 0x00004ec9 
+ 00025913  0x0000680f call  0x0000654b , 0x00000034 
+ 00025914  0x00006811 arg  0x0000000a , 0x0000003f 
+ 00025915  0x00006812 imul32  0x00000007 , 0x0000003f 
+ 00025916  0x00006813 arg  0x000049ea , 0x00000013 
+ 00025917  0x00006814 iadd  0x00000013 , 0x00000013 
+ 00025918  0x00006815 ifetcht  0x00000004 , 0x00000013 
+ 00025919  0x00006816 sub  0x00000002 , 0x00000000 , 0x0000003e 
+ 00025920  0x00006817 rtn  0x00000005 
+ 00025921  0x00006818 copy  0x00000022 , 0x0000003f 
+ 00025922  0x00006819 isub  0x00000002 , 0x00000002 
+ 00025923  0x0000681a ncall  0x00007806 , 0x00000002 
+ 00025924  0x0000681b add  0x00000013 , 0x00000009 , 0x00000006 
+ 00025925  0x0000681c ifetch  0x00000001 , 0x00000006 
+ 00025926  0x0000681d nbranch  0x00006566 , 0x00000034 
+ 00025927  0x0000681e increase  0x00000005 , 0x00000013 
+ 00025928  0x0000681f copy  0x00000022 , 0x0000003f 
+ 00025929  0x00006820 istore  0x00000004 , 0x00000013 
+ 00025930  0x00006821 rtn 
+ 00025931  0x00006824 fetch  0x00000001 , 0x00004f9f 
+ 00025932  0x00006825 nbranch  0x00004323 , 0x00000034 
+ 00025933  0x00006826 branch  0x00004325 
+ 00025934  0x00006829 add  0x00000013 , 0x00000004 , 0x00000006 
+ 00025935  0x0000682a ifetch  0x00000001 , 0x00000006 
+ 00025936  0x0000682b branch  0x00006551 
+ 00025937  0x0000682e call  0x0000656b 
+ 00025938  0x0000682f fetch  0x00000001 , 0x00004ec9 
+ 00025939  0x00006830 nbranch  0x0000655d , 0x00000034 
+ 00025940  0x00006832 call  0x00006561 
+ 00025941  0x00006833 branch  0x00006500 , 0x00000002 
+ 00025942  0x00006834 call  0x00006738 
+ 00025943  0x00006835 copy  0x00000007 , 0x0000003f 
+ 00025944  0x00006836 beq  0x00000003 , 0x00006740 
+ 00025945  0x00006837 arg  0x0000000f , 0x0000003f 
+ 00025946  0x00006839 imul32  0x00000007 , 0x0000003f 
+ 00025947  0x0000683a iadd  0x00000013 , 0x00000013 
+ 00025948  0x0000683b branch  0x00006371 
+ 00025949  0x0000683e copy  0x00000007 , 0x0000003f 
+ 00025950  0x0000683f beq  0x00000001 , 0x00006554 
+ 00025951  0x00006840 beq  0x00000003 , 0x00006554 
+ 00025952  0x00006841 rtn 
+ 00025953  0x00006844 call  0x00007902 
+ 00025954  0x00006845 ifetcht  0x00000001 , 0x00000006 
+ 00025955  0x00006846 isub  0x00000002 , 0x0000003f 
+ 00025956  0x00006847 sub  0x0000003f , 0x0000000a , 0x0000003e 
+ 00025957  0x00006848 rtn 
+ 00025958  0x0000684b jam  0x00000001 , 0x00004ec0 
+ 00025959  0x0000684c call  0x0000656b 
+ 00025960  0x0000684d arg  0x00004aae , 0x00000013 
+ 00025961  0x0000684e arg  0x00000003 , 0x0000003f 
+ 00025962  0x0000684f branch  0x0000655a 
+ 00025963  0x00006852 arg  0x0000000a , 0x00000039 
+ 00025964  0x00006853 copy  0x00000013 , 0x00000005 
+ 00025965  0x00006854 branch  0x00007ca1 
+ 00025966  0x00006857 fetch  0x00000002 , 0x000048ac 
+ 00025967  0x00006858 store  0x00000002 , 0x0000442e 
+ 00025968  0x00006859 call  0x000065be 
+ 00025969  0x0000685a fetch  0x00000002 , 0x0000442e 
+ 00025970  0x0000685b store  0x00000002 , 0x000048ac 
+ 00025971  0x0000685d arg  0x00000000 , 0x00000007 
+ 00025972  0x0000685e fetch  0x00000001 , 0x00004523 
+ 00025973  0x0000685f copy  0x0000003f , 0x00000039 
+ 00025974  0x00006860 arg  0x000049ea , 0x00000013 
+ 00025975  0x00006862 copy  0x00000039 , 0x0000003f 
+ 00025976  0x00006863 store  0x00000002 , 0x00000678 
+ 00025977  0x00006864 copy  0x00000013 , 0x0000003f 
+ 00025978  0x00006865 store  0x00000002 , 0x0000068c 
+ 00025979  0x00006866 copy  0x00000007 , 0x0000003f 
+ 00025980  0x00006867 store  0x00000002 , 0x0000067a 
+ 00025981  0x00006868 call  0x000065b4 
+ 00025982  0x0000686a fetch  0x00000002 , 0x0000068c 
+ 00025983  0x0000686b copy  0x0000003f , 0x00000013 
+ 00025984  0x0000686c fetch  0x00000002 , 0x0000067a 
+ 00025985  0x0000686d copy  0x0000003f , 0x00000007 
+ 00025986  0x0000686e call  0x0000658b 
+ 00025987  0x00006870 fetch  0x00000002 , 0x0000067a 
+ 00025988  0x00006871 add  0x0000003f , 0x00000001 , 0x00000007 
+ 00025989  0x00006872 fetch  0x00000002 , 0x0000068c 
+ 00025990  0x00006873 add  0x0000003f , 0x0000000a , 0x00000013 
+ 00025991  0x00006874 fetch  0x00000002 , 0x00000678 
+ 00025992  0x00006875 copy  0x0000003f , 0x00000039 
+ 00025993  0x00006876 loop  0x00006577 
+ 00025994  0x00006877 rtn 
+ 00025995  0x0000687a ifetch  0x00000004 , 0x00000013 
+ 00025996  0x0000687b rtn  0x00000034 
+ 00025997  0x0000687c copy  0x0000003f , 0x00000002 
+ 00025998  0x0000687d copy  0x00000022 , 0x0000003f 
+ 00025999  0x0000687e isub  0x00000002 , 0x00000002 
+ 00026000  0x0000687f nrtn  0x00000002 
+ 00026001  0x00006880 setarg  0x000009c4 
+ 00026002  0x00006881 isub  0x00000002 , 0x0000003e 
+ 00026003  0x00006882 rtn  0x00000002 
+ 00026004  0x00006883 copy  0x00000022 , 0x0000003f 
+ 00026005  0x00006884 istore  0x00000004 , 0x00000013 
+ 00026006  0x00006885 increase  0x00000009 , 0x00000013 
+ 00026007  0x00006886 setarg  0x00000001 
+ 00026008  0x00006887 istore  0x00000001 , 0x00000013 
+ 00026009  0x00006888 fetch  0x00000001 , 0x00004ec0 
+ 00026010  0x00006889 rtn  0x00000034 
+ 00026011  0x0000688a jam  0x00000000 , 0x00004ec0 
+ 00026012  0x0000688b bpatch  0x000000a6 , 0x00004014 
+ 00026013  0x0000688c call  0x00006755 
+ 00026014  0x0000688d fetch  0x00000001 , 0x00004ec7 
+ 00026015  0x0000688e beq  0x00000000 , 0x000065a2 
+ 00026016  0x0000688f beq  0x00000001 , 0x000065a5 
+ 00026017  0x00006890 rtn 
+ 00026018  0x00006893 call  0x000065af 
+ 00026019  0x00006894 arg  0x00000003 , 0x0000003f 
+ 00026020  0x00006895 branch  0x0000655a 
+ 00026021  0x00006898 copy  0x00000007 , 0x0000003f 
+ 00026022  0x00006899 fetcht  0x00000001 , 0x00004ec8 
+ 00026023  0x0000689a isub  0x00000002 , 0x0000003e 
+ 00026024  0x0000689b nbranch  0x000065a2 , 0x00000005 
+ 00026025  0x0000689c fetch  0x00000001 , 0x00004ec9 
+ 00026026  0x0000689d setflip  0x00000000 , 0x0000003f 
+ 00026027  0x0000689e store  0x00000001 , 0x00004ec9 
+ 00026028  0x0000689f nrtn  0x00000034 
+ 00026029  0x000068a1 jam  0x00000000 , 0x00004ec9 
+ 00026030  0x000068a2 branch  0x00004325 
+ 00026031  0x000068a5 arg  0x00004a99 , 0x00000013 
+ 00026032  0x000068a6 call  0x00006730 
+ 00026033  0x000068a7 rtn  0x00000034 
+ 00026034  0x000068a8 arg  0x00004bc0 , 0x00000013 
+ 00026035  0x000068a9 rtn 
+ 00026036  0x000068ac add  0x00000013 , 0x00000005 , 0x00000012 
+ 00026037  0x000068ad ifetch  0x00000004 , 0x00000012 
+ 00026038  0x000068ae rtn  0x00000034 
+ 00026039  0x000068af copy  0x0000003f , 0x00000002 
+ 00026040  0x000068b0 copy  0x00000022 , 0x0000003f 
+ 00026041  0x000068b1 isub  0x00000002 , 0x00000002 
+ 00026042  0x000068b2 ncall  0x00007806 , 0x00000002 
+ 00026043  0x000068b3 setarg  0x000003e8 
+ 00026044  0x000068b4 isub  0x00000002 , 0x0000003e 
+ 00026045  0x000068b5 branch  0x0000654e 
+ 00026046  0x000068b7 fetch  0x00000002 , 0x0000442c 
+ 00026047  0x000068b8 ifetch  0x00000001 , 0x0000003f 
+ 00026048  0x000068b9 rtn  0x00000034 
+ 00026049  0x000068bb setarg  0x00000000 
+ 00026050  0x000068bc store  0x00000002 , 0x000006f1 
+ 00026051  0x000068bd call  0x00007003 
+ 00026052  0x000068be nbranch  0x000077a5 , 0x00000028 
+ 00026053  0x000068bf call  0x000077a3 
+ 00026054  0x000068c0 disable  0x00000028 
+ 00026055  0x000068c1 fetch  0x00000001 , 0x00004388 
+ 00026056  0x000068c2 nrtn  0x00000034 
+ 00026057  0x000068c3 bpatch  0x000000a7 , 0x00004014 
+ 00026058  0x000068c4 fetch  0x00000001 , 0x00004ec7 
+ 00026059  0x000068c5 beq  0x00000001 , 0x000065cf 
+ 00026060  0x000068c6 call  0x00006628 
+ 00026061  0x000068c7 call  0x000065dc 
+ 00026062  0x000068c8 rtn  0x00000028 
+ 00026063  0x000068ca call  0x000065d5 
+ 00026064  0x000068cb fetch  0x00000002 , 0x000006f1 
+ 00026065  0x000068cc store  0x00000002 , 0x000006f8 
+ 00026066  0x000068cd jam  0x00000000 , 0x000006fa 
+ 00026067  0x000068ce force  0x00000000 , 0x00000007 
+ 00026068  0x000068cf branch  0x0000703b 
+ 00026069  0x000068d2 fetch  0x00000001 , 0x00004ec5 
+ 00026070  0x000068d3 fetcht  0x00000001 , 0x00004ec8 
+ 00026071  0x000068d4 isub  0x00000002 , 0x0000003e 
+ 00026072  0x000068d5 branch  0x00004323 , 0x00000005 
+ 00026073  0x000068d6 fetch  0x00000001 , 0x00004ec9 
+ 00026074  0x000068d7 nbranch  0x00004325 , 0x00000034 
+ 00026075  0x000068d8 rtn 
+ 00026076  0x000068db arg  0x00000000 , 0x00000007 
+ 00026077  0x000068dd arg  0x00004ac3 , 0x00000012 
+ 00026078  0x000068de arg  0x00000002 , 0x0000003f 
+ 00026079  0x000068df imul32  0x00000007 , 0x0000003f 
+ 00026080  0x000068e0 iadd  0x00000012 , 0x00000012 
+ 00026081  0x000068e1 ifetch  0x00000002 , 0x00000012 
+ 00026082  0x000068e3 rtn  0x00000034 
+ 00026083  0x000068e4 fetcht  0x00000002 , 0x000006f1 
+ 00026084  0x000068e5 ixor  0x00000002 , 0x0000003e 
+ 00026085  0x000068e6 branch  0x000065e8 , 0x00000005 
+ 00026086  0x000068e7 increase  0x00000001 , 0x00000007 
+ 00026087  0x000068e8 branch  0x000065dd 
+ 00026088  0x000068eb store  0x00000002 , 0x00004acf 
+ 00026089  0x000068ec call  0x00004323 
+ 00026090  0x000068ed arg  0x00004ad1 , 0x00000013 
+ 00026091  0x000068ee arg  0x0000000a , 0x0000003f 
+ 00026092  0x000068ef imul32  0x00000007 , 0x0000003f 
+ 00026093  0x000068f0 iadd  0x00000013 , 0x00000013 
+ 00026094  0x000068f1 call  0x000065f0 
+ 00026095  0x000068f2 branch  0x00006633 
+ 00026096  0x000068f5 call  0x0000677f 
+ 00026097  0x000068f6 ifetch  0x00000001 , 0x00000013 
+ 00026098  0x000068f7 rtn  0x00000034 
+ 00026099  0x000068f8 call  0x00006642 
+ 00026100  0x000068fa call  0x0000677f 
+ 00026101  0x000068fb call  0x00006609 
+ 00026102  0x000068fc call  0x00006614 
+ 00026103  0x000068fd call  0x0000661e 
+ 00026104  0x000068fe arg  0x00000005 , 0x0000003f 
+ 00026105  0x000068ff call  0x00006382 
+ 00026106  0x00006900 call  0x00006730 
+ 00026107  0x00006901 rtn  0x00000034 
+ 00026108  0x00006902 jam  0x00000078 , 0x000049e5 
+ 00026109  0x00006903 arg  0x00000006 , 0x0000003f 
+ 00026110  0x00006904 branch  0x00006382 
+ 00026111  0x00006907 fetcht  0x00000001 , 0x00004eaa 
+ 00026112  0x00006908 call  0x00006730 
+ 00026113  0x00006909 rtn  0x00000034 
+ 00026114  0x0000690a fetcht  0x00000001 , 0x00004ead 
+ 00026115  0x0000690b increase  0x00000001 , 0x00000002 
+ 00026116  0x0000690c fetch  0x00000001 , 0x00004ec6 
+ 00026117  0x0000690d rtn  0x00000034 
+ 00026118  0x0000690e fetcht  0x00000001 , 0x00004eaa 
+ 00026119  0x0000690f jam  0x00000000 , 0x00004ec6 
+ 00026120  0x00006910 rtn 
+ 00026121  0x00006913 call  0x000065ff 
+ 00026122  0x00006914 copy  0x00000002 , 0x0000003f 
+ 00026123  0x00006915 rtn  0x00000034 
+ 00026124  0x00006916 store  0x00000001 , 0x00004eb3 
+ 00026125  0x00006918 arg  0x00000013 , 0x0000003f 
+ 00026126  0x00006919 call  0x00006382 
+ 00026127  0x0000691a fetch  0x00000001 , 0x00004eb3 
+ 00026128  0x0000691b increase  0xffffffff , 0x0000003f 
+ 00026129  0x0000691c store  0x00000001 , 0x00004eb3 
+ 00026130  0x0000691d rtn  0x00000034 
+ 00026131  0x0000691e branch  0x0000660d 
+ 00026132  0x00006921 fetch  0x00000001 , 0x00004eac 
+ 00026133  0x00006922 rtn  0x00000034 
+ 00026134  0x00006923 store  0x00000001 , 0x00004eb4 
+ 00026135  0x00006925 arg  0x00000020 , 0x0000003f 
+ 00026136  0x00006926 call  0x00006382 
+ 00026137  0x00006927 fetch  0x00000001 , 0x00004eb4 
+ 00026138  0x00006928 increase  0xffffffff , 0x0000003f 
+ 00026139  0x00006929 store  0x00000001 , 0x00004eb4 
+ 00026140  0x0000692a rtn  0x00000034 
+ 00026141  0x0000692b branch  0x00006617 
+ 00026142  0x0000692e fetch  0x00000001 , 0x00004ead 
+ 00026143  0x0000692f rtn  0x00000034 
+ 00026144  0x00006930 store  0x00000001 , 0x00004eb5 
+ 00026145  0x00006932 arg  0x00000021 , 0x0000003f 
+ 00026146  0x00006933 call  0x00006382 
+ 00026147  0x00006934 fetch  0x00000001 , 0x00004eb5 
+ 00026148  0x00006935 increase  0xffffffff , 0x0000003f 
+ 00026149  0x00006936 store  0x00000001 , 0x00004eb5 
+ 00026150  0x00006937 rtn  0x00000034 
+ 00026151  0x00006938 branch  0x00006621 
+ 00026152  0x0000693b fetch  0x00000002 , 0x00004acf 
+ 00026153  0x0000693c rtn  0x00000034 
+ 00026154  0x0000693d fetcht  0x00000002 , 0x000006f1 
+ 00026155  0x0000693e sub  0x00000002 , 0x00000000 , 0x0000003e 
+ 00026156  0x0000693f branch  0x00006636 , 0x00000005 
+ 00026157  0x00006940 isub  0x00000002 , 0x0000003e 
+ 00026158  0x00006941 rtn  0x00000005 
+ 00026159  0x00006942 storet  0x00000002 , 0x00004acf 
+ 00026160  0x00006943 fetch  0x00000002 , 0x00004ec3 
+ 00026161  0x00006944 isub  0x00000002 , 0x0000003e 
+ 00026162  0x00006945 call  0x00004325 , 0x00000005 
+ 00026163  0x00006947 fetch  0x00000002 , 0x000006f1 
+ 00026164  0x00006948 store  0x00000002 , 0x0000442e 
+ 00026165  0x00006949 branch  0x00007dba 
+ 00026166  0x0000694b jam  0x00000001 , 0x00004ec0 
+ 00026167  0x0000694c call  0x00004325 
+ 00026168  0x0000694d arg  0x00004b0d , 0x00000013 
+ 00026169  0x0000694e call  0x000065f0 
+ 00026170  0x0000694f setarg  0x00000000 
+ 00026171  0x00006950 store  0x00000002 , 0x00004acf 
+ 00026172  0x00006951 jam  0x00000032 , 0x0000489e 
+ 00026173  0x00006952 call  0x00006633 
+ 00026174  0x00006953 fetch  0x00000001 , 0x00004523 
+ 00026175  0x00006954 mul32  0x0000003f , 0x0000000a , 0x00000039 
+ 00026176  0x00006955 arg  0x000049ea , 0x00000005 
+ 00026177  0x00006956 branch  0x00007ca1 
+ 00026178  0x00006958 bpatch  0x000000a8 , 0x00004015 
+ 00026179  0x00006959 fetch  0x00000001 , 0x00004ec7 
+ 00026180  0x0000695a beq  0x00000001 , 0x00006647 
+ 00026181  0x0000695b beq  0x00000000 , 0x0000664d 
+ 00026182  0x0000695c rtn 
+ 00026183  0x0000695e copy  0x00000007 , 0x0000003f 
+ 00026184  0x0000695f beq  0x00000005 , 0x00006676 
+ 00026185  0x00006960 beq  0x00000000 , 0x00006693 
+ 00026186  0x00006961 beq  0x00000004 , 0x0000669b 
+ 00026187  0x00006962 beq  0x00000002 , 0x000066be 
+ 00026188  0x00006963 rtn 
+ 00026189  0x00006965 ifetch  0x00000001 , 0x00000013 
+ 00026190  0x00006966 beq  0x00000001 , 0x00006676 
+ 00026191  0x00006967 beq  0x00000002 , 0x00006693 
+ 00026192  0x00006968 beq  0x00000003 , 0x0000669b 
+ 00026193  0x00006969 beq  0x00000004 , 0x000066be 
+ 00026194  0x0000696a beq  0x00000005 , 0x00006654 
+ 00026195  0x0000696b rtn 
+ 00026196  0x0000696d call  0x00006730 
+ 00026197  0x0000696e nbranch  0x0000665e , 0x00000034 
+ 00026198  0x0000696f setarg  0x00000004 
+ 00026199  0x00006970 mul32  0x0000003f , 0x0000000a , 0x0000003f 
+ 00026200  0x00006971 arg  0x00004c02 , 0x00000002 
+ 00026201  0x00006972 iadd  0x00000002 , 0x00000005 
+ 00026202  0x00006973 increase  0x00000003 , 0x00000005 
+ 00026203  0x00006974 fetch  0x00000003 , 0x00004b17 
+ 00026204  0x00006975 istore  0x00000003 , 0x00000005 
+ 00026205  0x00006976 rtn 
+ 00026206  0x00006978 setarg  0x00000004 
+ 00026207  0x00006979 mul32  0x0000003f , 0x0000000a , 0x0000003f 
+ 00026208  0x0000697a arg  0x00004c02 , 0x00000002 
+ 00026209  0x0000697b iadd  0x00000002 , 0x00000005 
+ 00026210  0x0000697c increase  0x00000003 , 0x00000005 
+ 00026211  0x0000697d fetch  0x00000002 , 0x00004eae 
+ 00026212  0x0000697e istore  0x00000003 , 0x00000005 
+ 00026213  0x0000697f increase  0x00000007 , 0x00000005 
+ 00026214  0x00006980 fetch  0x00000002 , 0x00004eb0 
+ 00026215  0x00006981 lshift4  0x0000003f , 0x0000003f 
+ 00026216  0x00006982 lshift8  0x0000003f , 0x0000003f 
+ 00026217  0x00006983 istore  0x00000003 , 0x00000005 
+ 00026218  0x00006984 rtn 
+ 00026219  0x00006987 fetch  0x00000001 , 0x00004eac 
+ 00026220  0x00006988 rtn  0x00000034 
+ 00026221  0x00006989 increase  0xffffffff , 0x0000003f 
+ 00026222  0x0000698a store  0x00000001 , 0x00004eac 
+ 00026223  0x0000698b arg  0x00000072 , 0x0000003f 
+ 00026224  0x0000698c rtn 
+ 00026225  0x0000698e arg  0x0000002a , 0x00000002 
+ 00026226  0x0000698f call  0x00006730 
+ 00026227  0x00006990 rtn  0x00000034 
+ 00026228  0x00006991 arg  0x00000005 , 0x00000002 
+ 00026229  0x00006992 rtn 
+ 00026230  0x00006994 call  0x00006671 
+ 00026231  0x00006995 fetch  0x00000002 , 0x00004eae 
+ 00026232  0x00006996 isub  0x00000002 , 0x0000003e 
+ 00026233  0x00006997 ncall  0x0000666b , 0x00000002 
+ 00026234  0x00006998 nrtn  0x00000002 
+ 00026235  0x00006999 isub  0x00000002 , 0x0000003f 
+ 00026236  0x0000699b store  0x00000002 , 0x00004eae 
+ 00026237  0x0000699d bpatch  0x000000a9 , 0x00004015 
+ 00026238  0x0000699e fetch  0x00000002 , 0x00004eae 
+ 00026239  0x0000699f fetcht  0x00000002 , 0x00004eb0 
+ 00026240  0x000069a0 lshift8  0x00000002 , 0x00000002 
+ 00026241  0x000069a1 lshift4  0x00000002 , 0x00000002 
+ 00026242  0x000069a2 iadd  0x00000002 , 0x0000003f 
+ 00026243  0x000069a3 store  0x00000003 , 0x00004b17 
+ 00026244  0x000069a4 branch  0x00006654 
+ 00026245  0x000069a6 fetch  0x00000002 , 0x00004eae 
+ 00026246  0x000069a7 arg  0x00000072 , 0x00000002 
+ 00026247  0x000069a8 isub  0x00000002 , 0x00000002 
+ 00026248  0x000069a9 nrtn  0x00000002 
+ 00026249  0x000069aa copy  0x00000002 , 0x0000003f 
+ 00026250  0x000069ab fetcht  0x00000001 , 0x00004eac 
+ 00026251  0x000069ac sub  0x00000002 , 0x00000003 , 0x0000003e 
+ 00026252  0x000069ad branch  0x00006690 , 0x00000005 
+ 00026253  0x000069ae increase  0x00000001 , 0x00000002 
+ 00026254  0x000069af storet  0x00000001 , 0x00004eac 
+ 00026255  0x000069b0 branch  0x0000667c 
+ 00026256  0x000069b2 jam  0x00000000 , 0x00004eac 
+ 00026257  0x000069b3 arg  0x00000000 , 0x0000003f 
+ 00026258  0x000069b4 branch  0x0000667c 
+ 00026259  0x000069b6 call  0x00006730 
+ 00026260  0x000069b7 ncall  0x00006685 , 0x00000034 
+ 00026261  0x000069b8 call  0x00006671 
+ 00026262  0x000069b9 fetch  0x00000002 , 0x00004eae 
+ 00026263  0x000069bb iadd  0x00000002 , 0x0000003f 
+ 00026264  0x000069bc arg  0x00000fff , 0x00000002 
+ 00026265  0x000069bd call  0x00007d6c 
+ 00026266  0x000069be branch  0x0000667c 
+ 00026267  0x000069c1 call  0x00006671 
+ 00026268  0x000069c2 fetch  0x00000002 , 0x00004eb0 
+ 00026269  0x000069c3 isub  0x00000002 , 0x0000003f 
+ 00026270  0x000069c4 store  0x00000002 , 0x00004eb0 
+ 00026271  0x000069c6 fetcht  0x00000002 , 0x00004eb0 
+ 00026272  0x000069c7 call  0x00006730 
+ 00026273  0x000069c8 branch  0x0000667d , 0x00000034 
+ 00026274  0x000069c9 setarg  0x00000fff 
+ 00026275  0x000069ca isub  0x00000002 , 0x0000003f 
+ 00026276  0x000069cb arg  0x00000072 , 0x00000002 
+ 00026277  0x000069cc isub  0x00000002 , 0x00000002 
+ 00026278  0x000069cd nbranch  0x0000667d , 0x00000002 
+ 00026279  0x000069ce setarg  0x00000fff 
+ 00026280  0x000069cf isub  0x00000002 , 0x0000003f 
+ 00026281  0x000069d0 fetcht  0x00000001 , 0x00004ead 
+ 00026282  0x000069d1 sub  0x00000002 , 0x00000005 , 0x0000003e 
+ 00026283  0x000069d2 branch  0x000066af , 0x00000005 
+ 00026284  0x000069d3 increase  0x00000001 , 0x00000002 
+ 00026285  0x000069d4 storet  0x00000001 , 0x00004ead 
+ 00026286  0x000069d5 branch  0x000066bc 
+ 00026287  0x000069d7 jam  0x00000000 , 0x00004ead 
+ 00026288  0x000069d9 setarg  0x00000fff 
+ 00026289  0x000069da branch  0x000066bc 
+ 00026290  0x000069dd call  0x00006730 
+ 00026291  0x000069de branch  0x000066b0 , 0x00000034 
+ 00026292  0x000069df fetch  0x00000001 , 0x00004ead 
+ 00026293  0x000069e0 branch  0x000066b0 , 0x00000034 
+ 00026294  0x000069e1 increase  0xffffffff , 0x0000003f 
+ 00026295  0x000069e2 store  0x00000001 , 0x00004ead 
+ 00026296  0x000069e3 setarg  0x00000fff 
+ 00026297  0x000069e4 arg  0x00000072 , 0x00000002 
+ 00026298  0x000069e5 isub  0x00000002 , 0x0000003f 
+ 00026299  0x000069e6 iadd  0x00000011 , 0x0000003f 
+ 00026300  0x000069e8 store  0x00000002 , 0x00004eb0 
+ 00026301  0x000069e9 branch  0x0000667d 
+ 00026302  0x000069eb call  0x00006671 
+ 00026303  0x000069ec fetch  0x00000002 , 0x00004eb0 
+ 00026304  0x000069ee iadd  0x00000002 , 0x0000003f 
+ 00026305  0x000069ef arg  0x00000fff , 0x00000002 
+ 00026306  0x000069f0 isub  0x00000002 , 0x00000011 
+ 00026307  0x000069f1 branch  0x000066b2 , 0x00000002 
+ 00026308  0x000069f2 branch  0x000066bc 
+ 00026309  0x000069f6 fetch  0x00000002 , 0x00004398 
+ 00026310  0x000069f7 beq  0x00000024 , 0x000062e9 
+ 00026311  0x000069f8 rtn 
+ 00026312  0x000069fb arg  0x00000017 , 0x00000011 
+ 00026313  0x000069fc arg  0x00000004 , 0x00000012 
+ 00026314  0x000069fd call  0x000029fb 
+ 00026315  0x000069fe setarg  0x00000006 
+ 00026316  0x000069ff istore  0x00000001 , 0x00000005 
+ 00026317  0x00006a00 setarg  0x00000001 
+ 00026318  0x00006a01 istore  0x00000002 , 0x00000005 
+ 00026319  0x00006a02 setarg  0x0000ffff 
+ 00026320  0x00006a03 istore  0x00000002 , 0x00000005 
+ 00026321  0x00006a04 setarg  0x00002800 
+ 00026322  0x00006a05 istore  0x00000002 , 0x00000005 
+ 00026323  0x00006a06 arg  0x000049d4 , 0x00000006 
+ 00026324  0x00006a07 branch  0x00007c8f 
+ 00026325  0x00006a0b bpatch  0x000000aa , 0x00004015 
+ 00026326  0x00006a0c copy  0x00000011 , 0x00000006 
+ 00026327  0x00006a0d ifetch  0x00000003 , 0x00000006 
+ 00026328  0x00006a0e store  0x00000003 , 0x00004397 
+ 00026329  0x00006a0f beq  0x00000007 , 0x00006704 
+ 00026330  0x00006a10 beq  0x00000001 , 0x00006725 
+ 00026331  0x00006a11 beq  0x0000000a , 0x000066f4 
+ 00026332  0x00006a12 beq  0x0000000c , 0x000066de 
+ 00026333  0x00006a13 branch  0x00002b96 
+ 00026334  0x00006a16 ifetch  0x00000002 , 0x00000006 
+ 00026335  0x00006a17 store  0x00000002 , 0x000006b5 
+ 00026336  0x00006a18 iforce  0x00000011 
+ 00026337  0x00006a19 fetcht  0x00000002 , 0x00004398 
+ 00026338  0x00006a1a fetch  0x00000002 , 0x00004332 
+ 00026339  0x00006a1b isub  0x00000002 , 0x0000003e 
+ 00026340  0x00006a1c nbranch  0x00002d50 , 0x00000005 
+ 00026341  0x00006a1d call  0x00006730 
+ 00026342  0x00006a1e nbranch  0x000066e9 , 0x00000034 
+ 00026343  0x00006a1f fetcht  0x00000002 , 0x000049d0 
+ 00026344  0x00006a20 branch  0x000066ea 
+ 00026345  0x00006a23 fetcht  0x00000002 , 0x000049d2 
+ 00026346  0x00006a25 arg  0x000048ae , 0x00000006 
+ 00026347  0x00006a26 call  0x00007c6d 
+ 00026348  0x00006a27 copy  0x00000002 , 0x0000003f 
+ 00026349  0x00006a28 isub  0x00000011 , 0x0000003f 
+ 00026350  0x00006a29 nbranch  0x00002e03 , 0x00000002 
+ 00026351  0x00006a2a increase  0x00000001 , 0x0000003f 
+ 00026352  0x00006a2b sub  0x0000003f , 0x00000017 , 0x0000003e 
+ 00026353  0x00006a2c branch  0x00002d59 , 0x00000002 
+ 00026354  0x00006a2d force  0x00000017 , 0x0000003f 
+ 00026355  0x00006a2e branch  0x00002d59 
+ 00026356  0x00006a31 fetcht  0x00000002 , 0x00004398 
+ 00026357  0x00006a32 fetch  0x00000001 , 0x00004321 
+ 00026358  0x00006a33 bbit1  0x00000003 , 0x000066f8 
+ 00026359  0x00006a34 branch  0x00002d1d 
+ 00026360  0x00006a36 fetch  0x00000002 , 0x00004332 
+ 00026361  0x00006a37 isub  0x00000002 , 0x0000003e 
+ 00026362  0x00006a38 nbranch  0x00002d1d , 0x00000005 
+ 00026363  0x00006a39 call  0x00002dc7 
+ 00026364  0x00006a3a nbranch  0x000066fe , 0x00000028 
+ 00026365  0x00006a3b branch  0x00002d46 
+ 00026366  0x00006a3e fetch  0x00000002 , 0x00004332 
+ 00026367  0x00006a3f isub  0x00000002 , 0x0000003e 
+ 00026368  0x00006a40 nbranch  0x00002d1d , 0x00000005 
+ 00026369  0x00006a41 arg  0x000048ae , 0x00000006 
+ 00026370  0x00006a42 force  0x00000017 , 0x0000003f 
+ 00026371  0x00006a43 branch  0x00002d2d 
+ 00026372  0x00006a47 bpatch  0x000000ab , 0x00004015 
+ 00026373  0x00006a48 jam  0x00000005 , 0x00004eaa 
+ 00026374  0x00006a49 jam  0x00000001 , 0x000049e4 
+ 00026375  0x00006a4a jam  0x00000001 , 0x00004eb2 
+ 00026376  0x00006a4b jam  0x000000f0 , 0x000049e5 
+ 00026377  0x00006a4c jam  0x0000000a , 0x00004ec1 
+ 00026378  0x00006a4d jam  0x00000001 , 0x00004ec6 
+ 00026379  0x00006a4e call  0x000067bf 
+ 00026380  0x00006a4f fetch  0x00000001 , 0x00004ec2 
+ 00026381  0x00006a50 rtn  0x00000034 
+ 00026382  0x00006a51 call  0x00006783 
+ 00026383  0x00006a52 arg  0x00000072 , 0x00000002 
+ 00026384  0x00006a54 fetch  0x00000002 , 0x00004f78 
+ 00026385  0x00006a55 arg  0x00004eae , 0x00000011 
+ 00026386  0x00006a56 arg  0x00004eac , 0x00000012 
+ 00026387  0x00006a57 call  0x0000671e 
+ 00026388  0x00006a58 arg  0x00000072 , 0x00000002 
+ 00026389  0x00006a5a fetch  0x00000002 , 0x00004f7a 
+ 00026390  0x00006a5b arg  0x00004eb0 , 0x00000011 
+ 00026391  0x00006a5c arg  0x00004ead , 0x00000012 
+ 00026392  0x00006a5d call  0x0000671e 
+ 00026393  0x00006a5e setarg  0x00000fff 
+ 00026394  0x00006a5f fetcht  0x00000002 , 0x00004eb0 
+ 00026395  0x00006a60 isub  0x00000002 , 0x0000003f 
+ 00026396  0x00006a61 store  0x00000002 , 0x00004eb0 
+ 00026397  0x00006a62 rtn 
+ 00026398  0x00006a64 idiv  0x00000002 
+ 00026399  0x00006a65 call  0x00007d62 
+ 00026400  0x00006a66 quotient  0x0000003f 
+ 00026401  0x00006a67 remainder  0x00000002 
+ 00026402  0x00006a68 istore  0x00000001 , 0x00000012 
+ 00026403  0x00006a69 istoret  0x00000002 , 0x00000011 
+ 00026404  0x00006a6a rtn 
+ 00026405  0x00006a6c increase  0xfffffffe , 0x00000006 
+ 00026406  0x00006a6d ifetch  0x00000001 , 0x00000006 
+ 00026407  0x00006a6e beq  0x00000006 , 0x0000672e 
+ 00026408  0x00006a6f rtn 
+ 00026409  0x00006a71 jam  0x00000001 , 0x00004eaa 
+ 00026410  0x00006a72 jam  0x00000000 , 0x000049e4 
+ 00026411  0x00006a73 jam  0x00000000 , 0x00004eb2 
+ 00026412  0x00006a74 jam  0x0000000a , 0x000049e5 
+ 00026413  0x00006a75 rtn 
+ 00026414  0x00006a78 call  0x00006729 
+ 00026415  0x00006a79 branch  0x000067bf 
+ 00026416  0x00006a7c fetch  0x00000001 , 0x000049e4 
+ 00026417  0x00006a7d rtn 
+ 00026418  0x00006a81 arg  0x00004f14 , 0x00000013 
+ 00026419  0x00006a82 call  0x00006730 
+ 00026420  0x00006a83 rtn  0x00000034 
+ 00026421  0x00006a84 jam  0x00000078 , 0x000049e5 
+ 00026422  0x00006a85 arg  0x00004b1b , 0x00000013 
+ 00026423  0x00006a86 rtn 
+ 00026424  0x00006a89 arg  0x00004a30 , 0x00000013 
+ 00026425  0x00006a8a call  0x00006730 
+ 00026426  0x00006a8b rtn  0x00000034 
+ 00026427  0x00006a8c arg  0x00004b57 , 0x00000013 
+ 00026428  0x00006a8d jam  0x0000000c , 0x000049e5 
+ 00026429  0x00006a8e copy  0x00000007 , 0x0000003f 
+ 00026430  0x00006a8f rtneq  0x00000001 
+ 00026431  0x00006a90 rtn 
+ 00026432  0x00006a92 bpatch  0x000000ac , 0x00004015 
+ 00026433  0x00006a93 fetch  0x00000001 , 0x00004bfe 
+ 00026434  0x00006a94 setflip  0x00000000 , 0x0000003f 
+ 00026435  0x00006a95 store  0x00000001 , 0x00004bfe 
+ 00026436  0x00006a96 beq  0x00000000 , 0x00006749 
+ 00026437  0x00006a97 beq  0x00000001 , 0x00006747 
+ 00026438  0x00006a98 rtn 
+ 00026439  0x00006a9a call  0x00006750 
+ 00026440  0x00006a9b branch  0x00006371 
+ 00026441  0x00006a9d call  0x0000674b 
+ 00026442  0x00006a9e branch  0x00006371 
+ 00026443  0x00006aa0 arg  0x00004a5d , 0x00000013 
+ 00026444  0x00006aa1 call  0x00006730 
+ 00026445  0x00006aa2 rtn  0x00000034 
+ 00026446  0x00006aa3 arg  0x00004b84 , 0x00000013 
+ 00026447  0x00006aa4 rtn 
+ 00026448  0x00006aa6 arg  0x00004bea , 0x00000013 
+ 00026449  0x00006aa7 call  0x00006730 
+ 00026450  0x00006aa8 rtn  0x00000034 
+ 00026451  0x00006aa9 arg  0x00004bf4 , 0x00000013 
+ 00026452  0x00006aaa rtn 
+ 00026453  0x00006aae copy  0x00000007 , 0x0000003f 
+ 00026454  0x00006aaf beq  0x00000001 , 0x00006777 
+ 00026455  0x00006ab0 beq  0x00000002 , 0x00006765 
+ 00026456  0x00006ab1 beq  0x00000004 , 0x00006761 
+ 00026457  0x00006ab2 rtn 
+ 00026458  0x00006ab6 arg  0x00004f8d , 0x00000013 
+ 00026459  0x00006ab7 arg  0x0000675d , 0x00000012 
+ 00026460  0x00006ab8 branch  0x000042e0 
+ 00026461  0x00006aba jam  0x00000004 , 0x00004f8d 
+ 00026462  0x00006abb fetch  0x00000001 , 0x00004bfe 
+ 00026463  0x00006abc branch  0x00006761 , 0x00000034 
+ 00026464  0x00006abd branch  0x00006765 
+ 00026465  0x00006ac1 jam  0x00000000 , 0x00004bfe 
+ 00026466  0x00006ac2 jam  0x00000004 , 0x00004f8d 
+ 00026467  0x00006ac3 arg  0x00004aa5 , 0x00000013 
+ 00026468  0x00006ac4 branch  0x00006371 
+ 00026469  0x00006ac7 jam  0x00000001 , 0x00004bfe 
+ 00026470  0x00006ac8 jam  0x00000004 , 0x00004f8d 
+ 00026471  0x00006ac9 arg  0x00004a9f , 0x00000013 
+ 00026472  0x00006aca branch  0x00006371 
+ 00026473  0x00006acc jam  0x00000000 , 0x00004bfe 
+ 00026474  0x00006acd jam  0x00000000 , 0x00004f8d 
+ 00026475  0x00006ace rtn 
+ 00026476  0x00006ad2 arg  0x00004f8e , 0x00000013 
+ 00026477  0x00006ad3 arg  0x0000676f , 0x00000012 
+ 00026478  0x00006ad4 branch  0x000042e0 
+ 00026479  0x00006ad6 jam  0x00000002 , 0x00004f8e 
+ 00026480  0x00006ad7 call  0x00006772 
+ 00026481  0x00006ad8 branch  0x00006371 
+ 00026482  0x00006adb arg  0x00004f8f , 0x00000013 
+ 00026483  0x00006adc call  0x00006730 
+ 00026484  0x00006add rtn  0x00000034 
+ 00026485  0x00006ade arg  0x00004f97 , 0x00000013 
+ 00026486  0x00006adf rtn 
+ 00026487  0x00006ae2 fetch  0x00000001 , 0x00004f9f 
+ 00026488  0x00006ae3 nbranch  0x0000677c , 0x00000034 
+ 00026489  0x00006ae4 jam  0x00000001 , 0x00004f9f 
+ 00026490  0x00006ae5 jam  0x00000002 , 0x00004f8e 
+ 00026491  0x00006ae6 rtn 
+ 00026492  0x00006ae9 jam  0x00000000 , 0x00004f9f 
+ 00026493  0x00006aea jam  0x00000000 , 0x00004f8e 
+ 00026494  0x00006aeb rtn 
+ 00026495  0x00006aee fetch  0x00000001 , 0x00004eab 
+ 00026496  0x00006aef nrtn  0x00000034 
+ 00026497  0x00006af0 jam  0x00000001 , 0x00004eab 
+ 00026498  0x00006af1 branch  0x0000667d 
+ 00026499  0x00006af4 setarg  0x00000000 
+ 00026500  0x00006af5 store  0x00000007 , 0x00004eac 
+ 00026501  0x00006af6 rtn 
+ 00026502  0x00006af9 call  0x00006730 
+ 00026503  0x00006afa beq  0x00000001 , 0x0000678e 
+ 00026504  0x00006afb beq  0x00000000 , 0x000067a0 
+ 00026505  0x00006afc rtn 
+ 00026506  0x00006aff fetch  0x00000001 , 0x00004f80 
+ 00026507  0x00006b00 beq  0x00000001 , 0x000067a7 
+ 00026508  0x00006b01 beq  0x00000000 , 0x000067b9 
+ 00026509  0x00006b02 rtn 
+ 00026510  0x00006b05 fetch  0x00000001 , 0x00004eac 
+ 00026511  0x00006b06 mul32  0x0000003f , 0x00000072 , 0x0000003f 
+ 00026512  0x00006b07 copy  0x0000003f , 0x00000002 
+ 00026513  0x00006b08 fetch  0x00000002 , 0x00004eae 
+ 00026514  0x00006b09 iadd  0x00000002 , 0x0000003f 
+ 00026515  0x00006b0a store  0x00000002 , 0x00004f7c 
+ 00026516  0x00006b0c fetch  0x00000001 , 0x00004ead 
+ 00026517  0x00006b0d mul32  0x0000003f , 0x00000072 , 0x0000003f 
+ 00026518  0x00006b0e copy  0x0000003f , 0x00000002 
+ 00026519  0x00006b0f fetch  0x00000002 , 0x00004eb0 
+ 00026520  0x00006b10 copy  0x0000003f , 0x00000011 
+ 00026521  0x00006b11 setarg  0x00000fff 
+ 00026522  0x00006b12 isub  0x00000011 , 0x0000003f 
+ 00026523  0x00006b13 iadd  0x00000002 , 0x0000003f 
+ 00026524  0x00006b14 store  0x00000002 , 0x00004f7e 
+ 00026525  0x00006b16 call  0x00006730 
+ 00026526  0x00006b18 store  0x00000001 , 0x00004f80 
+ 00026527  0x00006b19 rtn 
+ 00026528  0x00006b1c fetch  0x00000002 , 0x00004eae 
+ 00026529  0x00006b1d store  0x00000002 , 0x00004f7c 
+ 00026530  0x00006b1e fetch  0x00000002 , 0x00004eb0 
+ 00026531  0x00006b1f store  0x00000002 , 0x00004f7e 
+ 00026532  0x00006b20 call  0x00006730 
+ 00026533  0x00006b21 store  0x00000001 , 0x00004f80 
+ 00026534  0x00006b22 rtn 
+ 00026535  0x00006b24 fetch  0x00000002 , 0x00004f7c 
+ 00026536  0x00006b25 div  0x0000003f , 0x00000072 
+ 00026537  0x00006b26 call  0x00007d62 
+ 00026538  0x00006b27 quotient  0x0000003f 
+ 00026539  0x00006b28 remainder  0x00000002 
+ 00026540  0x00006b29 store  0x00000001 , 0x00004eac 
+ 00026541  0x00006b2a copy  0x00000002 , 0x0000003f 
+ 00026542  0x00006b2b store  0x00000002 , 0x00004eae 
+ 00026543  0x00006b2c fetch  0x00000002 , 0x00004f7e 
+ 00026544  0x00006b2d div  0x0000003f , 0x00000072 
+ 00026545  0x00006b2e call  0x00007d62 
+ 00026546  0x00006b2f quotient  0x0000003f 
+ 00026547  0x00006b30 remainder  0x00000002 
+ 00026548  0x00006b31 store  0x00000001 , 0x00004ead 
+ 00026549  0x00006b33 setarg  0x00000fff 
+ 00026550  0x00006b34 isub  0x00000002 , 0x0000003f 
+ 00026551  0x00006b35 store  0x00000002 , 0x00004eb0 
+ 00026552  0x00006b38 rtn 
+ 00026553  0x00006b3a fetch  0x00000002 , 0x00004f7c 
+ 00026554  0x00006b3b store  0x00000002 , 0x00004eae 
+ 00026555  0x00006b3c fetch  0x00000002 , 0x00004f7e 
+ 00026556  0x00006b3d store  0x00000002 , 0x00004eb0 
+ 00026557  0x00006b40 rtn 
+ 00026558  0x00006b43 branch  0x0000683c 
+ 00026559  0x00006b46 branch  0x00006823 
+ 00026560  0x00006b4a call  0x000067e2 
+ 00026561  0x00006b4b fetch  0x00000002 , 0x00004f83 
+ 00026562  0x00006b4c call  0x0000684f 
+ 00026563  0x00006b4d jam  0x00000000 , 0x00004f8b 
+ 00026564  0x00006b4e fetch  0x00000005 , 0x00004f7c 
+ 00026565  0x00006b4f jam  0x00000000 , 0x00004f8c 
+ 00026566  0x00006b50 jam  0x00000000 , 0x00004f89 
+ 00026567  0x00006b51 call  0x000067e6 
+ 00026568  0x00006b52 fetch  0x00000001 , 0x00004f89 
+ 00026569  0x00006b53 rtneq  0x00000000 
+ 00026570  0x00006b54 branch  0x000067c0 
+ 00026571  0x00006b59 fetch  0x00000002 , 0x00004f70 
+ 00026572  0x00006b5a increase  0xfffffffb , 0x0000003f 
+ 00026573  0x00006b5b store  0x00000002 , 0x00004f83 
+ 00026574  0x00006b5c rtn 
+ 00026575  0x00006b60 fetch  0x00000002 , 0x00004f83 
+ 00026576  0x00006b61 increase  0xfffffffb , 0x0000003f 
+ 00026577  0x00006b62 store  0x00000002 , 0x00004f83 
+ 00026578  0x00006b63 rtn 
+ 00026579  0x00006b67 fetch  0x00000002 , 0x00004f83 
+ 00026580  0x00006b68 pincrease  0x00000005 
+ 00026581  0x00006b69 store  0x00000002 , 0x00004f83 
+ 00026582  0x00006b6a rtn 
+ 00026583  0x00006b6d fetch  0x00000002 , 0x00004f85 
+ 00026584  0x00006b6e pincrease  0x00000005 
+ 00026585  0x00006b6f store  0x00000002 , 0x00004f85 
+ 00026586  0x00006b71 fetch  0x00000002 , 0x00004f85 
+ 00026587  0x00006b72 copy  0x0000003f , 0x00000002 
+ 00026588  0x00006b74 fetch  0x00000002 , 0x00004f70 
+ 00026589  0x00006b75 isub  0x00000002 , 0x0000003f 
+ 00026590  0x00006b76 arg  0x00000005 , 0x00000002 
+ 00026591  0x00006b77 isub  0x00000002 , 0x0000003e 
+ 00026592  0x00006b79 nbranch  0x00006806 , 0x00000002 
+ 00026593  0x00006b7a rtn 
+ 00026594  0x00006b7d fetch  0x00000001 , 0x00004f8b 
+ 00026595  0x00006b7e beq  0x00000001 , 0x000067cb 
+ 00026596  0x00006b7f beq  0x00000000 , 0x000067cf 
+ 00026597  0x00006b80 rtn 
+ 00026598  0x00006b84 arg  0x00000000 , 0x00000012 
+ 00026599  0x00006b85 copy  0x00000012 , 0x00000002 
+ 00026600  0x00006b86 fetch  0x00000002 , 0x00004f7c 
+ 00026601  0x00006b87 icompare  0x0000ffff , 0x00000002 
+ 00026602  0x00006b89 ncall  0x000067f6 , 0x00000001 
+ 00026603  0x00006b8a arg  0x00000000 , 0x00000012 
+ 00026604  0x00006b8b copy  0x00000012 , 0x00000002 
+ 00026605  0x00006b8c fetch  0x00000002 , 0x00004f7e 
+ 00026606  0x00006b8d icompare  0x0000ffff , 0x00000002 
+ 00026607  0x00006b8e ncall  0x000067f6 , 0x00000001 
+ 00026608  0x00006b8f arg  0x00000000 , 0x00000012 
+ 00026609  0x00006b90 copy  0x00000012 , 0x00000002 
+ 00026610  0x00006b91 fetch  0x00000001 , 0x00004f80 
+ 00026611  0x00006b92 icompare  0x000000ff , 0x00000002 
+ 00026612  0x00006b93 ncall  0x000067f6 , 0x00000001 
+ 00026613  0x00006b94 rtn 
+ 00026614  0x00006b98 fetch  0x00000001 , 0x00004f89 
+ 00026615  0x00006b99 pincrease  0x00000001 
+ 00026616  0x00006b9a store  0x00000001 , 0x00004f89 
+ 00026617  0x00006b9b rtn 
+ 00026618  0x00006b9d jam  0x00000001 , 0x00004f89 
+ 00026619  0x00006b9e call  0x000067d7 
+ 00026620  0x00006b9f fetch  0x00000002 , 0x00004f85 
+ 00026621  0x00006ba0 call  0x0000684f 
+ 00026622  0x00006ba1 call  0x00006730 
+ 00026623  0x00006ba2 copy  0x0000003f , 0x00000002 
+ 00026624  0x00006ba3 fetch  0x00000001 , 0x00004f80 
+ 00026625  0x00006ba4 icompare  0x000000ff , 0x00000002 
+ 00026626  0x00006ba5 call  0x00006821 , 0x00000001 
+ 00026627  0x00006ba7 fetch  0x00000001 , 0x00004f89 
+ 00026628  0x00006ba8 rtneq  0x00000000 
+ 00026629  0x00006ba9 branch  0x000067fa 
+ 00026630  0x00006bad bpatch  0x000000ad , 0x00004015 
+ 00026631  0x00006bae call  0x00006821 
+ 00026632  0x00006baf call  0x00006730 
+ 00026633  0x00006bb0 branch  0x0000680b , 0x00000034 
+ 00026634  0x00006bb1 branch  0x00006812 
+ 00026635  0x00006bb4 fetch  0x00000002 , 0x00004f74 
+ 00026636  0x00006bb5 store  0x00000002 , 0x00004eae 
+ 00026637  0x00006bb7 fetcht  0x00000002 , 0x00004f76 
+ 00026638  0x00006bb8 setarg  0x00000fff 
+ 00026639  0x00006bb9 isub  0x00000002 , 0x0000003f 
+ 00026640  0x00006bba store  0x00000002 , 0x00004eb0 
+ 00026641  0x00006bbb branch  0x000067be 
+ 00026642  0x00006bbe arg  0x00000072 , 0x00000002 
+ 00026643  0x00006bc0 fetch  0x00000002 , 0x00004f78 
+ 00026644  0x00006bc1 arg  0x00004eae , 0x00000011 
+ 00026645  0x00006bc2 arg  0x00004eac , 0x00000012 
+ 00026646  0x00006bc3 call  0x0000671e 
+ 00026647  0x00006bc4 arg  0x00000072 , 0x00000002 
+ 00026648  0x00006bc6 fetch  0x00000002 , 0x00004f7a 
+ 00026649  0x00006bc7 arg  0x00004eb0 , 0x00000011 
+ 00026650  0x00006bc8 arg  0x00004ead , 0x00000012 
+ 00026651  0x00006bc9 call  0x0000671e 
+ 00026652  0x00006bca setarg  0x00000fff 
+ 00026653  0x00006bcb fetcht  0x00000002 , 0x00004eb0 
+ 00026654  0x00006bcc isub  0x00000002 , 0x0000003f 
+ 00026655  0x00006bcd store  0x00000002 , 0x00004eb0 
+ 00026656  0x00006bce branch  0x000067be 
+ 00026657  0x00006bd1 jam  0x00000000 , 0x00004f89 
+ 00026658  0x00006bd2 rtn 
+ 00026659  0x00006bd5 bpatch  0x000000ae , 0x00004015 
+ 00026660  0x00006bd6 jam  0x00000001 , 0x00004f8b 
+ 00026661  0x00006bd7 call  0x000067c0 
+ 00026662  0x00006bdb fetch  0x00000002 , 0x00004f72 
+ 00026663  0x00006bdc copy  0x0000003f , 0x00000002 
+ 00026664  0x00006bdd fetch  0x00000002 , 0x00004f83 
+ 00026665  0x00006bde isub  0x00000002 , 0x0000003f 
+ 00026666  0x00006bdf arg  0x00000000 , 0x00000002 
+ 00026667  0x00006be0 isub  0x00000002 , 0x0000003e 
+ 00026668  0x00006be1 nrtn  0x00000002 
+ 00026669  0x00006be2 fetch  0x00000002 , 0x00004f83 
+ 00026670  0x00006be3 copy  0x0000003f , 0x00000002 
+ 00026671  0x00006be5 fetch  0x00000002 , 0x00004f70 
+ 00026672  0x00006be6 increase  0xfffffffb , 0x0000003f 
+ 00026673  0x00006be7 isub  0x00000002 , 0x0000003f 
+ 00026674  0x00006bea fetch  0x00000002 , 0x00004f83 
+ 00026675  0x00006beb store  0x00000002 , 0x00004f85 
+ 00026676  0x00006bec call  0x000067fa 
+ 00026677  0x00006bed fetch  0x00000002 , 0x00004f85 
+ 00026678  0x00006bee ncall  0x0000684f , 0x00000005 
+ 00026679  0x00006bf1 jam  0x00000000 , 0x00004f89 
+ 00026680  0x00006bf2 call  0x000067e6 
+ 00026681  0x00006bf3 fetch  0x00000001 , 0x00004f89 
+ 00026682  0x00006bf4 rtneq  0x00000000 
+ 00026683  0x00006bf5 branch  0x0000678a 
+ 00026684  0x00006bf9 bpatch  0x000000af , 0x00004015 
+ 00026685  0x00006bfa jam  0x00000001 , 0x00004f8b 
+ 00026686  0x00006bfb call  0x000067c0 
+ 00026687  0x00006bff fetcht  0x00000002 , 0x00004f72 
+ 00026688  0x00006c01 fetch  0x00000002 , 0x00004f83 
+ 00026689  0x00006c02 isub  0x00000002 , 0x0000003f 
+ 00026690  0x00006c03 arg  0x00000000 , 0x00000002 
+ 00026691  0x00006c04 isub  0x00000002 , 0x0000003e 
+ 00026692  0x00006c05 nrtn  0x00000002 
+ 00026693  0x00006c07 fetcht  0x00000002 , 0x00004f83 
+ 00026694  0x00006c09 fetch  0x00000002 , 0x00004f70 
+ 00026695  0x00006c0a isub  0x00000002 , 0x0000003f 
+ 00026696  0x00006c0b arg  0x00000000 , 0x00000002 
+ 00026697  0x00006c0c isub  0x00000002 , 0x0000003e 
+ 00026698  0x00006c0d nrtn  0x00000002 
+ 00026699  0x00006c0e fetch  0x00000002 , 0x00004f83 
+ 00026700  0x00006c0f store  0x00000002 , 0x00004f81 
+ 00026701  0x00006c10 call  0x00006786 
+ 00026702  0x00006c12 branch  0x00006854 
+ 00026703  0x00006c16 bpatch  0x000000b0 , 0x00004016 
+ 00026704  0x00006c17 copy  0x0000003f , 0x00000012 
+ 00026705  0x00006c18 arg  0x00000005 , 0x00000039 
+ 00026706  0x00006c1a arg  0x00004f7c , 0x00000011 
+ 00026707  0x00006c1b branch  0x00006b74 
+ 00026708  0x00006c1f arg  0x00000005 , 0x00000039 
+ 00026709  0x00006c20 arg  0x00004f7c , 0x00000011 
+ 00026710  0x00006c21 fetchr  0x00000012 , 0x00000002 , 0x00004f81 
+ 00026711  0x00006c22 branch  0x00006b45 
+ 00026712  0x00006c25 arg  0x0000489e , 0x00000013 
+ 00026713  0x00006c26 arg  0x000067be , 0x00000012 
+ 00026714  0x00006c27 branch  0x000042e0 
+ 00026715  0x00006c36 fetch  0x00000002 , 0x00000912 
+ 00026716  0x00006c39 ifetcht  0x00000001 , 0x00000013 
+ 00026717  0x00006c3a increase  0x00000001 , 0x00000013 
+ 00026718  0x00006c3b lshift8  0x00000002 , 0x00000002 
+ 00026719  0x00006c3c ixor  0x00000002 , 0x0000003f 
+ 00026720  0x00006c3f copy  0x00000039 , 0x00000012 
+ 00026721  0x00006c40 arg  0x00000008 , 0x00000039 
+ 00026722  0x00006c42 isolate1  0x0000000f , 0x0000003f 
+ 00026723  0x00006c43 lshift  0x0000003f , 0x0000003f 
+ 00026724  0x00006c44 nbranch  0x00006867 , 0x00000001 
+ 00026725  0x00006c45 fetcht  0x00000002 , 0x00000914 
+ 00026726  0x00006c46 ixor  0x00000002 , 0x0000003f 
+ 00026727  0x00006c48 loop  0x00006862 
+ 00026728  0x00006c49 copy  0x00000012 , 0x00000039 
+ 00026729  0x00006c4b loop  0x0000685c 
+ 00026730  0x00006c4c store  0x00000002 , 0x00000912 
+ 00026731  0x00006c4d rtn 
+ 00026732  0x00006c53 fetch  0x00000001 , 0x0000443f 
+ 00026733  0x00006c55 arg  0x0000003e , 0x00000002 
+ 00026734  0x00006c56 branch  0x00006f20 
+ 00026735  0x00006c5a fetch  0x00000001 , 0x0000443f 
+ 00026736  0x00006c5c arg  0x0000003f , 0x00000002 
+ 00026737  0x00006c5d branch  0x00006f20 
+ 00026738  0x00006c60 call  0x0000686f 
+ 00026739  0x00006c62 call  0x0000686c 
+ 00026740  0x00006c63 branch  0x0000686f 
+ 00026741  0x00006c67 call  0x00006873 
+ 00026742  0x00006c69 branch  0x0000686c 
+ 00026743  0x00006c6c branch  0x00006873 
+ 00026744  0x00006c6f call  0x00006873 
+ 00026745  0x00006c70 branch  0x00006875 
+ 00026746  0x00006c75 branch  0x0000686c 
+ 00026747  0x00006c7a fetch  0x00000001 , 0x00004440 
+ 00026748  0x00006c7b branch  0x0000686d 
+ 00026749  0x00006c7f fetch  0x00000001 , 0x00004440 
+ 00026750  0x00006c80 branch  0x00006870 
+ 00026751  0x00006c83 call  0x0000687b 
+ 00026752  0x00006c84 call  0x0000687d 
+ 00026753  0x00006c85 branch  0x0000687b 
+ 00026754  0x00006c8d clear_stack 
+ 00026755  0x00006c8e call  0x000070d7 
+ 00026756  0x00006c8f call  0x0000688d 
+ 00026757  0x00006c90 call  0x0000688f 
+ 00026758  0x00006c91 call  0x000068a3 
+ 00026759  0x00006c92 call  0x000068bf 
+ 00026760  0x00006c93 call  0x000068c3 
+ 00026761  0x00006c95 jam  0x00000001 , 0x0000070f 
+ 00026762  0x00006c96 jam  0x00000004 , 0x0000070c 
+ 00026763  0x00006c99 call  0x000068ce 
+ 00026764  0x00006c9a branch  0x0000688b 
+ 00026765  0x00006c9d jam  0x00000004 , 0x00008042 
+ 00026766  0x00006c9e rtn 
+ 00026767  0x00006ca1 call  0x00006893 
+ 00026768  0x00006ca2 call  0x00006897 
+ 00026769  0x00006ca3 call  0x0000689b 
+ 00026770  0x00006ca4 branch  0x0000689f 
+ 00026771  0x00006ca7 fetch  0x00000001 , 0x000044f1 
+ 00026772  0x00006ca8 nrtn  0x00000034 
+ 00026773  0x00006ca9 jam  0x00000007 , 0x000044f1 
+ 00026774  0x00006caa rtn 
+ 00026775  0x00006cad fetch  0x00000001 , 0x000044f2 
+ 00026776  0x00006cae nrtn  0x00000034 
+ 00026777  0x00006caf jam  0x00000006 , 0x000044f2 
+ 00026778  0x00006cb0 rtn 
+ 00026779  0x00006cb2 fetch  0x00000001 , 0x000044f3 
+ 00026780  0x00006cb3 nrtn  0x00000034 
+ 00026781  0x00006cb4 jam  0x00000009 , 0x000044f3 
+ 00026782  0x00006cb5 rtn 
+ 00026783  0x00006cb7 fetch  0x00000001 , 0x000044f4 
+ 00026784  0x00006cb8 nrtn  0x00000034 
+ 00026785  0x00006cb9 jam  0x0000000a , 0x000044f4 
+ 00026786  0x00006cba rtn 
+ 00026787  0x00006cbe setarg  0x00000c00 
+ 00026788  0x00006cbf store  0x00000002 , 0x00000670 
+ 00026789  0x00006cc0 setarg  0x00000eff 
+ 00026790  0x00006cc1 istore  0x00000002 , 0x00000005 
+ 00026791  0x00006cc2 setarg  0x00000f00 
+ 00026792  0x00006cc3 istore  0x00000002 , 0x00000005 
+ 00026793  0x00006cc4 setarg  0x00000fff 
+ 00026794  0x00006cc5 istore  0x00000002 , 0x00000005 
+ 00026795  0x00006cc6 fetch  0x00000008 , 0x00000670 
+ 00026796  0x00006cc7 call  0x00006d68 
+ 00026797  0x00006cc8 call  0x00006d82 
+ 00026798  0x00006cc9 arg  0x0001c200 , 0x00000002 
+ 00026799  0x00006cca call  0x00006d75 
+ 00026800  0x00006ccb fetch  0x00000001 , 0x000044f1 
+ 00026801  0x00006ccc arg  0x00000008 , 0x00000002 
+ 00026802  0x00006ccd call  0x00006f21 
+ 00026803  0x00006cce fetch  0x00000001 , 0x000044f2 
+ 00026804  0x00006ccf arg  0x00000049 , 0x00000002 
+ 00026805  0x00006cd0 call  0x00006f21 
+ 00026806  0x00006cd1 fetch  0x00000001 , 0x000044f3 
+ 00026807  0x00006cd2 arg  0x0000000a , 0x00000002 
+ 00026808  0x00006cd3 call  0x00006f21 
+ 00026809  0x00006cd4 fetch  0x00000001 , 0x000044f4 
+ 00026810  0x00006cd5 arg  0x0000000b , 0x00000002 
+ 00026811  0x00006cd6 call  0x00006f21 
+ 00026812  0x00006cd8 arg  0x00000081 , 0x00000002 
+ 00026813  0x00006cd9 storet  0x00000001 , 0x00008060 
+ 00026814  0x00006cda branch  0x00007d76 
+ 00026815  0x00006cdd fetch  0x00000001 , 0x000044f5 
+ 00026816  0x00006cde nrtn  0x00000034 
+ 00026817  0x00006cdf jam  0x0000000c , 0x000044f5 
+ 00026818  0x00006ce0 rtn 
+ 00026819  0x00006ce3 fetch  0x00000001 , 0x000044f5 
+ 00026820  0x00006ce4 arg  0x00000010 , 0x00000002 
+ 00026821  0x00006ce5 call  0x00006f21 
+ 00026822  0x00006ce6 arg  0x00000040 , 0x00000011 
+ 00026823  0x00006ce7 call  0x00007055 
+ 00026824  0x00006ce8 arg  0x00000000 , 0x00000011 
+ 00026825  0x00006ce9 arg  0x00000000 , 0x00000012 
+ 00026826  0x00006cea setarg  0x00000000 
+ 00026827  0x00006ceb call  0x0000707a 
+ 00026828  0x00006cec arg  0x00000000 , 0x00000007 
+ 00026829  0x00006ced branch  0x000070c0 
+ 00026830  0x00006cf1 fetch  0x00000002 , 0x00008112 
+ 00026831  0x00006cf2 add  0x0000003f , 0xfffffffc , 0x00000011 
+ 00026832  0x00006cf3 nrtn  0x00000002 
+ 00026833  0x00006cf4 call  0x00006d96 
+ 00026834  0x00006cf5 ifetch  0x00000001 , 0x00000003 
+ 00026835  0x00006cf6 beq  0x00000001 , 0x000068d6 
+ 00026836  0x00006cf8 call  0x00007c95 
+ 00026837  0x00006cf9 branch  0x00006d9e 
+ 00026838  0x00006cfe ifetch  0x00000002 , 0x00000003 
+ 00026839  0x00006cff store  0x00000002 , 0x00000710 
+ 00026840  0x00006d00 arg  0x000003ff , 0x00000002 
+ 00026841  0x00006d01 iand  0x00000002 , 0x00000002 
+ 00026842  0x00006d02 storet  0x00000002 , 0x00000709 
+ 00026843  0x00006d03 rshift2  0x0000003f , 0x0000003f 
+ 00026844  0x00006d04 rshift8  0x0000003f , 0x0000003f 
+ 00026845  0x00006d05 store  0x00000001 , 0x0000070b 
+ 00026846  0x00006d06 ifetch  0x00000001 , 0x00000003 
+ 00026847  0x00006d07 pincrease  0xffffffff 
+ 00026848  0x00006d08 isub  0x00000011 , 0x0000003e 
+ 00026849  0x00006d09 rtn  0x00000002 
+ 00026850  0x00006d0a call  0x000068e4 
+ 00026851  0x00006d0b branch  0x0000693f 
+ 00026852  0x00006d0e fetch  0x00000001 , 0x0000070b 
+ 00026853  0x00006d16 beq  0x0000003f , 0x000068e7 
+ 00026854  0x00006d17 branch  0x0000692b 
+ 00026855  0x00006d22 bpatch  0x000000b4 , 0x00004016 
+ 00026856  0x00006d23 fetch  0x00000001 , 0x00000709 
+ 00026857  0x00006d24 beq  0x00000000 , 0x0000692a 
+ 00026858  0x00006d25 beq  0x00000001 , 0x000068f2 
+ 00026859  0x00006d26 beq  0x00000002 , 0x000068f7 
+ 00026860  0x00006d27 beq  0x00000003 , 0x00006905 
+ 00026861  0x00006d28 beq  0x00000004 , 0x0000690f 
+ 00026862  0x00006d29 beq  0x00000005 , 0x0000692a 
+ 00026863  0x00006d2a beq  0x00000010 , 0x00006920 
+ 00026864  0x00006d2b beq  0x00000014 , 0x00006926 
+ 00026865  0x00006d2c branch  0x0000692a 
+ 00026866  0x00006d30 jam  0x00000000 , 0x00000712 
+ 00026867  0x00006d31 fetch  0x00000002 , 0x00008000 
+ 00026868  0x00006d32 store  0x00000002 , 0x00000713 
+ 00026869  0x00006d33 arg  0x00000003 , 0x00000039 
+ 00026870  0x00006d34 branch  0x00006932 
+ 00026871  0x00006d37 ifetch  0x00000002 , 0x00000003 
+ 00026872  0x00006d38 store  0x00000002 , 0x00008052 
+ 00026873  0x00006d39 rtn 
+ 00026874  0x00006d3d ifetch  0x00000001 , 0x00000003 
+ 00026875  0x00006d3e copy  0x0000003f , 0x00000002 
+ 00026876  0x00006d3f store  0x00000001 , 0x00008024 
+ 00026877  0x00006d40 ifetch  0x00000001 , 0x00000003 
+ 00026878  0x00006d41 iadd  0x00000002 , 0x00000002 
+ 00026879  0x00006d42 set1  0x00000007 , 0x0000003f 
+ 00026880  0x00006d43 store  0x00000001 , 0x00008023 
+ 00026881  0x00006d44 ifetch  0x00000001 , 0x00000003 
+ 00026882  0x00006d45 iadd  0x00000002 , 0x00000002 
+ 00026883  0x00006d46 copy  0x0000003f , 0x00000039 
+ 00026884  0x00006d47 rtn 
+ 00026885  0x00006d4a call  0x000068fa 
+ 00026886  0x00006d4c ifetch  0x00000001 , 0x00000003 
+ 00026887  0x00006d4d store  0x00000001 , 0x00008025 
+ 00026888  0x00006d4e iadd  0x00000002 , 0x00000002 
+ 00026889  0x00006d4f loop  0x00006906 
+ 00026890  0x00006d51 and  0x00000002 , 0x000000ff , 0x00000002 
+ 00026891  0x00006d52 ifetch  0x00000001 , 0x00000003 
+ 00026892  0x00006d53 isub  0x00000002 , 0x0000003e 
+ 00026893  0x00006d54 nbranch  0x0000691e , 0x00000005 
+ 00026894  0x00006d55 branch  0x0000692a 
+ 00026895  0x00006d58 arg  0x00000020 , 0x00000039 
+ 00026896  0x00006d59 arg  0x00004000 , 0x00000005 
+ 00026897  0x00006d5a arg  0x00000000 , 0x00000002 
+ 00026898  0x00006d5c ifetch  0x00000001 , 0x00000003 
+ 00026899  0x00006d5d istore  0x00000001 , 0x00000005 
+ 00026900  0x00006d5e iadd  0x00000002 , 0x00000002 
+ 00026901  0x00006d5f loop  0x00006912 
+ 00026902  0x00006d60 and  0x00000002 , 0x000000ff , 0x00000002 
+ 00026903  0x00006d61 ifetch  0x00000001 , 0x00000003 
+ 00026904  0x00006d62 isub  0x00000002 , 0x0000003e 
+ 00026905  0x00006d63 nbranch  0x0000691e , 0x00000005 
+ 00026906  0x00006d64 jam  0x00000000 , 0x00008023 
+ 00026907  0x00006d65 call  0x0000692a 
+ 00026908  0x00006d66 call  0x00006dae 
+ 00026909  0x00006d67 branch  0x00002001 
+ 00026910  0x00006d6a jam  0x00000000 , 0x00008023 
+ 00026911  0x00006d6b branch  0x0000692b 
+ 00026912  0x00006d6f ifetch  0x00000001 , 0x00000003 
+ 00026913  0x00006d70 copy  0x0000003f , 0x00000039 
+ 00026914  0x00006d71 ifetch  0x00000002 , 0x00000003 
+ 00026915  0x00006d72 copy  0x0000003f , 0x00000005 
+ 00026916  0x00006d73 call  0x00006ddd 
+ 00026917  0x00006d74 branch  0x0000692a 
+ 00026918  0x00006d77 fetch  0x00000001 , 0x00008060 
+ 00026919  0x00006d78 set1  0x00000004 , 0x0000003f 
+ 00026920  0x00006d79 store  0x00000001 , 0x00008060 
+ 00026921  0x00006d7a branch  0x0000692a 
+ 00026922  0x00006d7e branch  0x0000692f 
+ 00026923  0x00006d81 jam  0x00000001 , 0x00000712 
+ 00026924  0x00006d82 branch  0x00006930 
+ 00026925  0x00006d84 jam  0x0000000c , 0x00000712 
+ 00026926  0x00006d85 branch  0x00006930 
+ 00026927  0x00006d87 jam  0x00000000 , 0x00000712 
+ 00026928  0x00006d88 arg  0x00000001 , 0x00000039 
+ 00026929  0x00006d89 branch  0x00006932 
+ 00026930  0x00006d8c jam  0x0000000e , 0x0000070d 
+ 00026931  0x00006d8d add  0x00000039 , 0x00000003 , 0x0000003f 
+ 00026932  0x00006d8e store  0x00000001 , 0x0000070e 
+ 00026933  0x00006d8f call  0x0000693b 
+ 00026934  0x00006d90 fetch  0x00000003 , 0x0000070f 
+ 00026935  0x00006d91 istore  0x00000003 , 0x00000003 
+ 00026936  0x00006d93 arg  0x00000712 , 0x00000006 
+ 00026937  0x00006d94 call  0x00006dc4 
+ 00026938  0x00006d95 branch  0x00006da4 
+ 00026939  0x00006d9a call  0x00006da2 
+ 00026940  0x00006d9b fetch  0x00000003 , 0x0000070c 
+ 00026941  0x00006d9c istore  0x00000003 , 0x00000003 
+ 00026942  0x00006d9d rtn 
+ 00026943  0x00006da0 call  0x00006d96 
+ 00026944  0x00006da1 increase  0x00000003 , 0x00000003 
+ 00026945  0x00006da2 ifetch  0x00000001 , 0x00000003 
+ 00026946  0x00006da3 iadd  0x00000003 , 0x00000003 
+ 00026947  0x00006da4 branch  0x00006d9c 
+ 00026948  0x00006da7 jam  0x00000000 , 0x00004114 
+ 00026949  0x00006da8 rtn 
+ 00026950  0x00006db0 branch  0x0000694b , 0x0000002b 
+ 00026951  0x00006db1 setarg  0x00004450 
+ 00026952  0x00006db2 arg  0x00004441 , 0x00000005 
+ 00026953  0x00006db3 isub  0x00000005 , 0x00000039 
+ 00026954  0x00006db4 call  0x00007ca1 
+ 00026955  0x00006db7 rtn 
+ 00026956  0x00006dbc arg  0x00000000 , 0x00000007 
+ 00026957  0x00006dbd arg  0x00000000 , 0x00000012 
+ 00026958  0x00006dc0 sub  0x00000007 , 0x00000007 , 0x0000003e 
+ 00026959  0x00006dc1 nrtn  0x00000002 
+ 00026960  0x00006dc2 qisolate1  0x00000011 
+ 00026961  0x00006dc3 branch  0x00006953 , 0x00000001 
+ 00026962  0x00006dc4 branch  0x00006957 
+ 00026963  0x00006dc7 copy  0x00000002 , 0x0000003f 
+ 00026964  0x00006dc8 branch  0x00006957 , 0x00000034 
+ 00026965  0x00006dc9 qset1  0x00000012 
+ 00026966  0x00006dca increase  0xffffffff , 0x00000002 
+ 00026967  0x00006dcd increase  0x00000001 , 0x00000007 
+ 00026968  0x00006dce branch  0x0000694e 
+ 00026969  0x00006ddc fetchr  0x00000018 , 0x00000002 , 0x0000433f 
+ 00026970  0x00006ddd fetchr  0x0000002b , 0x00000002 , 0x00004341 
+ 00026971  0x00006dde call  0x00007dbc 
+ 00026972  0x00006ddf branch  0x0000695d 
+ 00026973  0x00006de2 bpatch  0x000000b6 , 0x00004016 
+ 00026974  0x00006de3 call  0x000069a9 
+ 00026975  0x00006de4 nbranch  0x0000235a , 0x00000034 
+ 00026976  0x00006de5 call  0x000069b9 
+ 00026977  0x00006de6 arg  0x00000008 , 0x00000039 
+ 00026978  0x00006de8 fetcht  0x00000001 , 0x00004441 
+ 00026979  0x00006de9 sub  0x00000039 , 0x00000008 , 0x00000007 
+ 00026980  0x00006dea qisolate1  0x00000002 
+ 00026981  0x00006deb branch  0x0000696a , 0x00000001 
+ 00026982  0x00006dec call  0x00006971 
+ 00026983  0x00006ded nbranch  0x0000696a , 0x00000002 
+ 00026984  0x00006dee call  0x00006987 
+ 00026985  0x00006def branch  0x0000696e 
+ 00026986  0x00006df1 copy  0x0000002b , 0x0000003f 
+ 00026987  0x00006df2 iadd  0x00000018 , 0x00000018 
+ 00026988  0x00006df3 loop  0x00006962 
+ 00026989  0x00006df4 branch  0x0000235a 
+ 00026990  0x00006df6 copy  0x00000018 , 0x0000003f 
+ 00026991  0x00006df7 copy  0x00000018 , 0x00000005 
+ 00026992  0x00006df8 rtn 
+ 00026993  0x00006e02 bpatch  0x000000b7 , 0x00004016 
+ 00026994  0x00006e03 sub  0x00000039 , 0x00000008 , 0x00000007 
+ 00026995  0x00006e04 arg  0x00000000 , 0x00000002 
+ 00026996  0x00006e05 arg  0x00000000 , 0x0000000b 
+ 00026997  0x00006e07 copy  0x00000007 , 0x0000003f 
+ 00026998  0x00006e08 beq  0x00000008 , 0x00006982 
+ 00026999  0x00006e09 fetch  0x00000001 , 0x00004441 
+ 00027000  0x00006e0a qisolate1  0x0000003f 
+ 00027001  0x00006e0b branch  0x00006982 , 0x00000001 
+ 00027002  0x00006e0c qset1  0x0000000b 
+ 00027003  0x00006e0d copy  0x0000002b , 0x0000003f 
+ 00027004  0x00006e0e iadd  0x00000002 , 0x00000002 
+ 00027005  0x00006e0f increase  0x00000001 , 0x00000007 
+ 00027006  0x00006e10 copy  0x00000011 , 0x0000003f 
+ 00027007  0x00006e11 isub  0x00000002 , 0x0000003e 
+ 00027008  0x00006e12 branch  0x00006982 , 0x00000005 
+ 00027009  0x00006e13 branch  0x00006975 , 0x00000002 
+ 00027010  0x00006e15 copy  0x00000002 , 0x0000003f 
+ 00027011  0x00006e16 isub  0x00000011 , 0x0000003e 
+ 00027012  0x00006e17 nrtn  0x00000005 
+ 00027013  0x00006e18 qset1  0x0000000b 
+ 00027014  0x00006e19 rtn 
+ 00027015  0x00006e23 bpatch  0x000000b8 , 0x00004017 
+ 00027016  0x00006e24 call  0x000069a9 
+ 00027017  0x00006e25 nbranch  0x0000235a , 0x00000034 
+ 00027018  0x00006e26 call  0x000069af 
+ 00027019  0x00006e27 branch  0x00006990 , 0x00000034 
+ 00027020  0x00006e28 fetch  0x00000009 , 0x00004445 
+ 00027021  0x00006e29 store  0x00000009 , 0x00004442 
+ 00027022  0x00006e2a setarg  0x00000000 
+ 00027023  0x00006e2b istore  0x00000003 , 0x00000005 
+ 00027024  0x00006e2d storer  0x0000000b , 0x00000001 , 0x0000444b 
+ 00027025  0x00006e2e storer  0x00000018 , 0x00000002 , 0x0000444c 
+ 00027026  0x00006e2f rtn 
+ 00027027  0x00006e39 bpatch  0x000000b9 , 0x00004017 
+ 00027028  0x00006e3a call  0x000069b2 
+ 00027029  0x00006e3b increase  0x00000001 , 0x00000006 
+ 00027030  0x00006e3c ifetch  0x00000002 , 0x00000006 
+ 00027031  0x00006e3d rtn 
+ 00027032  0x00006e45 bpatch  0x000000ba , 0x00004017 
+ 00027033  0x00006e46 call  0x000069b2 
+ 00027034  0x00006e47 copy  0x00000006 , 0x00000005 
+ 00027035  0x00006e48 copy  0x00000006 , 0x00000002 
+ 00027036  0x00006e49 setarg  0x00000000 
+ 00027037  0x00006e4a istore  0x00000003 , 0x00000005 
+ 00027038  0x00006e4b rtn 
+ 00027039  0x00006e53 bpatch  0x000000bb , 0x00004017 
+ 00027040  0x00006e54 call  0x000069af 
+ 00027041  0x00006e55 branch  0x0000235a , 0x00000034 
+ 00027042  0x00006e56 fetch  0x00000003 , 0x00004448 
+ 00027043  0x00006e57 store  0x00000003 , 0x0000444b 
+ 00027044  0x00006e58 fetch  0x00000003 , 0x00004445 
+ 00027045  0x00006e59 store  0x00000003 , 0x00004448 
+ 00027046  0x00006e5a fetch  0x00000003 , 0x00004442 
+ 00027047  0x00006e5b store  0x00000003 , 0x00004445 
+ 00027048  0x00006e5c rtn 
+ 00027049  0x00006e65 bpatch  0x000000bc , 0x00004017 
+ 00027050  0x00006e66 fetch  0x00000003 , 0x00004442 
+ 00027051  0x00006e67 rtn 
+ 00027052  0x00006e70 bpatch  0x000000bd , 0x00004017 
+ 00027053  0x00006e71 fetch  0x00000003 , 0x00004445 
+ 00027054  0x00006e72 rtn 
+ 00027055  0x00006e7b bpatch  0x000000be , 0x00004017 
+ 00027056  0x00006e7c fetch  0x00000003 , 0x0000444b 
+ 00027057  0x00006e7d rtn 
+ 00027058  0x00006e85 call  0x000069af 
+ 00027059  0x00006e86 branch  0x000069b7 , 0x00000034 
+ 00027060  0x00006e87 arg  0x00004442 , 0x00000006 
+ 00027061  0x00006e89 ifetch  0x00000003 , 0x00000006 
+ 00027062  0x00006e8a branch  0x000069b5 , 0x00000034 
+ 00027063  0x00006e8c increase  0xfffffffd , 0x00000006 
+ 00027064  0x00006e8d rtn 
+ 00027065  0x00006e96 bpatch  0x000000bf , 0x00004017 
+ 00027066  0x00006e97 arg  0x00000004 , 0x00000039 
+ 00027067  0x00006e98 arg  0x00004442 , 0x00000006 
+ 00027068  0x00006e99 arg  0x00000000 , 0x00000002 
+ 00027069  0x00006e9b ifetch  0x00000003 , 0x00000006 
+ 00027070  0x00006e9c and  0x0000003f , 0x000000ff , 0x0000003f 
+ 00027071  0x00006e9d ior  0x00000002 , 0x00000002 
+ 00027072  0x00006e9e loop  0x000069bd 
+ 00027073  0x00006e9f storet  0x00000001 , 0x00004441 
+ 00027074  0x00006ea0 rtn 
+ 00027075  0x00006ea4 arg  0x0000000c , 0x00000007 
+ 00027076  0x00006ea5 branch  0x000024e7 
+ 00027077  0x00006ea8 arg  0x0000000c , 0x00000007 
+ 00027078  0x00006ea9 branch  0x000024eb 
+ 00027079  0x00006eb5 bpatch  0x000000c1 , 0x00004018 
+ 00027080  0x00006eb6 sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00027081  0x00006eb7 rtn  0x00000005 
+ 00027082  0x00006eb8 copy  0x00000002 , 0x0000003f 
+ 00027083  0x00006eb9 and_into  0x000000ff , 0x0000003f 
+ 00027084  0x00006eba sub  0x0000003f , 0x0000000f , 0x0000003e 
+ 00027085  0x00006ebb nbranch  0x000069d9 , 0x00000002 
+ 00027086  0x00006ebc arg  0x00008070 , 0x00000005 
+ 00027087  0x00006ebe iadd  0x00000005 , 0x00000005 
+ 00027088  0x00006ebf copy  0x00000005 , 0x00000011 
+ 00027089  0x00006ec0 arg  0x0000003e , 0x00000002 
+ 00027090  0x00006ec1 istoret  0x00000001 , 0x00000005 
+ 00027091  0x00006ec2 call  0x000069dc 
+ 00027092  0x00006ec3 nop  0x0000001e 
+ 00027093  0x00006ec4 copy  0x00000011 , 0x00000005 
+ 00027094  0x00006ec5 arg  0x0000003f , 0x00000002 
+ 00027095  0x00006ec6 istoret  0x00000001 , 0x00000005 
+ 00027096  0x00006ec7 branch  0x000069e0 
+ 00027097  0x00006eca arg  0x000080d4 , 0x00000005 
+ 00027098  0x00006ecb increase  0xfffffff0 , 0x0000003f 
+ 00027099  0x00006ecc branch  0x000069cf 
+ 00027100  0x00006ed0 fetch  0x00000001 , 0x00008081 
+ 00027101  0x00006ed1 and_into  0x0000007f , 0x0000003f 
+ 00027102  0x00006ed2 store  0x00000001 , 0x00008081 
+ 00027103  0x00006ed3 rtn 
+ 00027104  0x00006ed6 fetch  0x00000001 , 0x00008081 
+ 00027105  0x00006ed7 or_into  0x00000080 , 0x0000003f 
+ 00027106  0x00006ed8 store  0x00000001 , 0x00008081 
+ 00027107  0x00006ed9 rtn 
+ 00027108  0x00006edc branch  0x00006bd0 
+ 00027109  0x00006edf branch  0x00006bd7 
+ 00027110  0x00006ee4 fetch  0x00000001 , 0x0000806f 
+ 00027111  0x00006ee5 set0  0x00000007 , 0x0000003f 
+ 00027112  0x00006ee6 store  0x00000001 , 0x0000806f 
+ 00027113  0x00006ee7 rtn 
+ 00027114  0x00006eea nbranch  0x000069ee , 0x00000028 
+ 00027115  0x00006eeb fetch  0x00000001 , 0x0000806f 
+ 00027116  0x00006eec set1  0x00000007 , 0x0000003f 
+ 00027117  0x00006eed store  0x00000001 , 0x0000806f 
+ 00027118  0x00006eef copy  0x00000002 , 0x0000003e 
+ 00027119  0x00006ef0 branch  0x000069f1 , 0x00000005 
+ 00027120  0x00006ef1 copy  0x00000013 , 0x0000003d 
+ 00027121  0x00006ef4 isolate0  0x00000000 , 0x0000003e 
+ 00027122  0x00006ef5 branch  0x00006b00 
+ 00027123  0x00006ef9 force  0x00000004 , 0x00000002 
+ 00027124  0x00006efb arg  0x000001e7 , 0x00000011 
+ 00027125  0x00006efc call  0x000069e6 
+ 00027126  0x00006efd call  0x000069ee 
+ 00027127  0x00006efe arg  0x000055aa , 0x00000011 
+ 00027128  0x00006eff fetch  0x00000002 , 0x000001e7 
+ 00027129  0x00006f00 ifetcht  0x00000002 , 0x00000006 
+ 00027130  0x00006f01 isub  0x00000011 , 0x0000003e 
+ 00027131  0x00006f02 rtn 
+ 00027132  0x00006f06 call  0x00006a0e , 0x00000028 
+ 00027133  0x00006f07 arg  0x00000002 , 0x00000002 
+ 00027134  0x00006f08 arg  0x000043c8 , 0x00000011 
+ 00027135  0x00006f09 call  0x000069ee 
+ 00027136  0x00006f0a fetch  0x00000002 , 0x000043c8 
+ 00027137  0x00006f0c store  0x00000002 , 0x000001e0 
+ 00027138  0x00006f0d call  0x00006a04 , 0x00000028 
+ 00027139  0x00006f0e rtn 
+ 00027140  0x00006f11 arg  0x00000010 , 0x00000002 
+ 00027141  0x00006f12 arg  0x000001ed , 0x00000011 
+ 00027142  0x00006f13 call  0x000069e6 
+ 00027143  0x00006f14 call  0x000069ee 
+ 00027144  0x00006f16 arg  0x000001ed , 0x00000006 
+ 00027145  0x00006f17 arg  0x00000010 , 0x00000039 
+ 00027146  0x00006f18 call  0x00007353 
+ 00027147  0x00006f19 call  0x000072da 
+ 00027148  0x00006f1a call  0x0000736f 
+ 00027149  0x00006f1b branch  0x000072d4 
+ 00027150  0x00006f1e jam  0x00000000 , 0x00008023 
+ 00027151  0x00006f1f call  0x000069e6 
+ 00027152  0x00006f20 branch  0x0000736f 
+ 00027153  0x00006f23 setarg  0x00000000 
+ 00027154  0x00006f24 store  0x00000002 , 0x00000699 
+ 00027155  0x00006f25 disable  0x0000002d 
+ 00027156  0x00006f26 call  0x000069f3 
+ 00027157  0x00006f27 nrtn  0x00000005 
+ 00027158  0x00006f28 enable  0x0000002d 
+ 00027159  0x00006f29 setarg  0x00008000 
+ 00027160  0x00006f2a store  0x00000003 , 0x00008022 
+ 00027161  0x00006f2b arg  0x00008025 , 0x00000011 
+ 00027162  0x00006f2c call  0x000069ea 
+ 00027163  0x00006f2d jam  0x00000000 , 0x00008023 
+ 00027164  0x00006f2e fetch  0x00000001 , 0x000001dd 
+ 00027165  0x00006f2f rtnbit0  0x00000000 
+ 00027166  0x00006f31 arg  0x00000006 , 0x00000002 
+ 00027167  0x00006f32 call  0x000069f4 
+ 00027168  0x00006f33 nbranch  0x00006a2e , 0x00000005 
+ 00027169  0x00006f34 ifetchr  0x00000011 , 0x00000002 , 0x00000006 
+ 00027170  0x00006f35 call  0x000069ee 
+ 00027171  0x00006f36 call  0x00006a25 
+ 00027172  0x00006f37 branch  0x00006a1e 
+ 00027173  0x00006f3b fetch  0x00000002 , 0x00000699 
+ 00027174  0x00006f3c arg  0x00000006 , 0x00000039 
+ 00027175  0x00006f3d arg  0x000001e7 , 0x00000006 
+ 00027176  0x00006f3e call  0x00007dcc 
+ 00027177  0x00006f3f fetchr  0x00000039 , 0x00000002 , 0x000001e9 
+ 00027178  0x00006f40 copy  0x00000011 , 0x00000006 
+ 00027179  0x00006f41 call  0x00007dcc 
+ 00027180  0x00006f42 store  0x00000002 , 0x00000699 
+ 00027181  0x00006f43 rtn 
+ 00027182  0x00006f46 fetch  0x00000001 , 0x0000021c 
+ 00027183  0x00006f47 beq  0x0000005a , 0x00006a3c 
+ 00027184  0x00006f48 arg  0x0000aa55 , 0x00000011 
+ 00027185  0x00006f49 fetch  0x00000002 , 0x000001e7 
+ 00027186  0x00006f4a isub  0x00000011 , 0x0000003e 
+ 00027187  0x00006f4b nbranch  0x00006a3e , 0x00000005 
+ 00027188  0x00006f4c arg  0x000055aa , 0x00000011 
+ 00027189  0x00006f4d fetch  0x00000002 , 0x000001e9 
+ 00027190  0x00006f4e isub  0x00000011 , 0x0000003e 
+ 00027191  0x00006f4f nbranch  0x00006a3e , 0x00000005 
+ 00027192  0x00006f50 fetch  0x00000002 , 0x000001eb 
+ 00027193  0x00006f51 fetcht  0x00000002 , 0x00000699 
+ 00027194  0x00006f52 isub  0x00000002 , 0x0000003e 
+ 00027195  0x00006f53 nbranch  0x00006a3e , 0x00000005 
+ 00027196  0x00006f55 set1  0x0000000f , 0x00000011 
+ 00027197  0x00006f56 branch  0x000069f1 
+ 00027198  0x00006f59 jam  0x00000000 , 0x000001dd 
+ 00027199  0x00006f5a rtn 
+ 00027200  0x00006f60 and  0x0000003f , 0x000000ff , 0x0000003f 
+ 00027201  0x00006f61 rshift4  0x0000003f , 0x0000003f 
+ 00027202  0x00006f62 store  0x00000001 , 0x000043cb 
+ 00027203  0x00006f63 branch  0x00006a59 
+ 00027204  0x00006f66 fetch  0x00000002 , 0x00008143 
+ 00027205  0x00006f67 nbranch  0x00006a40 , 0x00000034 
+ 00027206  0x00006f68 call  0x00006a59 
+ 00027207  0x00006f69 fetch  0x00000002 , 0x000043cb 
+ 00027208  0x00006f6a rtn  0x00000034 
+ 00027209  0x00006f6b call  0x00006a4b 
+ 00027210  0x00006f6c branch  0x000023ba 
+ 00027211  0x00006f6f fetch  0x00000001 , 0x000043cb 
+ 00027212  0x00006f70 rtn  0x00000034 
+ 00027213  0x00006f71 and  0x0000003f , 0x0000000f , 0x00000002 
+ 00027214  0x00006f72 storet  0x00000001 , 0x000043cb 
+ 00027215  0x00006f73 rshift4  0x0000003f , 0x0000003f 
+ 00027216  0x00006f74 ixor  0x00000002 , 0x0000003f 
+ 00027217  0x00006f75 bne  0x0000000f , 0x00006bc2 
+ 00027218  0x00006f76 branch  0x00006b8d 
+ 00027219  0x00006f79 fetch  0x00000001 , 0x00000219 
+ 00027220  0x00006f7a ncall  0x000023e0 , 0x00000034 
+ 00027221  0x00006f7b fetch  0x00000001 , 0x0000021a 
+ 00027222  0x00006f7c rtn  0x00000034 
+ 00027223  0x00006f7d store  0x00000001 , 0x000040c9 
+ 00027224  0x00006f7e branch  0x000023e4 
+ 00027225  0x00006f81 disable  0x00000028 
+ 00027226  0x00006f82 fetch  0x00000001 , 0x000043ca 
+ 00027227  0x00006f83 rtnbit0  0x00000003 
+ 00027228  0x00006f84 call  0x00006aad 
+ 00027229  0x00006f85 arg  0x00000ff0 , 0x0000003f 
+ 00027230  0x00006f86 iadd  0x00000012 , 0x00000012 
+ 00027231  0x00006f87 force  0x00000010 , 0x00000039 
+ 00027232  0x00006f88 arg  0x000001ed , 0x00000011 
+ 00027233  0x00006f89 call  0x00006b74 
+ 00027234  0x00006f8a jam  0x00000008 , 0x00008006 
+ 00027235  0x00006f8b arg  0x000001ed , 0x00000006 
+ 00027236  0x00006f8c call  0x0000735f 
+ 00027237  0x00006f8e arg  0x000001ed , 0x00000005 
+ 00027238  0x00006f8f call  0x00007c99 
+ 00027239  0x00006f90 branch  0x00007dba 
+ 00027240  0x00006f94 jam  0x00000025 , 0x00008050 
+ 00027241  0x00006f95 call  0x00006b3a 
+ 00027242  0x00006f96 arg  0x00000000 , 0x00000012 
+ 00027243  0x00006f97 force  0x0000000b , 0x00000039 
+ 00027244  0x00006f98 arg  0x000043c8 , 0x00000011 
+ 00027245  0x00006f99 call  0x00006b75 
+ 00027246  0x00006f9a fetchr  0x00000037 , 0x00000005 , 0x000043c8 
+ 00027247  0x00006f9b fetch  0x00000001 , 0x000043ca 
+ 00027248  0x00006f9c bbit0  0x00000004 , 0x00006a78 
+ 00027249  0x00006f9d jam  0x00000007 , 0x0000806f 
+ 00027250  0x00006f9f fetch  0x00000001 , 0x0000815e 
+ 00027251  0x00006fa0 bne  0x00000007 , 0x00006a72 
+ 00027252  0x00006fa1 fetch  0x00000001 , 0x00008160 
+ 00027253  0x00006fa2 lshift4  0x0000003f , 0x0000003f 
+ 00027254  0x00006fa3 store  0x00000001 , 0x0000806f 
+ 00027255  0x00006fa4 branch  0x00006a7b 
+ 00027256  0x00006fa7 call  0x00006af5 
+ 00027257  0x00006fa8 call  0x00007d76 
+ 00027258  0x00006fa9 call  0x00007d74 
+ 00027259  0x00006fab storer  0x00000037 , 0x00000005 , 0x000043c8 
+ 00027260  0x00006fad call  0x00006aad 
+ 00027261  0x00006fae arg  0x00000fd0 , 0x0000003f 
+ 00027262  0x00006faf iadd  0x00000012 , 0x00000012 
+ 00027263  0x00006fb0 arg  0x00000020 , 0x00000039 
+ 00027264  0x00006fb1 arg  0x000001fd , 0x00000011 
+ 00027265  0x00006fb2 call  0x00006b74 
+ 00027266  0x00006fb4 call  0x00006a53 
+ 00027267  0x00006fb5 call  0x00006a44 
+ 00027268  0x00006fb7 fetch  0x00000001 , 0x000043ca 
+ 00027269  0x00006fb8 bbit0  0x00000003 , 0x00006a8f 
+ 00027270  0x00006fb9 fetcht  0x00000001 , 0x000043cc 
+ 00027271  0x00006fba arg  0x00000000 , 0x0000003f 
+ 00027272  0x00006fbb set1  0x00000006 , 0x0000003f 
+ 00027273  0x00006fbc set1  0x00000007 , 0x0000003f 
+ 00027274  0x00006fbd iand  0x00000002 , 0x00000011 
+ 00027275  0x00006fbe sub  0x00000011 , 0x00000000 , 0x0000003e 
+ 00027276  0x00006fbf branch  0x00006af1 , 0x00000005 
+ 00027277  0x00006fc0 isub  0x00000011 , 0x0000003e 
+ 00027278  0x00006fc1 branch  0x00006af1 , 0x00000005 
+ 00027279  0x00006fc3 jam  0x00000000 , 0x00000030 
+ 00027280  0x00006fc4 arg  0x00006b1e , 0x00000013 
+ 00027281  0x00006fc6 call  0x00006ae5 
+ 00027282  0x00006fc7 nbranch  0x00006af1 , 0x00000002 
+ 00027283  0x00006fc8 fetch  0x00000002 , 0x000043c8 
+ 00027284  0x00006fc9 branch  0x00006a9c , 0x00000034 
+ 00027285  0x00006fca call  0x00006a01 
+ 00027286  0x00006fcb call  0x00006a11 
+ 00027287  0x00006fcc nbranch  0x00006a9c , 0x0000002d 
+ 00027288  0x00006fcd fetch  0x00000001 , 0x000001dd 
+ 00027289  0x00006fce compare  0x00000003 , 0x0000003f , 0x00000003 
+ 00027290  0x00006fcf nbranch  0x00006a91 , 0x00000001 
+ 00027291  0x00006fd0 call  0x00006aaa 
+ 00027292  0x00006fd2 call  0x00006b37 
+ 00027293  0x00006fd3 jam  0x00000000 , 0x00000030 
+ 00027294  0x00006fd5 call  0x00006ae5 
+ 00027295  0x00006fd6 nbranch  0x00006af1 , 0x00000002 
+ 00027296  0x00006fd7 call  0x00006ad7 
+ 00027297  0x00006fd8 call  0x00006cc4 
+ 00027298  0x00006fd9 fetch  0x00000001 , 0x000043ca 
+ 00027299  0x00006fda bbit1  0x00000002 , 0x00006abd 
+ 00027300  0x00006fdb call  0x00006adf 
+ 00027301  0x00006fdc nbranch  0x00006ab4 , 0x0000002d 
+ 00027302  0x00006fdd fetch  0x00000001 , 0x000001dd 
+ 00027303  0x00006fde compare  0x00000003 , 0x0000003f , 0x00000003 
+ 00027304  0x00006fdf nbranch  0x00006a9e , 0x00000001 
+ 00027305  0x00006fe0 branch  0x00006abd 
+ 00027306  0x00006fe3 setarg  0x000001ff 
+ 00027307  0x00006fe4 arg  0x00000000 , 0x0000003d 
+ 00027308  0x00006fe5 rtn 
+ 00027309  0x00006fe8 arg  0x00001000 , 0x00000012 
+ 00027310  0x00006fe9 fetch  0x00000001 , 0x00008144 
+ 00027311  0x00006fea bbit1  0x00000007 , 0x00006ab2 
+ 00027312  0x00006feb fetch  0x00000001 , 0x000043cc 
+ 00027313  0x00006fec rtnbit0  0x00000007 
+ 00027314  0x00006fee arg  0x00000000 , 0x00000012 
+ 00027315  0x00006fef rtn 
+ 00027316  0x00006ff3 call  0x00006cc1 
+ 00027317  0x00006ff4 fetch  0x00000001 , 0x000043ca 
+ 00027318  0x00006ff5 bbit1  0x00000002 , 0x00006abd 
+ 00027319  0x00006ff6 call  0x00006adf 
+ 00027320  0x00006ff7 nbranch  0x00006abd , 0x0000002d 
+ 00027321  0x00006ff8 fetch  0x00000001 , 0x000001dd 
+ 00027322  0x00006ff9 compare  0x00000003 , 0x0000003f , 0x00000003 
+ 00027323  0x00006ffa nbranch  0x00006a9e , 0x00000001 
+ 00027324  0x00006ffb branch  0x00006acd 
+ 00027325  0x00006ffe jam  0x00000000 , 0x00000030 
+ 00027326  0x00007000 call  0x00006ae5 
+ 00027327  0x00007001 nbranch  0x00006af1 , 0x00000002 
+ 00027328  0x00007002 fetch  0x00000001 , 0x000043ca 
+ 00027329  0x00007003 bbit1  0x00000001 , 0x00006acd 
+ 00027330  0x00007004 call  0x00006c20 
+ 00027331  0x00007005 nop  0x000000c8 
+ 00027332  0x00007006 call  0x00006c2f 
+ 00027333  0x00007007 nop  0x00000064 
+ 00027334  0x00007008 arg  0x00006c6c , 0x00000013 
+ 00027335  0x00007009 call  0x000069fc 
+ 00027336  0x0000700a call  0x00006a11 
+ 00027337  0x0000700b nbranch  0x00006acd , 0x0000002d 
+ 00027338  0x0000700c fetch  0x00000001 , 0x000001dd 
+ 00027339  0x0000700d compare  0x00000003 , 0x0000003f , 0x00000003 
+ 00027340  0x0000700e nbranch  0x00006abe , 0x00000001 
+ 00027341  0x00007011 call  0x00006ad1 
+ 00027342  0x00007012 fetch  0x00000001 , 0x000043ca 
+ 00027343  0x00007013 rtnbit0  0x00000000 
+ 00027344  0x00007014 branch  0x00006882 
+ 00027345  0x00007017 arg  0x000001ed , 0x00000005 
+ 00027346  0x00007018 call  0x00007c99 
+ 00027347  0x00007019 force  0x00000004 , 0x00000038 
+ 00027348  0x0000701a call  0x00007370 
+ 00027349  0x0000701b jam  0x00000021 , 0x00008050 
+ 00027350  0x0000701c rtn 
+ 00027351  0x0000701f fetch  0x00000001 , 0x00004429 
+ 00027352  0x00007020 fetcht  0x00000001 , 0x00004428 
+ 00027353  0x00007021 isub  0x00000002 , 0x0000003e 
+ 00027354  0x00007022 nbranch  0x00006cbc , 0x00000005 
+ 00027355  0x00007024 jam  0x00000004 , 0x00004427 
+ 00027356  0x00007025 jam  0x00000017 , 0x00004428 
+ 00027357  0x00007026 jam  0x00000016 , 0x00004429 
+ 00027358  0x00007027 branch  0x00006cbc 
+ 00027359  0x0000702c setarg  0x00000000 
+ 00027360  0x0000702d store  0x00000002 , 0x000001e0 
+ 00027361  0x0000702e arg  0x00006ce7 , 0x00000013 
+ 00027362  0x0000702f call  0x00006ca5 
+ 00027363  0x00007030 call  0x000069fc 
+ 00027364  0x00007031 branch  0x00006a11 
+ 00027365  0x00007037 call  0x00006aeb 
+ 00027366  0x00007038 fetch  0x00000001 , 0x00000030 
+ 00027367  0x00007039 increase  0x00000001 , 0x0000003f 
+ 00027368  0x0000703a sub  0x0000003f , 0x00000003 , 0x0000003e 
+ 00027369  0x0000703b store  0x00000001 , 0x00000030 
+ 00027370  0x0000703c rtn 
+ 00027371  0x0000703f fetch  0x00000001 , 0x00000030 
+ 00027372  0x00007040 rtn  0x00000034 
+ 00027373  0x00007041 fetch  0x00000001 , 0x0000021b 
+ 00027374  0x00007042 rtn  0x00000034 
+ 00027375  0x00007043 copy  0x0000003f , 0x00000039 
+ 00027376  0x00007044 branch  0x00007c96 
+ 00027377  0x00007048 call  0x00006ad1 
+ 00027378  0x00007049 call  0x000069e6 
+ 00027379  0x0000704b call  0x00007d7c 
+ 00027380  0x0000704c rtn 
+ 00027381  0x0000704f and_into  0x000000e0 , 0x0000003f 
+ 00027382  0x00007050 rshift  0x0000003f , 0x0000003f 
+ 00027383  0x00007051 store  0x00000001 , 0x0000806f 
+ 00027384  0x00007052 setarg  0x00000001 
+ 00027385  0x00007053 arg  0x000043cd , 0x00000006 
+ 00027386  0x00007055 ifetcht  0x00000002 , 0x00000006 
+ 00027387  0x00007056 storet  0x00000002 , 0x0000804c 
+ 00027388  0x00007057 store  0x00000001 , 0x00008020 
+ 00027389  0x00007058 lshift  0x0000003f , 0x0000003f 
+ 00027390  0x00007059 bbit0  0x00000003 , 0x00006afa 
+ 00027391  0x0000705a rtn 
+ 00027392  0x0000705e fetch  0x00000001 , 0x000001dd 
+ 00027393  0x0000705f lshift  0x0000003f , 0x0000003f 
+ 00027394  0x00007060 setflag  0x00000001 , 0x00000000 , 0x0000003f 
+ 00027395  0x00007061 isolate0  0x0000000f , 0x00000011 
+ 00027396  0x00007062 rtn  0x00000001 
+ 00027397  0x00007063 store  0x00000001 , 0x000001dd 
+ 00027398  0x00007064 rtn 
+ 00027399  0x00007068 fetch  0x00000001 , 0x0000806f 
+ 00027400  0x00007069 rtnbit0  0x00000007 
+ 00027401  0x0000706a branch  0x00006b0d 
+ 00027402  0x0000706c fetch  0x00000001 , 0x00008128 
+ 00027403  0x0000706d qisolate1  0x0000003f 
+ 00027404  0x0000706e rtn  0x00000001 
+ 00027405  0x00007070 fetch  0x00000001 , 0x00008108 
+ 00027406  0x00007071 bbit0  0x00000001 , 0x00006b0a 
+ 00027407  0x00007072 call  0x000072d4 
+ 00027408  0x00007073 branch  0x00006b0a 
+ 00027409  0x00007088 fetch  0x00000002 , 0x000040f0 
+ 00027410  0x00007089 rtn  0x00000034 
+ 00027411  0x0000708a jam  0x00000080 , 0x00008023 
+ 00027412  0x0000708b jam  0x00000000 , 0x00008022 
+ 00027413  0x0000708c jam  0x00000000 , 0x00008024 
+ 00027414  0x0000708d fetcht  0x00000002 , 0x000040f2 
+ 00027415  0x0000708e lshift2  0x00000002 , 0x00000039 
+ 00027416  0x0000708f iforce  0x00000006 
+ 00027417  0x00007091 ifetch  0x00000001 , 0x00000006 
+ 00027418  0x00007092 store  0x00000001 , 0x00008025 
+ 00027419  0x00007093 loop  0x00006b19 
+ 00027420  0x00007094 jam  0x00000000 , 0x00008023 
+ 00027421  0x00007095 rtn 
+ 00027422  0x0000709d copy  0x00000002 , 0x00000039 
+ 00027423  0x0000709e fetch  0x00000002 , 0x000001e0 
+ 00027424  0x0000709f iadd  0x00000002 , 0x00000002 
+ 00027425  0x000070a0 storet  0x00000002 , 0x000001e0 
+ 00027426  0x000070a1 iforce  0x00000012 
+ 00027427  0x000070a2 copy  0x00000011 , 0x0000002e 
+ 00027428  0x000070a3 jam  0x00000010 , 0x00008006 
+ 00027429  0x000070a4 call  0x00006b74 
+ 00027430  0x000070a5 copy  0x0000002e , 0x00000011 
+ 00027431  0x000070a6 isolate0  0x0000000f , 0x00000011 
+ 00027432  0x000070a7 rtn  0x00000001 
+ 00027433  0x000070a8 call  0x00007dc6 , 0x00000034 
+ 00027434  0x000070a9 branch  0x00006b00 
+ 00027435  0x000070ad jam  0x00000001 , 0x00008ac8 
+ 00027436  0x000070ae nop  0x0000012c 
+ 00027437  0x000070af jam  0x00000005 , 0x00008ac8 
+ 00027438  0x000070b0 nop  0x00000064 
+ 00027439  0x000070b1 jam  0x00000025 , 0x00008ac8 
+ 00027440  0x000070b2 nop  0x000003e8 
+ 00027441  0x000070b3 jam  0x00000027 , 0x00008ac8 
+ 00027442  0x000070b4 nop  0x0000012c 
+ 00027443  0x000070b5 rtn 
+ 00027444  0x000070b8 call  0x00006b2b 
+ 00027445  0x000070b9 jam  0x0000003f , 0x00008ac8 
+ 00027446  0x000070ba rtn 
+ 00027447  0x000070bd jam  0x00000083 , 0x00008047 
+ 00027448  0x000070bf jam  0x00000000 , 0x00008ac8 
+ 00027449  0x000070c0 rtn 
+ 00027450  0x000070c3 call  0x00006b2b 
+ 00027451  0x000070c6 jam  0x00000082 , 0x00008047 
+ 00027452  0x000070c7 nop  0x0000000c 
+ 00027453  0x000070c8 jam  0x00000080 , 0x00008047 
+ 00027454  0x000070c9 jam  0x00000082 , 0x00008047 
+ 00027455  0x000070ca nop  0x00000096 
+ 00027456  0x000070cb rtn 
+ 00027457  0x000070cf lshift3  0x00000012 , 0x00000012 
+ 00027458  0x000070d0 storer  0x00000012 , 0x00000002 , 0x00008044 
+ 00027459  0x000070d1 jam  0x00000000 , 0x00008046 
+ 00027460  0x000070d2 rtn 
+ 00027461  0x000070d6 bpatch  0x000000c4 , 0x00004018 
+ 00027462  0x000070d7 call  0x00006b34 
+ 00027463  0x000070d8 call  0x00006b41 
+ 00027464  0x000070d9 call  0x00006b3b 
+ 00027465  0x000070db ifetcht  0x00000001 , 0x00000011 
+ 00027466  0x000070dc increase  0x00000001 , 0x00000011 
+ 00027467  0x000070dd force  0x00000000 , 0x00000007 
+ 00027468  0x000070df qisolate0  0x00000002 
+ 00027469  0x000070e0 branch  0x00006b6c , 0x00000001 
+ 00027470  0x000070e1 fetch  0x00000001 , 0x00008046 
+ 00027471  0x000070e2 set1  0x00000006 , 0x0000003f 
+ 00027472  0x000070e3 set1  0x00000007 , 0x0000003f 
+ 00027473  0x000070e4 store  0x00000001 , 0x00008046 
+ 00027474  0x000070e5 jam  0x00000002 , 0x00008047 
+ 00027475  0x000070e6 jam  0x00000082 , 0x00008047 
+ 00027476  0x000070e7 set0  0x00000007 , 0x0000003f 
+ 00027477  0x000070e8 store  0x00000001 , 0x00008046 
+ 00027478  0x000070e9 jam  0x0000008a , 0x00008047 
+ 00027479  0x000070ea nop  0x0000000b 
+ 00027480  0x000070eb jam  0x000000ca , 0x00008047 
+ 00027481  0x000070ec nop  0x00000021 
+ 00027482  0x000070ed jam  0x0000004a , 0x00008047 
+ 00027483  0x000070ee nop  0x0000002c 
+ 00027484  0x000070ef jam  0x000000ca , 0x00008047 
+ 00027485  0x000070f0 nop  0x00000016 
+ 00027486  0x000070f1 jam  0x0000008a , 0x00008047 
+ 00027487  0x000070f2 nop  0x00000021 
+ 00027488  0x000070f3 jam  0x00000082 , 0x00008047 
+ 00027489  0x000070f4 nop  0x00000001 
+ 00027490  0x000070f5 jam  0x00000092 , 0x00008047 
+ 00027491  0x000070f6 nop  0x0000000a 
+ 00027492  0x000070f7 jam  0x000000b2 , 0x00008047 
+ 00027493  0x000070f8 fetch  0x00000001 , 0x00008007 
+ 00027494  0x000070f9 jam  0x00000092 , 0x00008047 
+ 00027495  0x000070fa nop  0x00000001 
+ 00027496  0x000070fb jam  0x00000082 , 0x00008047 
+ 00027497  0x000070fc nop  0x00000001 
+ 00027498  0x000070fd qisolate0  0x0000003f 
+ 00027499  0x000070fe branch  0x00006b4c , 0x00000001 
+ 00027500  0x00007100 fetch  0x00000002 , 0x00008044 
+ 00027501  0x00007101 increase  0x00000001 , 0x0000003f 
+ 00027502  0x00007102 store  0x00000002 , 0x00008044 
+ 00027503  0x00007103 increase  0x00000001 , 0x00000007 
+ 00027504  0x00007104 compare  0x00000008 , 0x00000007 , 0x0000000f 
+ 00027505  0x00007105 nbranch  0x00006b4c , 0x00000001 
+ 00027506  0x00007106 loop  0x00006b49 
+ 00027507  0x00007107 branch  0x00006b38 
+ 00027508  0x0000710e bpatch  0x000000c5 , 0x00004018 
+ 00027509  0x00007110 call  0x00006b41 
+ 00027510  0x00007111 jam  0x000000a2 , 0x00008047 
+ 00027511  0x00007112 increase  0x00000008 , 0x00000012 
+ 00027512  0x00007113 arg  0x00000000 , 0x00000007 
+ 00027513  0x00007114 setarg  0xffffffff 
+ 00027514  0x00007116 fetcht  0x00000001 , 0x00008007 
+ 00027515  0x00007117 istoret  0x00000001 , 0x00000011 
+ 00027516  0x00007118 bcrc  0x00000002 
+ 00027517  0x00007119 jam  0x00000020 , 0x00008006 
+ 00027518  0x0000711a storer  0x00000012 , 0x00000002 , 0x00008044 
+ 00027519  0x0000711b isolate1  0x0000000f , 0x00000011 
+ 00027520  0x0000711c branch  0x00006b83 , 0x00000001 
+ 00027521  0x0000711d increase  0x00000001 , 0x00000011 
+ 00027522  0x0000711e branch  0x00006b89 
+ 00027523  0x00007121 nbranch  0x00006b89 , 0x00000028 
+ 00027524  0x00007122 increase  0x00000001 , 0x00000007 
+ 00027525  0x00007123 compare  0x00000000 , 0x00000007 , 0x0000000f 
+ 00027526  0x00007124 nbranch  0x00006b89 , 0x00000001 
+ 00027527  0x00007125 call  0x000072d4 
+ 00027528  0x00007126 jam  0x00000010 , 0x00008006 
+ 00027529  0x00007128 increase  0x00000008 , 0x00000012 
+ 00027530  0x00007129 loop  0x00006b7a 
+ 00027531  0x0000712a jam  0x00000082 , 0x00008047 
+ 00027532  0x0000712b rtn 
+ 00027533  0x00007137 fetch  0x00000001 , 0x000043cb 
+ 00027534  0x00007138 beq  0x0000000a , 0x00006b9e 
+ 00027535  0x00007139 beq  0x00000004 , 0x00006b9f 
+ 00027536  0x0000713b beq  0x00000008 , 0x00006ba3 
+ 00027537  0x0000713c beq  0x00000009 , 0x00006ba7 
+ 00027538  0x0000713d beq  0x00000006 , 0x00006ba7 
+ 00027539  0x0000713e beq  0x0000000c , 0x00006b9e 
+ 00027540  0x0000713f beq  0x0000000d , 0x00006bb1 
+ 00027541  0x00007140 beq  0x0000000e , 0x00006bab 
+ 00027542  0x00007141 beq  0x0000000b , 0x00006b99 
+ 00027543  0x00007142 beq  0x0000000f , 0x00006b9d 
+ 00027544  0x00007143 branch  0x00006bc2 
+ 00027545  0x00007147 arg  0x000043b2 , 0x0000003f 
+ 00027546  0x00007148 arg  0x00006858 , 0x00000002 
+ 00027547  0x00007149 call  0x00006bb7 
+ 00027548  0x0000714a branch  0x00006bae 
+ 00027549  0x0000714d branch  0x00006bae 
+ 00027550  0x00007152 branch  0x00006bbf 
+ 00027551  0x00007156 arg  0x00005099 , 0x0000003f 
+ 00027552  0x00007157 arg  0x00006858 , 0x00000002 
+ 00027553  0x00007158 call  0x00006bb7 
+ 00027554  0x00007159 branch  0x00006bae 
+ 00027555  0x0000715c arg  0x000043b2 , 0x0000003f 
+ 00027556  0x0000715d arg  0x000053dc , 0x00000002 
+ 00027557  0x0000715e call  0x00006bb7 
+ 00027558  0x0000715f branch  0x00006bae 
+ 00027559  0x00007162 arg  0x000043b2 , 0x0000003f 
+ 00027560  0x00007163 arg  0x00004770 , 0x00000002 
+ 00027561  0x00007164 call  0x00006bb7 
+ 00027562  0x00007165 branch  0x00006bae 
+ 00027563  0x00007168 arg  0x000047b7 , 0x0000003f 
+ 00027564  0x00007169 arg  0x00006858 , 0x00000002 
+ 00027565  0x0000716a call  0x00006bb7 
+ 00027566  0x0000716c arg  0x00003728 , 0x0000003f 
+ 00027567  0x0000716d arg  0x00004292 , 0x00000002 
+ 00027568  0x0000716e branch  0x00006bbc 
+ 00027569  0x00007171 arg  0x000047b7 , 0x0000003f 
+ 00027570  0x00007172 arg  0x00006858 , 0x00000002 
+ 00027571  0x00007173 call  0x00006bb7 
+ 00027572  0x00007174 arg  0x00002acb , 0x0000003f 
+ 00027573  0x00007175 arg  0x0000310d , 0x00000002 
+ 00027574  0x00007176 branch  0x00006bbc 
+ 00027575  0x0000717a lshift16  0x00000002 , 0x00000002 
+ 00027576  0x0000717b ior  0x00000002 , 0x0000003f 
+ 00027577  0x0000717c branch  0x000023cf 
+ 00027578  0x00007180 arg  0x00002b8f , 0x0000003f 
+ 00027579  0x00007181 arg  0x0000310d , 0x00000002 
+ 00027580  0x00007183 lshift16  0x00000002 , 0x00000002 
+ 00027581  0x00007184 ior  0x00000002 , 0x0000003f 
+ 00027582  0x00007185 branch  0x000023d6 
+ 00027583  0x00007188 arg  0x00003112 , 0x0000003f 
+ 00027584  0x00007189 arg  0x000036df , 0x00000002 
+ 00027585  0x0000718a branch  0x00006bbc 
+ 00027586  0x0000718d call  0x00006bbf 
+ 00027587  0x0000718e arg  0x00002b8f , 0x0000003f 
+ 00027588  0x0000718f arg  0x0000310d , 0x00000002 
+ 00027589  0x00007190 branch  0x00006bb7 
+ 00027590  0x00007197 bpatch  0x000000c6 , 0x00004018 
+ 00027591  0x00007199 fetch  0x00000001 , 0x000043f5 
+ 00027592  0x0000719a store  0x00000001 , 0x00008080 
+ 00027593  0x0000719b fetch  0x00000001 , 0x000043f6 
+ 00027594  0x0000719c store  0x00000001 , 0x00008081 
+ 00027595  0x0000719d setarg  0x000001de 
+ 00027596  0x0000719e store  0x00000002 , 0x00008084 
+ 00027597  0x0000719f setarg  0x000001e3 
+ 00027598  0x000071a0 store  0x00000002 , 0x00008086 
+ 00027599  0x000071a1 branch  0x000069dc 
+ 00027600  0x000071a7 set1  0x00000007 , 0x0000003f 
+ 00027601  0x000071a8 store  0x00000002 , 0x000001de 
+ 00027602  0x000071a9 bpatch  0x000000c7 , 0x00004018 
+ 00027603  0x000071aa jam  0x00000002 , 0x00008082 
+ 00027604  0x000071ab jam  0x00000000 , 0x00008088 
+ 00027605  0x000071ac jam  0x00000002 , 0x00008006 
+ 00027606  0x000071ad branch  0x00006be0 
+ 00027607  0x000071b1 force  0x00000001 , 0x00000002 
+ 00027608  0x000071b3 store  0x00000001 , 0x000001de 
+ 00027609  0x000071b4 bpatch  0x000000c8 , 0x00004019 
+ 00027610  0x000071b5 jam  0x00000001 , 0x00008082 
+ 00027611  0x000071b6 storet  0x00000002 , 0x00008088 
+ 00027612  0x000071b7 jam  0x00000002 , 0x00008006 
+ 00027613  0x000071b8 call  0x00006be0 
+ 00027614  0x000071b9 fetch  0x00000001 , 0x000001e3 
+ 00027615  0x000071ba rtn 
+ 00027616  0x000071c1 nop  0x00000005 
+ 00027617  0x000071c2 fetch  0x00000001 , 0x00008128 
+ 00027618  0x000071c3 bbit0  0x00000003 , 0x00006be0 
+ 00027619  0x000071c4 rtn 
+ 00027620  0x000071cd disable  0x00000028 
+ 00027621  0x000071ce copy  0x0000003f , 0x00000012 
+ 00027622  0x000071cf fetch  0x00000001 , 0x00004420 
+ 00027623  0x000071d0 rtnne  0x00000000 
+ 00027624  0x000071d1 enable  0x00000028 
+ 00027625  0x000071d2 copy  0x00000012 , 0x0000003f 
+ 00027626  0x000071d3 branch  0x00006bf2 
+ 00027627  0x000071d7 fetch  0x00000001 , 0x00004420 
+ 00027628  0x000071d8 beq  0x00000001 , 0x00006bf2 
+ 00027629  0x000071d9 beq  0x00000002 , 0x00006bf8 
+ 00027630  0x000071da beq  0x00000003 , 0x00006c00 
+ 00027631  0x000071db beq  0x00000004 , 0x00006c04 
+ 00027632  0x000071dc beq  0x00000005 , 0x00006c0b 
+ 00027633  0x000071dd rtn 
+ 00027634  0x000071e0 store  0x00000003 , 0x00004419 
+ 00027635  0x000071e1 copy  0x00000011 , 0x0000003f 
+ 00027636  0x000071e2 store  0x00000002 , 0x0000441c 
+ 00027637  0x000071e3 storet  0x00000002 , 0x0000441e 
+ 00027638  0x000071e4 jam  0x00000002 , 0x00004420 
+ 00027639  0x000071e5 branch  0x00006c20 
+ 00027640  0x000071e8 call  0x00006c20 
+ 00027641  0x000071e9 jam  0x00000003 , 0x00004420 
+ 00027642  0x000071ea call  0x00006c26 
+ 00027643  0x000071eb arg  0x000001de , 0x00000011 
+ 00027644  0x000071ec jam  0x00000004 , 0x00008082 
+ 00027645  0x000071ed fetch  0x00000003 , 0x00004419 
+ 00027646  0x000071ee arg  0x00000020 , 0x00000002 
+ 00027647  0x000071ef branch  0x00006c40 
+ 00027648  0x000071f2 call  0x00006c20 
+ 00027649  0x000071f3 call  0x00006c63 
+ 00027650  0x000071f4 jam  0x00000004 , 0x00004420 
+ 00027651  0x000071f5 rtn 
+ 00027652  0x000071f9 bpatch  0x000000c9 , 0x00004019 
+ 00027653  0x000071fa call  0x00006c20 
+ 00027654  0x000071fb jam  0x00000005 , 0x00004420 
+ 00027655  0x000071fc call  0x00006c26 
+ 00027656  0x000071fd call  0x00006c18 
+ 00027657  0x000071fe call  0x00006c3c 
+ 00027658  0x000071ff branch  0x00006c13 
+ 00027659  0x00007201 call  0x00006c20 
+ 00027660  0x00007202 call  0x00006c26 
+ 00027661  0x00007203 setarg  0x00000005 
+ 00027662  0x00007204 call  0x00006bd7 
+ 00027663  0x00007205 rtnbit1  0x00000000 
+ 00027664  0x00007206 jam  0x00000000 , 0x00004420 
+ 00027665  0x00007207 fetch  0x00000002 , 0x000043e7 
+ 00027666  0x00007208 branch  0x00007d79 
+ 00027667  0x0000720a fetch  0x00000004 , 0x00000678 
+ 00027668  0x0000720b fetcht  0x00000002 , 0x0000441c 
+ 00027669  0x0000720d increase  0xfffffffc , 0x00000002 
+ 00027670  0x0000720e istore  0x00000004 , 0x00000002 
+ 00027671  0x0000720f rtn 
+ 00027672  0x00007212 fetcht  0x00000002 , 0x0000441c 
+ 00027673  0x00007213 copy  0x00000002 , 0x00000011 
+ 00027674  0x00007214 increase  0xfffffffc , 0x00000002 
+ 00027675  0x00007215 ifetch  0x00000004 , 0x00000002 
+ 00027676  0x00007216 store  0x00000004 , 0x00000678 
+ 00027677  0x00007217 fetcht  0x00000002 , 0x0000441e 
+ 00027678  0x00007218 fetch  0x00000003 , 0x00004419 
+ 00027679  0x00007219 rtn 
+ 00027680  0x0000721c bpatch  0x000000ca , 0x00004019 
+ 00027681  0x0000721d call  0x00006c8b 
+ 00027682  0x0000721e call  0x000069dc 
+ 00027683  0x0000721f setarg  0x00000000 
+ 00027684  0x00007220 store  0x00000004 , 0x000001de 
+ 00027685  0x00007221 rtn 
+ 00027686  0x00007224 jam  0x00000006 , 0x000001de 
+ 00027687  0x00007226 setarg  0x00000000 
+ 00027688  0x00007227 store  0x00000002 , 0x00008088 
+ 00027689  0x00007228 setarg  0x00000001 
+ 00027690  0x00007229 store  0x00000002 , 0x00008082 
+ 00027691  0x0000722a setarg  0x000001de 
+ 00027692  0x0000722b store  0x00000002 , 0x00008084 
+ 00027693  0x0000722c jam  0x00000002 , 0x00008006 
+ 00027694  0x0000722d branch  0x00006be0 
+ 00027695  0x00007230 jam  0x000000ab , 0x000001de 
+ 00027696  0x00007231 branch  0x00006c27 
+ 00027697  0x00007234 jam  0x000000b9 , 0x000001de 
+ 00027698  0x00007235 branch  0x00006c27 
+ 00027699  0x00007238 store  0x00000003 , 0x00000670 
+ 00027700  0x00007239 storet  0x00000002 , 0x00000678 
+ 00027701  0x0000723a storer  0x00000011 , 0x00000002 , 0x00000684 
+ 00027702  0x0000723b bpatchx  0x000000b5 , 0x00004036 
+ 00027703  0x0000723c call  0x00006c26 
+ 00027704  0x0000723d fetch  0x00000003 , 0x00000670 
+ 00027705  0x0000723e fetcht  0x00000002 , 0x00000678 
+ 00027706  0x0000723f fetchr  0x00000011 , 0x00000002 , 0x00000684 
+ 00027707  0x00007240 branch  0x00006c3c 
+ 00027708  0x00007244 increase  0x00000004 , 0x00000002 
+ 00027709  0x00007245 storet  0x00000002 , 0x00008082 
+ 00027710  0x00007246 arg  0x00000002 , 0x00000002 
+ 00027711  0x00007247 increase  0xfffffffc , 0x00000011 
+ 00027712  0x0000724a istoret  0x00000001 , 0x00000011 
+ 00027713  0x0000724b rshift16  0x0000003f , 0x00000002 
+ 00027714  0x0000724c istoret  0x00000001 , 0x00000005 
+ 00027715  0x0000724d rshift8  0x0000003f , 0x00000002 
+ 00027716  0x0000724e istoret  0x00000001 , 0x00000005 
+ 00027717  0x0000724f istore  0x00000001 , 0x00000005 
+ 00027718  0x00007250 deposit  0x00000011 
+ 00027719  0x00007251 store  0x00000002 , 0x00008084 
+ 00027720  0x00007252 setarg  0x00000000 
+ 00027721  0x00007253 store  0x00000002 , 0x00008088 
+ 00027722  0x00007254 jam  0x00000002 , 0x00008006 
+ 00027723  0x00007255 call  0x00006be0 
+ 00027724  0x00007256 branch  0x00006c63 
+ 00027725  0x0000725b storet  0x00000002 , 0x00008088 
+ 00027726  0x0000725c rshift16  0x0000003f , 0x00000002 
+ 00027727  0x0000725d storet  0x00000001 , 0x000001df 
+ 00027728  0x0000725e rshift8  0x0000003f , 0x00000002 
+ 00027729  0x0000725f storet  0x00000001 , 0x000001e0 
+ 00027730  0x00007260 store  0x00000001 , 0x000001e1 
+ 00027731  0x00007261 setarg  0x00000004 
+ 00027732  0x00007262 store  0x00000002 , 0x00008082 
+ 00027733  0x00007263 jam  0x00000003 , 0x000001de 
+ 00027734  0x00007264 setarg  0x000001de 
+ 00027735  0x00007265 store  0x00000002 , 0x00008084 
+ 00027736  0x00007266 deposit  0x00000011 
+ 00027737  0x00007267 store  0x00000002 , 0x00008086 
+ 00027738  0x00007268 fetch  0x00000001 , 0x00008080 
+ 00027739  0x00007269 isolate0  0x0000000f , 0x00000011 
+ 00027740  0x0000726a setflag  0x00000001 , 0x00000006 , 0x0000003f 
+ 00027741  0x0000726b store  0x00000001 , 0x00008080 
+ 00027742  0x0000726c jam  0x00000002 , 0x00008006 
+ 00027743  0x0000726e fetch  0x00000001 , 0x00008128 
+ 00027744  0x0000726f bbit1  0x00000007 , 0x00006c5f 
+ 00027745  0x00007270 arg  0x00000003 , 0x00000007 
+ 00027746  0x00007271 branch  0x00006be0 
+ 00027747  0x00007274 setarg  0x000007d0 
+ 00027748  0x00007275 call  0x0000235c 
+ 00027749  0x00007276 call  0x00006c26 
+ 00027750  0x00007277 setarg  0x000001e3 
+ 00027751  0x00007278 store  0x00000002 , 0x00008086 
+ 00027752  0x00007279 setarg  0x00000005 
+ 00027753  0x0000727a call  0x00006bd7 
+ 00027754  0x0000727b bbit1  0x00000000 , 0x00006c63 
+ 00027755  0x0000727c rtn 
+ 00027756  0x00007283 storet  0x00000002 , 0x00008088 
+ 00027757  0x00007284 setarg  0x00000004 
+ 00027758  0x00007285 store  0x00000002 , 0x00008082 
+ 00027759  0x00007286 jam  0x00000003 , 0x000001de 
+ 00027760  0x00007287 setarg  0x000001de 
+ 00027761  0x00007288 store  0x00000002 , 0x00008084 
+ 00027762  0x00007289 deposit  0x00000011 
+ 00027763  0x0000728a store  0x00000002 , 0x00008086 
+ 00027764  0x0000728b fetch  0x00000001 , 0x00008080 
+ 00027765  0x0000728c isolate0  0x0000000f , 0x00000011 
+ 00027766  0x0000728d setflag  0x00000001 , 0x00000006 , 0x0000003f 
+ 00027767  0x0000728e store  0x00000001 , 0x00008080 
+ 00027768  0x0000728f jam  0x00000002 , 0x00008006 
+ 00027769  0x00007291 fetch  0x00000001 , 0x00008128 
+ 00027770  0x00007292 bbit1  0x00000007 , 0x00006c79 
+ 00027771  0x00007293 arg  0x00000003 , 0x00000007 
+ 00027772  0x00007294 call  0x00006b07 
+ 00027773  0x00007295 call  0x00006be0 
+ 00027774  0x00007296 isolate1  0x00000002 , 0x0000003f 
+ 00027775  0x00007297 call  0x00006b00 
+ 00027776  0x00007298 fetch  0x00000001 , 0x000001df 
+ 00027777  0x00007299 lshift16  0x0000003f , 0x00000012 
+ 00027778  0x0000729a fetch  0x00000002 , 0x000001e0 
+ 00027779  0x0000729b byteswap  0x0000003f , 0x0000003f 
+ 00027780  0x0000729c ior  0x00000012 , 0x0000003f 
+ 00027781  0x0000729d iadd  0x00000002 , 0x0000003f 
+ 00027782  0x0000729e store  0x00000001 , 0x000001e1 
+ 00027783  0x0000729f rshift8  0x0000003f , 0x0000003f 
+ 00027784  0x000072a0 byteswap  0x0000003f , 0x0000003f 
+ 00027785  0x000072a1 store  0x00000002 , 0x000001df 
+ 00027786  0x000072a2 rtn 
+ 00027787  0x000072a5 fetch  0x00000001 , 0x00004421 
+ 00027788  0x000072a6 fetcht  0x00000001 , 0x00004423 
+ 00027789  0x000072a7 isub  0x00000002 , 0x0000003e 
+ 00027790  0x000072a8 nbranch  0x00006c90 , 0x00000005 
+ 00027791  0x000072a9 call  0x00006c9c 
+ 00027792  0x000072ac fetch  0x00000001 , 0x00004421 
+ 00027793  0x000072ad arg  0x00000020 , 0x00000002 
+ 00027794  0x000072ae call  0x00006f21 
+ 00027795  0x000072af fetch  0x00000001 , 0x00004424 
+ 00027796  0x000072b0 arg  0x00000021 , 0x00000002 
+ 00027797  0x000072b1 call  0x00006f21 
+ 00027798  0x000072b2 fetch  0x00000001 , 0x00004422 
+ 00027799  0x000072b3 arg  0x00000022 , 0x00000002 
+ 00027800  0x000072b4 call  0x00006f21 
+ 00027801  0x000072b5 fetch  0x00000001 , 0x00004423 
+ 00027802  0x000072b6 arg  0x0000001f , 0x00000002 
+ 00027803  0x000072b7 branch  0x00006f21 
+ 00027804  0x000072ba jam  0x00000001 , 0x00004421 
+ 00027805  0x000072bb jam  0x00000003 , 0x00004422 
+ 00027806  0x000072bc jam  0x00000000 , 0x00004423 
+ 00027807  0x000072bd jam  0x00000002 , 0x00004424 
+ 00027808  0x000072be jam  0x0000000b , 0x00004425 
+ 00027809  0x000072bf jam  0x0000000a , 0x00004426 
+ 00027810  0x000072c0 rtn 
+ 00027811  0x000072c4 jam  0x00000001 , 0x00008010 
+ 00027812  0x000072c5 rtn 
+ 00027813  0x000072cc jam  0x00000005 , 0x0000808b 
+ 00027814  0x000072cd jam  0x00000007 , 0x0000808c 
+ 00027815  0x000072ce jam  0x00000007 , 0x0000808d 
+ 00027816  0x000072cf jam  0x00000007 , 0x0000808e 
+ 00027817  0x000072d0 jam  0x00000007 , 0x0000808f 
+ 00027818  0x000072d1 jam  0x00000005 , 0x00008090 
+ 00027819  0x000072d2 jam  0x00000000 , 0x00008091 
+ 00027820  0x000072d3 rtn 
+ 00027821  0x000072d6 jam  0x0000000c , 0x0000808b 
+ 00027822  0x000072d7 jam  0x0000000d , 0x0000808c 
+ 00027823  0x000072d8 jam  0x0000000d , 0x0000808d 
+ 00027824  0x000072d9 jam  0x0000000d , 0x0000808e 
+ 00027825  0x000072da jam  0x0000000d , 0x0000808f 
+ 00027826  0x000072db jam  0x0000000c , 0x00008090 
+ 00027827  0x000072dc jam  0x00000000 , 0x00008091 
+ 00027828  0x000072dd rtn 
+ 00027829  0x000072e0 call  0x00006cd8 
+ 00027830  0x000072e2 fetch  0x00000001 , 0x00004428 
+ 00027831  0x000072e3 arg  0x0000006c , 0x00000002 
+ 00027832  0x000072e4 call  0x00006f21 
+ 00027833  0x000072e5 fetch  0x00000001 , 0x00004429 
+ 00027834  0x000072e6 arg  0x0000006d , 0x00000002 
+ 00027835  0x000072e7 branch  0x00006f21 
+ 00027836  0x000072ea call  0x00006cdf 
+ 00027837  0x000072eb branch  0x00006cb6 
+ 00027838  0x000072ee fetch  0x00000001 , 0x00008128 
+ 00027839  0x000072ef bbit0  0x00000005 , 0x00006cbe 
+ 00027840  0x000072f0 rtn 
+ 00027841  0x0000730b set1  0x00000028 , 0x00000000 
+ 00027842  0x0000730c jam  0x00000008 , 0x000043f4 
+ 00027843  0x0000730d rtn 
+ 00027844  0x00007310 set0  0x00000028 , 0x00000000 
+ 00027845  0x00007311 jam  0x00000020 , 0x000043f4 
+ 00027846  0x00007312 rtn 
+ 00027847  0x00007316 fetch  0x00000001 , 0x000043eb 
+ 00027848  0x00007317 iadd  0x00000012 , 0x0000003f 
+ 00027849  0x00007318 store  0x00000001 , 0x000001e0 
+ 00027850  0x00007319 branch  0x00006cce 
+ 00027851  0x0000731c fetch  0x00000002 , 0x000001e0 
+ 00027852  0x0000731d byteswap  0x0000003f , 0x0000003f 
+ 00027853  0x0000731e store  0x00000001 , 0x000001e0 
+ 00027854  0x00007324 setarg  0x00000003 
+ 00027855  0x00007325 store  0x00000002 , 0x00008092 
+ 00027856  0x00007326 jam  0x000000a0 , 0x000001df 
+ 00027857  0x00007327 jam  0x000000a1 , 0x000001e1 
+ 00027858  0x00007328 branch  0x00006ced 
+ 00027859  0x0000732f storet  0x00000002 , 0x00000678 
+ 00027860  0x00007330 call  0x00006cd8 
+ 00027861  0x00007331 fetcht  0x00000002 , 0x00000678 
+ 00027862  0x00007332 call  0x00006d07 
+ 00027863  0x00007333 branch  0x00006cdf 
+ 00027864  0x00007336 fetch  0x00000001 , 0x00004427 
+ 00027865  0x00007337 rtneq  0x000000ff 
+ 00027866  0x00007338 bbit0  0x00000006 , 0x00006cdd 
+ 00027867  0x00007339 setarg  0x000249f0 
+ 00027868  0x0000733a call  0x0000235c 
+ 00027869  0x0000733c fetcht  0x00000001 , 0x00004427 
+ 00027870  0x0000733d branch  0x00006ef7 
+ 00027871  0x00007340 fetcht  0x00000001 , 0x00004427 
+ 00027872  0x00007341 branch  0x00006ef3 
+ 00027873  0x00007347 bpatch  0x000000cb , 0x00004019 
+ 00027874  0x00007348 bmark1  0x00000028 , 0x00006cc7 
+ 00027875  0x00007349 fetch  0x00000002 , 0x000043eb 
+ 00027876  0x0000734a iadd  0x00000012 , 0x0000003f 
+ 00027877  0x0000734b byteswap  0x0000003f , 0x0000003f 
+ 00027878  0x0000734c store  0x00000002 , 0x000001e0 
+ 00027879  0x00007350 bpatch  0x000000cc , 0x00004019 
+ 00027880  0x00007351 bmark1  0x00000028 , 0x00006ccb 
+ 00027881  0x00007352 setarg  0x00000004 
+ 00027882  0x00007353 store  0x00000002 , 0x00008092 
+ 00027883  0x00007354 jam  0x000000a0 , 0x000001df 
+ 00027884  0x00007355 jam  0x000000a1 , 0x000001e2 
+ 00027885  0x00007357 setarg  0x000001df 
+ 00027886  0x00007358 store  0x00000002 , 0x00008094 
+ 00027887  0x00007359 storet  0x00000002 , 0x00008098 
+ 00027888  0x0000735a storer  0x00000011 , 0x00000002 , 0x00008096 
+ 00027889  0x0000735b setarg  0x00000002 
+ 00027890  0x0000735c isolate0  0x0000000f , 0x00000011 
+ 00027891  0x0000735d setflag  0x00000001 , 0x00000000 , 0x0000003f 
+ 00027892  0x0000735e store  0x00000001 , 0x0000808a 
+ 00027893  0x0000735f jam  0x00000004 , 0x00008006 
+ 00027894  0x00007360 arg  0x00000005 , 0x00000007 
+ 00027895  0x00007361 call  0x00006b07 
+ 00027896  0x00007362 call  0x00006cbe 
+ 00027897  0x00007363 isolate1  0x00000004 , 0x0000003f 
+ 00027898  0x00007364 call  0x00006b00 
+ 00027899  0x00007365 bmark1  0x00000028 , 0x00006d02 
+ 00027900  0x00007367 fetch  0x00000002 , 0x000001e0 
+ 00027901  0x00007368 byteswap  0x0000003f , 0x0000003f 
+ 00027902  0x00007369 iadd  0x00000002 , 0x0000003f 
+ 00027903  0x0000736a byteswap  0x0000003f , 0x0000003f 
+ 00027904  0x0000736b store  0x00000002 , 0x000001e0 
+ 00027905  0x0000736c rtn 
+ 00027906  0x0000736f fetch  0x00000001 , 0x000001e0 
+ 00027907  0x00007370 iadd  0x00000002 , 0x0000003f 
+ 00027908  0x00007371 byteswap  0x0000003f , 0x0000003f 
+ 00027909  0x00007372 store  0x00000002 , 0x000001e0 
+ 00027910  0x00007373 rtn 
+ 00027911  0x0000737a fetch  0x00000002 , 0x000043eb 
+ 00027912  0x0000737b iadd  0x00000012 , 0x0000003f 
+ 00027913  0x0000737e store  0x00000002 , 0x00000670 
+ 00027914  0x0000737f bpatch  0x000000cd , 0x00004019 
+ 00027915  0x00007380 storet  0x00000002 , 0x00000678 
+ 00027916  0x00007381 storer  0x00000011 , 0x00000002 , 0x0000068f 
+ 00027917  0x00007383 call  0x00006d1c 
+ 00027918  0x00007385 fetcht  0x00000002 , 0x00000688 
+ 00027919  0x00007386 fetchr  0x00000011 , 0x00000002 , 0x0000068f 
+ 00027920  0x00007387 fetch  0x00000002 , 0x00000670 
+ 00027921  0x00007389 call  0x00006d3d 
+ 00027922  0x0000738b fetch  0x00000002 , 0x00000688 
+ 00027923  0x0000738c fetcht  0x00000002 , 0x0000068f 
+ 00027924  0x0000738d iadd  0x00000002 , 0x00000002 
+ 00027925  0x0000738e storet  0x00000002 , 0x0000068f 
+ 00027926  0x0000738f fetcht  0x00000002 , 0x00000670 
+ 00027927  0x00007390 iadd  0x00000002 , 0x00000002 
+ 00027928  0x00007391 storet  0x00000002 , 0x00000670 
+ 00027929  0x00007392 fetch  0x00000002 , 0x00000678 
+ 00027930  0x00007393 nbranch  0x00006d0d , 0x00000034 
+ 00027931  0x00007394 rtn 
+ 00027932  0x0000739d bpatch  0x000000ce , 0x00004019 
+ 00027933  0x0000739e fetch  0x00000001 , 0x000043f4 
+ 00027934  0x0000739f increase  0xffffffff , 0x0000003f 
+ 00027935  0x000073a0 fetcht  0x00000002 , 0x00000670 
+ 00027936  0x000073a1 ior  0x00000002 , 0x0000003f 
+ 00027937  0x000073a2 increase  0x00000001 , 0x0000003f 
+ 00027938  0x000073a3 store  0x00000003 , 0x0000068c 
+ 00027939  0x000073a5 fetch  0x00000002 , 0x00000678 
+ 00027940  0x000073a6 iadd  0x00000002 , 0x0000003f 
+ 00027941  0x000073a8 fetcht  0x00000003 , 0x0000068c 
+ 00027942  0x000073a9 isub  0x00000002 , 0x0000003f 
+ 00027943  0x000073aa nbranch  0x00006d2e , 0x00000002 
+ 00027944  0x000073ab store  0x00000002 , 0x00000678 
+ 00027945  0x000073ac fetch  0x00000003 , 0x0000068c 
+ 00027946  0x000073ad fetcht  0x00000002 , 0x00000670 
+ 00027947  0x000073ae isub  0x00000002 , 0x0000003f 
+ 00027948  0x000073af store  0x00000002 , 0x00000688 
+ 00027949  0x000073b0 rtn 
+ 00027950  0x000073b3 fetch  0x00000002 , 0x00000678 
+ 00027951  0x000073b4 store  0x00000002 , 0x00000688 
+ 00027952  0x000073b5 setarg  0x00000000 
+ 00027953  0x000073b6 store  0x00000002 , 0x00000678 
+ 00027954  0x000073b7 rtn 
+ 00027955  0x000073ba copy  0x00000012 , 0x0000003f 
+ 00027956  0x000073bb increase  0x00000002 , 0x00000002 
+ 00027957  0x000073bc storet  0x00000002 , 0x00008092 
+ 00027958  0x000073bd increase  0xfffffffe , 0x00000011 
+ 00027959  0x000073be ifetcht  0x00000003 , 0x00000011 
+ 00027960  0x000073bf copy  0x00000002 , 0x00000012 
+ 00027961  0x000073c0 arg  0x000000a0 , 0x00000002 
+ 00027962  0x000073c1 istoret  0x00000001 , 0x00000011 
+ 00027963  0x000073c2 istore  0x00000001 , 0x00000005 
+ 00027964  0x000073c3 branch  0x00006d4a 
+ 00027965  0x000073c7 copy  0x0000003f , 0x00000012 
+ 00027966  0x000073c8 bpatch  0x000000cf , 0x00004019 
+ 00027967  0x000073c9 bmark1  0x00000028 , 0x00006d33 
+ 00027968  0x000073ca copy  0x00000012 , 0x0000003f 
+ 00027969  0x000073cb increase  0x00000003 , 0x00000002 
+ 00027970  0x000073cc storet  0x00000002 , 0x00008092 
+ 00027971  0x000073cd increase  0xfffffffd , 0x00000011 
+ 00027972  0x000073ce ifetcht  0x00000003 , 0x00000011 
+ 00027973  0x000073cf copy  0x00000002 , 0x00000012 
+ 00027974  0x000073d0 arg  0x000000a0 , 0x00000002 
+ 00027975  0x000073d1 istoret  0x00000001 , 0x00000011 
+ 00027976  0x000073d2 byteswap  0x0000003f , 0x0000003f 
+ 00027977  0x000073d3 istore  0x00000002 , 0x00000005 
+ 00027978  0x000073d5 storer  0x00000011 , 0x00000002 , 0x00008094 
+ 00027979  0x000073d6 setarg  0x00000000 
+ 00027980  0x000073d7 store  0x00000002 , 0x00008098 
+ 00027981  0x000073d8 jam  0x00000001 , 0x0000808a 
+ 00027982  0x000073d9 jam  0x00000004 , 0x00008006 
+ 00027983  0x000073da call  0x00006cbe 
+ 00027984  0x000073db istorer  0x00000012 , 0x00000003 , 0x00000011 
+ 00027985  0x000073dd bpatch  0x000000d0 , 0x0000401a 
+ 00027986  0x000073de jam  0x00000000 , 0x000001e2 
+ 00027987  0x000073e0 setarg  0x00000001 
+ 00027988  0x000073e1 store  0x00000002 , 0x00008092 
+ 00027989  0x000073e2 jam  0x000000a0 , 0x000001df 
+ 00027990  0x000073e3 setarg  0x000001df 
+ 00027991  0x000073e4 store  0x00000002 , 0x00008094 
+ 00027992  0x000073e5 setarg  0x00000000 
+ 00027993  0x000073e6 store  0x00000002 , 0x00008098 
+ 00027994  0x000073e7 store  0x00000002 , 0x00008096 
+ 00027995  0x000073e8 setarg  0x00000003 
+ 00027996  0x000073e9 store  0x00000001 , 0x0000808a 
+ 00027997  0x000073ea jam  0x00000004 , 0x00008006 
+ 00027998  0x000073eb call  0x00006cbe 
+ 00027999  0x000073ec fetch  0x00000001 , 0x00008128 
+ 00028000  0x000073ed rtnbit0  0x00000006 
+ 00028001  0x000073ee nop  0x000005dc 
+ 00028002  0x000073ef fetch  0x00000001 , 0x000001e2 
+ 00028003  0x000073f0 increase  0x00000001 , 0x0000003f 
+ 00028004  0x000073f1 store  0x00000001 , 0x000001e2 
+ 00028005  0x000073f2 sub  0x0000003f , 0x00000028 , 0x0000003e 
+ 00028006  0x000073f3 nrtn  0x00000002 
+ 00028007  0x000073f4 branch  0x00006d53 
+ 00028008  0x000073f9 call  0x00007dba 
+ 00028009  0x000073fa branch  0x00006d6a 
+ 00028010  0x000073fd rshift16  0x0000003f , 0x00000002 
+ 00028011  0x000073fe call  0x00006d8e , 0x00000028 
+ 00028012  0x000073ff rshift32  0x0000003f , 0x0000003f 
+ 00028013  0x00007400 rshift16  0x0000003f , 0x00000002 
+ 00028014  0x00007401 call  0x00006d8a , 0x00000028 
+ 00028015  0x00007402 fetch  0x00000002 , 0x00008050 
+ 00028016  0x00007403 set0  0x0000000f , 0x0000003f 
+ 00028017  0x00007404 store  0x00000002 , 0x00008050 
+ 00028018  0x00007405 rtn 
+ 00028019  0x00007409 store  0x00000002 , 0x00008052 
+ 00028020  0x0000740a rtn 
+ 00028021  0x0000740e call  0x00006d77 
+ 00028022  0x0000740f branch  0x00006d73 
+ 00028023  0x00007413 call  0x00006d7c 
+ 00028024  0x00007414 idiv  0x00000002 
+ 00028025  0x00007415 call  0x00007d62 
+ 00028026  0x00007416 quotient  0x0000003f 
+ 00028027  0x00007417 rtn 
+ 00028028  0x0000741a fetch  0x00000001 , 0x00008043 
+ 00028029  0x0000741b bbit0  0x00000000 , 0x00006d80 
+ 00028030  0x0000741c setarg  0x02dc6c00 
+ 00028031  0x0000741d rtn 
+ 00028032  0x0000741f setarg  0x016e3600 
+ 00028033  0x00007420 rtn 
+ 00028034  0x00007423 fetch  0x00000001 , 0x00008043 
+ 00028035  0x00007424 and  0x0000003f , 0x000000fe , 0x0000003f 
+ 00028036  0x00007425 store  0x00000001 , 0x00008043 
+ 00028037  0x00007426 rtn 
+ 00028038  0x00007429 fetch  0x00000001 , 0x00008043 
+ 00028039  0x0000742a or  0x0000003f , 0x00000001 , 0x0000003f 
+ 00028040  0x0000742b store  0x00000001 , 0x00008043 
+ 00028041  0x0000742c rtn 
+ 00028042  0x00007431 store  0x00000002 , 0x0000805a 
+ 00028043  0x00007432 store  0x00000002 , 0x0000805e 
+ 00028044  0x00007433 storet  0x00000002 , 0x0000805c 
+ 00028045  0x00007434 rtn 
+ 00028046  0x00007438 store  0x00000002 , 0x00008054 
+ 00028047  0x00007439 store  0x00000002 , 0x00008058 
+ 00028048  0x0000743a storet  0x00000002 , 0x00008056 
+ 00028049  0x0000743b rtn 
+ 00028050  0x0000743e fetchr  0x0000000a , 0x00000002 , 0x0000805a 
+ 00028051  0x0000743f fetchr  0x00000010 , 0x00000002 , 0x0000805c 
+ 00028052  0x00007440 fetchr  0x00000003 , 0x00000002 , 0x0000805e 
+ 00028053  0x00007441 rtn 
+ 00028054  0x00007444 fetchr  0x0000000a , 0x00000002 , 0x00008054 
+ 00028055  0x00007445 fetchr  0x00000010 , 0x00000002 , 0x00008056 
+ 00028056  0x00007446 fetchr  0x00000003 , 0x00000002 , 0x00008058 
+ 00028057  0x00007447 rtn 
+ 00028058  0x0000744a storer  0x00000003 , 0x00000002 , 0x0000805e 
+ 00028059  0x0000744b rtn 
+ 00028060  0x0000744e storer  0x00000003 , 0x00000002 , 0x00008058 
+ 00028061  0x0000744f rtn 
+ 00028062  0x00007452 call  0x00006d96 
+ 00028063  0x00007453 fetch  0x00000002 , 0x00008112 
+ 00028064  0x00007454 iadd  0x00000003 , 0x00000003 
+ 00028065  0x00007455 branch  0x00006d9c 
+ 00028066  0x00007458 call  0x00006da6 
+ 00028067  0x00007459 branch  0x00006d92 
+ 00028068  0x0000745c call  0x00006d9a 
+ 00028069  0x0000745d branch  0x00006daa 
+ 00028070  0x00007461 storer  0x00000003 , 0x00000002 , 0x00000697 
+ 00028071  0x00007462 storer  0x0000000a , 0x00000002 , 0x00000695 
+ 00028072  0x00007463 storer  0x00000010 , 0x00000002 , 0x00000693 
+ 00028073  0x00007464 rtn 
+ 00028074  0x00007467 fetchr  0x00000003 , 0x00000002 , 0x00000697 
+ 00028075  0x00007468 fetchr  0x0000000a , 0x00000002 , 0x00000695 
+ 00028076  0x00007469 fetchr  0x00000010 , 0x00000002 , 0x00000693 
+ 00028077  0x0000746a rtn 
+ 00028078  0x0000746d fetch  0x00000002 , 0x0000810e 
+ 00028079  0x0000746e nbranch  0x00006dae , 0x00000034 
+ 00028080  0x0000746f rtn 
+ 00028081  0x00007472 deposit  0x00000039 
+ 00028082  0x00007473 rtn  0x00000034 
+ 00028083  0x00007475 increase  0xfffffff8 , 0x00000039 
+ 00028084  0x00007476 call  0x00006dbe , 0x00000002 
+ 00028085  0x00007477 rtn  0x00000005 
+ 00028086  0x00007478 branch  0x00006db3 , 0x00000002 
+ 00028087  0x00007479 increase  0x00000008 , 0x00000039 
+ 00028088  0x0000747b increase  0xfffffffc , 0x00000039 
+ 00028089  0x0000747c call  0x00006dc1 , 0x00000002 
+ 00028090  0x0000747d rtn  0x00000005 
+ 00028091  0x0000747e branch  0x00006db8 , 0x00000002 
+ 00028092  0x0000747f increase  0x00000004 , 0x00000039 
+ 00028093  0x00007480 branch  0x00006dc4 
+ 00028094  0x00007483 ifetch  0x00000008 , 0x00000006 
+ 00028095  0x00007484 istore  0x00000008 , 0x00000003 
+ 00028096  0x00007485 rtn 
+ 00028097  0x00007488 ifetch  0x00000004 , 0x00000006 
+ 00028098  0x00007489 istore  0x00000004 , 0x00000003 
+ 00028099  0x0000748a rtn 
+ 00028100  0x0000748d deposit  0x00000039 
+ 00028101  0x0000748e rtn  0x00000034 
+ 00028102  0x00007490 ifetch  0x00000001 , 0x00000006 
+ 00028103  0x00007491 istore  0x00000001 , 0x00000003 
+ 00028104  0x00007492 loop  0x00006dc6 
+ 00028105  0x00007493 rtn 
+ 00028106  0x00007496 deposit  0x00000039 
+ 00028107  0x00007497 rtn  0x00000034 
+ 00028108  0x00007499 increase  0xfffffff8 , 0x00000039 
+ 00028109  0x0000749a call  0x00006dd7 , 0x00000002 
+ 00028110  0x0000749b rtn  0x00000005 
+ 00028111  0x0000749c branch  0x00006dcc , 0x00000002 
+ 00028112  0x0000749d increase  0x00000008 , 0x00000039 
+ 00028113  0x0000749f increase  0xfffffffc , 0x00000039 
+ 00028114  0x000074a0 call  0x00006dda , 0x00000002 
+ 00028115  0x000074a1 rtn  0x00000005 
+ 00028116  0x000074a2 branch  0x00006dd1 , 0x00000002 
+ 00028117  0x000074a3 increase  0x00000004 , 0x00000039 
+ 00028118  0x000074a4 branch  0x00006ddd 
+ 00028119  0x000074a8 ifetch  0x00000008 , 0x00000003 
+ 00028120  0x000074a9 istore  0x00000008 , 0x00000005 
+ 00028121  0x000074aa rtn 
+ 00028122  0x000074ad ifetch  0x00000004 , 0x00000003 
+ 00028123  0x000074ae istore  0x00000004 , 0x00000005 
+ 00028124  0x000074af rtn 
+ 00028125  0x000074b3 deposit  0x00000039 
+ 00028126  0x000074b4 rtn  0x00000034 
+ 00028127  0x000074b6 ifetch  0x00000001 , 0x00000003 
+ 00028128  0x000074b7 istore  0x00000001 , 0x00000005 
+ 00028129  0x000074b8 loop  0x00006ddf 
+ 00028130  0x000074b9 rtn 
+ 00028131  0x000074bf jam  0x0000003d , 0x0000066f 
+ 00028132  0x000074c0 branch  0x0000782b 
+ 00028133  0x000074c3 bpatch  0x000000d1 , 0x0000401a 
+ 00028134  0x000074c4 fetch  0x00000001 , 0x000043fa 
+ 00028135  0x000074c5 rtn  0x00000034 
+ 00028136  0x000074c6 call  0x00006e87 
+ 00028137  0x000074c7 call  0x00006e8d , 0x00000005 
+ 00028138  0x000074c8 call  0x00007dc0 
+ 00028139  0x000074c9 call  0x00006e18 
+ 00028140  0x000074cb fetch  0x00000001 , 0x000043fa 
+ 00028141  0x000074cc icopy  0x00000013 
+ 00028142  0x000074cd fetcht  0x00000002 , 0x000043f8 
+ 00028143  0x000074ce storet  0x00000002 , 0x00000033 
+ 00028144  0x000074d0 copy  0x00000013 , 0x0000003f 
+ 00028145  0x000074d1 branch  0x00006de3 , 0x00000034 
+ 00028146  0x000074d2 increase  0xffffffff , 0x00000013 
+ 00028147  0x000074d3 copy  0x00000002 , 0x00000011 
+ 00028148  0x000074d4 ifetch  0x00000001 , 0x00000011 
+ 00028149  0x000074d5 fetcht  0x00000001 , 0x00000031 
+ 00028150  0x000074d6 isub  0x00000002 , 0x0000003e 
+ 00028151  0x000074d7 call  0x00006e00 , 0x00000005 
+ 00028152  0x000074d8 branch  0x00006dfc , 0x00000002 
+ 00028153  0x000074d9 ifetch  0x00000001 , 0x00000011 
+ 00028154  0x000074da increase  0x00000001 , 0x0000003f 
+ 00028155  0x000074db istore  0x00000001 , 0x00000011 
+ 00028156  0x000074dd fetcht  0x00000002 , 0x00000033 
+ 00028157  0x000074de increase  0x00000022 , 0x00000002 
+ 00028158  0x000074df storet  0x00000002 , 0x00000033 
+ 00028159  0x000074e0 branch  0x00006df0 
+ 00028160  0x000074e3 setarg  0x00000000 
+ 00028161  0x000074e4 istore  0x00000001 , 0x00000011 
+ 00028162  0x000074e5 fetch  0x00000001 , 0x00000032 
+ 00028163  0x000074e6 istore  0x00000001 , 0x00000005 
+ 00028164  0x000074e7 bne  0x00000033 , 0x00006e0d 
+ 00028165  0x000074ea ifetch  0x00000006 , 0x00000006 
+ 00028166  0x000074eb istore  0x00000008 , 0x00000005 
+ 00028167  0x000074ec setarg  0x00000000 
+ 00028168  0x000074ed istore  0x00000008 , 0x00000005 
+ 00028169  0x000074ee copy  0x00000012 , 0x00000006 
+ 00028170  0x000074f0 call  0x00007c8f 
+ 00028171  0x000074f1 force  0x00000001 , 0x0000003e 
+ 00028172  0x000074f2 rtn 
+ 00028173  0x000074f5 beq  0x00000036 , 0x00006e11 
+ 00028174  0x000074f6 beq  0x00000037 , 0x00006e15 
+ 00028175  0x000074f7 arg  0x0000428a , 0x00000012 
+ 00028176  0x000074f8 branch  0x00006e05 
+ 00028177  0x000074fb arg  0x0000430d , 0x00000006 
+ 00028178  0x000074fc call  0x00007c8f 
+ 00028179  0x000074fe arg  0x0000428a , 0x00000006 
+ 00028180  0x000074ff branch  0x00006e0a 
+ 00028181  0x00007502 arg  0x00004305 , 0x00000006 
+ 00028182  0x00007503 call  0x00007c8f 
+ 00028183  0x00007504 branch  0x00006e13 
+ 00028184  0x0000750a bpatch  0x000000d2 , 0x0000401a 
+ 00028185  0x0000750b call  0x00007dbc 
+ 00028186  0x0000750c fetch  0x00000001 , 0x000043fa 
+ 00028187  0x0000750d rtn  0x00000034 
+ 00028188  0x0000750e bpatch  0x000000d3 , 0x0000401a 
+ 00028189  0x0000750f fetch  0x00000002 , 0x000044e9 
+ 00028190  0x00007510 rtnbit0  0x00000009 
+ 00028191  0x00007512 fetch  0x00000001 , 0x000042cb 
+ 00028192  0x00007513 beq  0x00000000 , 0x00006e34 
+ 00028193  0x00007514 fetch  0x00000001 , 0x0000017d 
+ 00028194  0x00007515 compare  0x000000c0 , 0x0000003f , 0x000000c0 
+ 00028195  0x00007516 branch  0x00006e27 , 0x00000001 
+ 00028196  0x00007517 compare  0x00000040 , 0x0000003f , 0x000000c0 
+ 00028197  0x00007518 branch  0x00006e39 , 0x00000001 
+ 00028198  0x00007519 branch  0x00006e2e 
+ 00028199  0x0000751c branch  0x00006e2b , 0x0000002c 
+ 00028200  0x0000751d fetch  0x00000001 , 0x000042c2 
+ 00028201  0x0000751e bbit0  0x00000001 , 0x00006e34 
+ 00028202  0x0000751f branch  0x00006e2e 
+ 00028203  0x00007522 call  0x00006e34 
+ 00028204  0x00007523 rtn  0x00000028 
+ 00028205  0x00007524 branch  0x00006e2e 
+ 00028206  0x00007529 fetch  0x00000001 , 0x000042fe 
+ 00028207  0x0000752a bbit1  0x00000007 , 0x00006e31 
+ 00028208  0x0000752b branch  0x00006e37 
+ 00028209  0x0000752f fetch  0x00000006 , 0x00000178 
+ 00028210  0x00007530 store  0x00000008 , 0x00004305 
+ 00028211  0x00007531 branch  0x00006e37 
+ 00028212  0x00007535 jam  0x00000035 , 0x00000032 
+ 00028213  0x00007536 fetch  0x00000006 , 0x00000178 
+ 00028214  0x00007537 branch  0x00006e3b 
+ 00028215  0x0000753a jam  0x00000037 , 0x00000032 
+ 00028216  0x0000753b branch  0x00006e3b 
+ 00028217  0x0000753f jam  0x00000036 , 0x00000032 
+ 00028218  0x00007540 branch  0x00006e3b 
+ 00028219  0x00007543 bpatch  0x000000d4 , 0x0000401a 
+ 00028220  0x00007545 fetch  0x00000002 , 0x000043f8 
+ 00028221  0x00007546 ifetcht  0x00000001 , 0x0000003f 
+ 00028222  0x00007547 pincrease  0x00000001 
+ 00028223  0x00007548 store  0x00000002 , 0x00000033 
+ 00028224  0x00007549 storet  0x00000001 , 0x00000031 
+ 00028225  0x0000754a fetch  0x00000001 , 0x000043fa 
+ 00028226  0x0000754b icopy  0x00000013 
+ 00028227  0x0000754d fetch  0x00000002 , 0x00000033 
+ 00028228  0x0000754e copy  0x0000003f , 0x00000011 
+ 00028229  0x0000754f call  0x00006e53 
+ 00028230  0x00007550 rtn  0x00000028 
+ 00028231  0x00007551 fetcht  0x00000002 , 0x00000033 
+ 00028232  0x00007552 increase  0x00000022 , 0x00000002 
+ 00028233  0x00007553 storet  0x00000002 , 0x00000033 
+ 00028234  0x00007554 increase  0xffffffff , 0x00000002 
+ 00028235  0x00007555 ifetch  0x00000001 , 0x00000002 
+ 00028236  0x00007556 store  0x00000001 , 0x00000031 
+ 00028237  0x00007557 increase  0xffffffff , 0x00000013 
+ 00028238  0x00007558 nbranch  0x00006e43 , 0x00000005 
+ 00028239  0x00007559 fetch  0x00000001 , 0x000043fa 
+ 00028240  0x0000755a pincrease  0xffffffff 
+ 00028241  0x0000755b store  0x00000001 , 0x00000031 
+ 00028242  0x0000755c rtn 
+ 00028243  0x0000755e fetch  0x00000001 , 0x00000032 
+ 00028244  0x0000755f bne  0x00000033 , 0x00006e5a 
+ 00028245  0x00007561 arg  0x00000032 , 0x00000012 
+ 00028246  0x00007562 arg  0x00000007 , 0x00000039 
+ 00028247  0x00007563 call  0x00007d64 
+ 00028248  0x00007564 branch  0x00007dba , 0x00000005 
+ 00028249  0x00007565 rtn 
+ 00028250  0x00007568 beq  0x00000036 , 0x00006e5d 
+ 00028251  0x00007569 beq  0x00000037 , 0x00006e78 
+ 00028252  0x0000756a branch  0x00006e55 
+ 00028253  0x0000756d ifetcht  0x00000001 , 0x00000011 
+ 00028254  0x0000756e isub  0x00000002 , 0x0000003e 
+ 00028255  0x0000756f nrtn  0x00000005 
+ 00028256  0x00007570 arg  0x000006a1 , 0x00000005 
+ 00028257  0x00007571 arg  0x00000010 , 0x00000039 
+ 00028258  0x00007572 call  0x00007ca1 
+ 00028259  0x00007573 fetch  0x00000003 , 0x0000017b 
+ 00028260  0x00007574 store  0x00000003 , 0x000006a1 
+ 00028261  0x00007575 call  0x00006e6f 
+ 00028262  0x00007576 fetch  0x00000002 , 0x000006be 
+ 00028263  0x00007577 byteswap  0x0000003f , 0x0000003f 
+ 00028264  0x00007578 lshift8  0x0000003f , 0x00000002 
+ 00028265  0x00007579 ifetch  0x00000001 , 0x00000006 
+ 00028266  0x0000757a iadd  0x00000002 , 0x0000003f 
+ 00028267  0x0000757b fetcht  0x00000003 , 0x00000178 
+ 00028268  0x0000757c isub  0x00000002 , 0x0000003e 
+ 00028269  0x0000757d branch  0x00007dba , 0x00000005 
+ 00028270  0x0000757e rtn 
+ 00028271  0x00007582 arg  0x000006a1 , 0x00000006 
+ 00028272  0x00007583 call  0x00007361 
+ 00028273  0x00007585 ifetch  0x00000001 , 0x00000011 
+ 00028274  0x00007586 call  0x00007362 
+ 00028275  0x00007587 force  0x00000038 , 0x00000036 
+ 00028276  0x00007588 force  0x00000000 , 0x00000036 
+ 00028277  0x00007589 call  0x000072cf 
+ 00028278  0x0000758a arg  0x000006b1 , 0x00000005 
+ 00028279  0x0000758b branch  0x00007375 
+ 00028280  0x0000758e ifetcht  0x00000001 , 0x00000011 
+ 00028281  0x0000758f isub  0x00000002 , 0x0000003e 
+ 00028282  0x00007590 nrtn  0x00000005 
+ 00028283  0x00007591 copy  0x00000006 , 0x00000011 
+ 00028284  0x00007592 add  0x00000006 , 0x00000008 , 0x00000013 
+ 00028285  0x00007593 arg  0x00004305 , 0x00000012 
+ 00028286  0x00007594 arg  0x00000008 , 0x00000039 
+ 00028287  0x00007595 call  0x00007d64 
+ 00028288  0x00007596 branch  0x00007dba , 0x00000005 
+ 00028289  0x00007597 copy  0x00000013 , 0x00000011 
+ 00028290  0x00007598 arg  0x0000430d , 0x00000012 
+ 00028291  0x00007599 arg  0x00000008 , 0x00000039 
+ 00028292  0x0000759a call  0x00007d64 
+ 00028293  0x0000759b branch  0x00007dba , 0x00000005 
+ 00028294  0x0000759c rtn 
+ 00028295  0x0000759f fetch  0x00000002 , 0x000043f8 
+ 00028296  0x000075a0 ifetcht  0x00000001 , 0x0000003f 
+ 00028297  0x000075a1 pincrease  0x00000022 
+ 00028298  0x000075a2 ifetch  0x00000001 , 0x0000003f 
+ 00028299  0x000075a3 isub  0x00000002 , 0x0000003e 
+ 00028300  0x000075a4 rtn 
+ 00028301  0x000075a7 fetch  0x00000001 , 0x000043fa 
+ 00028302  0x000075a8 icopy  0x00000039 
+ 00028303  0x000075a9 fetcht  0x00000002 , 0x000043f8 
+ 00028304  0x000075aa setarg  0x00000000 
+ 00028305  0x000075ac istore  0x00000001 , 0x00000002 
+ 00028306  0x000075ad increase  0x00000022 , 0x00000002 
+ 00028307  0x000075ae pincrease  0x00000001 
+ 00028308  0x000075af loop  0x00006e91 
+ 00028309  0x000075b0 rtn 
+ 00028310  0x000075b5 call  0x00007dbe 
+ 00028311  0x000075b6 call  0x00006e18 
+ 00028312  0x000075b7 nbranch  0x00006ea1 , 0x00000028 
+ 00028313  0x000075b8 fetch  0x00000002 , 0x00000033 
+ 00028314  0x000075b9 add  0x0000003f , 0x00000001 , 0x00000006 
+ 00028315  0x000075ba arg  0x0000430d , 0x00000005 
+ 00028316  0x000075bb call  0x00007c8f 
+ 00028317  0x000075bc arg  0x0000428a , 0x00000005 
+ 00028318  0x000075bd call  0x00007c8f 
+ 00028319  0x000075be jam  0x00000001 , 0x0000429a 
+ 00028320  0x000075bf rtn 
+ 00028321  0x000075c2 jam  0x00000000 , 0x0000429a 
+ 00028322  0x000075c3 rtn 
+ 00028323  0x000075c7 jam  0x00000034 , 0x00000032 
+ 00028324  0x000075c8 branch  0x00006ea5 
+ 00028325  0x000075cb fetch  0x00000001 , 0x000043cb 
+ 00028326  0x000075cc beq  0x0000000a , 0x00006de5 
+ 00028327  0x000075cd beq  0x00000008 , 0x00005c42 
+ 00028328  0x000075ce rtn 
+ 00028329  0x000075d5 and  0x00000002 , 0x0000001f , 0x0000003f 
+ 00028330  0x000075d6 rshift  0x0000003f , 0x0000003f 
+ 00028331  0x000075d7 arg  0x00000016 , 0x00000005 
+ 00028332  0x000075d8 iadd  0x00000005 , 0x00000005 
+ 00028333  0x000075d9 arg  0x000000f0 , 0x00000030 
+ 00028334  0x000075da isolate0  0x00000000 , 0x00000002 
+ 00028335  0x000075db rtn  0x00000001 
+ 00028336  0x000075dc arg  0x0000000f , 0x00000030 
+ 00028337  0x000075dd rtn 
+ 00028338  0x000075e1 bpatch  0x000000d5 , 0x0000401a 
+ 00028339  0x000075e2 set1  0x00000007 , 0x00000002 
+ 00028340  0x000075e3 call  0x00006ee6 
+ 00028341  0x000075e4 nsetflag  0x00000001 , 0x00000007 , 0x00000002 
+ 00028342  0x000075e8 bpatch  0x000000d6 , 0x0000401a 
+ 00028343  0x000075e9 sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00028344  0x000075ea rtn  0x00000005 
+ 00028345  0x000075eb arg  0x00000004 , 0x00000008 
+ 00028346  0x000075ec isolate1  0x00000007 , 0x00000002 
+ 00028347  0x000075ed branch  0x00006ebd , 0x00000001 
+ 00028348  0x000075ee arg  0x00000002 , 0x00000008 
+ 00028349  0x000075f0 call  0x00006ea9 
+ 00028350  0x000075f1 isolate0  0x00000000 , 0x00000002 
+ 00028351  0x000075f2 branch  0x00006ec1 , 0x00000001 
+ 00028352  0x000075f3 lshift4  0x00000008 , 0x00000008 
+ 00028353  0x000075f5 ifetch  0x00000001 , 0x00000005 
+ 00028354  0x000075f6 iand  0x00000030 , 0x0000003f 
+ 00028355  0x000075f7 ior  0x00000008 , 0x0000003f 
+ 00028356  0x000075f8 istore  0x00000001 , 0x00000005 
+ 00028357  0x000075f9 rtn 
+ 00028358  0x000075fd bpatch  0x000000d7 , 0x0000401a 
+ 00028359  0x000075fe sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00028360  0x000075ff rtn  0x00000005 
+ 00028361  0x00007600 arg  0x00000001 , 0x00000008 
+ 00028362  0x00007601 call  0x00006ea9 
+ 00028363  0x00007602 isolate0  0x00000000 , 0x00000002 
+ 00028364  0x00007603 branch  0x00006ece , 0x00000001 
+ 00028365  0x00007604 lshift4  0x00000008 , 0x00000008 
+ 00028366  0x00007606 ifetch  0x00000001 , 0x00000005 
+ 00028367  0x00007607 iand  0x00000030 , 0x0000003f 
+ 00028368  0x00007608 ior  0x00000008 , 0x0000003f 
+ 00028369  0x00007609 istore  0x00000001 , 0x00000005 
+ 00028370  0x0000760a rtn 
+ 00028371  0x00007610 bpatch  0x000000d8 , 0x0000401b 
+ 00028372  0x00007611 sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00028373  0x00007612 rtn  0x00000005 
+ 00028374  0x00007613 call  0x00006ea9 
+ 00028375  0x00007614 ifetch  0x00000001 , 0x00000005 
+ 00028376  0x00007615 iand  0x00000030 , 0x0000003f 
+ 00028377  0x00007616 istore  0x00000001 , 0x00000005 
+ 00028378  0x00007617 rtn 
+ 00028379  0x0000761a call  0x00006ed3 
+ 00028380  0x0000761b branch  0x00006ee0 
+ 00028381  0x0000761f sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00028382  0x00007620 rtn  0x00000005 
+ 00028383  0x00007621 ncall  0x00006eb6 , 0x0000002b 
+ 00028384  0x00007623 call  0x00006f14 
+ 00028385  0x00007624 setarg  0x00000000 
+ 00028386  0x00007625 isolate1  0x00000007 , 0x00000002 
+ 00028387  0x00007626 nsetflag  0x00000001 , 0x00000006 , 0x0000003f 
+ 00028388  0x00007627 setflag  0x00000001 , 0x00000007 , 0x0000003f 
+ 00028389  0x00007628 branch  0x00006f0d 
+ 00028390  0x0000762c bpatch  0x000000d9 , 0x0000401b 
+ 00028391  0x0000762d arg  0x0000811c , 0x00000005 
+ 00028392  0x0000762e and  0x00000002 , 0x00000007 , 0x00000007 
+ 00028393  0x0000762f rshift3  0x00000002 , 0x0000003f 
+ 00028394  0x00007630 and_into  0x00000003 , 0x0000003f 
+ 00028395  0x00007631 iadd  0x00000005 , 0x00000005 
+ 00028396  0x00007632 ifetch  0x00000001 , 0x00000005 
+ 00028397  0x00007633 isolate1  0x00000007 , 0x00000002 
+ 00028398  0x00007634 branch  0x00006ef1 , 0x00000001 
+ 00028399  0x00007635 qisolate0  0x0000003f 
+ 00028400  0x00007636 rtn 
+ 00028401  0x00007638 qisolate1  0x0000003f 
+ 00028402  0x00007639 rtn 
+ 00028403  0x0000763d sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00028404  0x0000763e rtn  0x00000005 
+ 00028405  0x0000763f isolate1  0x00000007 , 0x0000003e 
+ 00028406  0x00007640 branch  0x00006efa 
+ 00028407  0x00007644 sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00028408  0x00007645 rtn  0x00000005 
+ 00028409  0x00007646 isolate0  0x00000007 , 0x0000003e 
+ 00028410  0x0000764a setarg  0x00000000 
+ 00028411  0x0000764b nsetflag  0x00000001 , 0x00000007 , 0x0000003f 
+ 00028412  0x0000764c ixor  0x00000002 , 0x00000002 
+ 00028413  0x00007650 call  0x00006f14 
+ 00028414  0x00007651 setarg  0x0000003f 
+ 00028415  0x00007652 isolate1  0x00000007 , 0x00000002 
+ 00028416  0x00007653 setflag  0x00000001 , 0x00000000 , 0x0000003f 
+ 00028417  0x00007654 branch  0x00006f0d 
+ 00028418  0x00007658 sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00028419  0x00007659 branch  0x00007dc4 , 0x00000005 
+ 00028420  0x0000765a call  0x00006f14 
+ 00028421  0x0000765b ifetch  0x00000001 , 0x00000005 
+ 00028422  0x0000765c bbit1  0x00000000 , 0x00006f09 
+ 00028423  0x0000765d isolate0  0x00000007 , 0x00000002 
+ 00028424  0x0000765e rtn 
+ 00028425  0x00007660 isolate1  0x00000007 , 0x00000002 
+ 00028426  0x00007661 rtn 
+ 00028427  0x00007664 call  0x00006f14 
+ 00028428  0x00007665 setarg  0x000000c0 
+ 00028429  0x00007667 istore  0x00000001 , 0x00000005 
+ 00028430  0x00007668 rtn 
+ 00028431  0x0000766b sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00028432  0x0000766c rtn  0x00000005 
+ 00028433  0x0000766d call  0x00006f14 
+ 00028434  0x0000766e setarg  0x00000000 
+ 00028435  0x0000766f branch  0x00006f0d 
+ 00028436  0x00007672 and  0x00000002 , 0x0000003f , 0x0000003f 
+ 00028437  0x00007673 sub  0x0000003f , 0x0000000f , 0x0000003e 
+ 00028438  0x00007674 nbranch  0x00006f1a , 0x00000002 
+ 00028439  0x00007675 arg  0x00008070 , 0x00000005 
+ 00028440  0x00007677 iadd  0x00000005 , 0x00000005 
+ 00028441  0x00007678 rtn 
+ 00028442  0x0000767a arg  0x000080d4 , 0x00000005 
+ 00028443  0x0000767b increase  0xfffffff0 , 0x0000003f 
+ 00028444  0x0000767c branch  0x00006f18 
+ 00028445  0x00007680 and  0x0000003f , 0x000000ff , 0x00000002 
+ 00028446  0x00007681 rshift8  0x0000003f , 0x0000003f 
+ 00028447  0x00007682 branch  0x00006f21 
+ 00028448  0x00007686 rtnbit0  0x00000007 
+ 00028449  0x00007688 and_into  0x0000003f , 0x0000003f 
+ 00028450  0x00007689 sub  0x0000003f , 0x0000000f , 0x0000003e 
+ 00028451  0x0000768a nbranch  0x00006f28 , 0x00000002 
+ 00028452  0x0000768b arg  0x00008070 , 0x00000005 
+ 00028453  0x0000768d iadd  0x00000005 , 0x00000005 
+ 00028454  0x0000768e istoret  0x00000001 , 0x00000005 
+ 00028455  0x0000768f rtn 
+ 00028456  0x00007691 arg  0x000080d4 , 0x00000005 
+ 00028457  0x00007692 increase  0xfffffff0 , 0x0000003f 
+ 00028458  0x00007693 branch  0x00006f25 
+ 00028459  0x00007698 and_into  0x0000003f , 0x00000002 
+ 00028460  0x00007699 sub  0x00000002 , 0x0000000f , 0x0000003e 
+ 00028461  0x0000769a nbranch  0x00006f32 , 0x00000002 
+ 00028462  0x0000769b setarg  0x00008070 
+ 00028463  0x0000769d iadd  0x00000002 , 0x00000006 
+ 00028464  0x0000769e ifetch  0x00000001 , 0x00000006 
+ 00028465  0x0000769f rtn 
+ 00028466  0x000076a1 setarg  0x000080d4 
+ 00028467  0x000076a2 increase  0xfffffff0 , 0x00000002 
+ 00028468  0x000076a3 branch  0x00006f2f 
+ 00028469  0x000076a8 arg  0x00000010 , 0x00000039 
+ 00028470  0x000076a9 arg  0x00008070 , 0x00000006 
+ 00028471  0x000076ab copy  0x00000006 , 0x00000005 
+ 00028472  0x000076ac ifetch  0x00000001 , 0x00000006 
+ 00028473  0x000076ad beq  0x0000001f , 0x00006f48 
+ 00028474  0x000076ae beq  0x00000020 , 0x00006f48 
+ 00028475  0x000076af beq  0x00000021 , 0x00006f48 
+ 00028476  0x000076b0 beq  0x00000022 , 0x00006f48 
+ 00028477  0x000076b1 beq  0x00000023 , 0x00006f48 
+ 00028478  0x000076b2 beq  0x0000002c , 0x00006f48 
+ 00028479  0x000076b3 beq  0x0000002d , 0x00006f48 
+ 00028480  0x000076b4 beq  0x00000000 , 0x00006f48 
+ 00028481  0x000076b6 loop  0x00006f37 
+ 00028482  0x000076b7 arg  0x000080dc , 0x0000003f 
+ 00028483  0x000076b8 isub  0x00000006 , 0x0000003e 
+ 00028484  0x000076b9 rtn  0x00000005 
+ 00028485  0x000076bb arg  0x00000008 , 0x00000039 
+ 00028486  0x000076bc arg  0x000080d4 , 0x00000006 
+ 00028487  0x000076bd branch  0x00006f37 
+ 00028488  0x000076c1 setarg  0x00000040 
+ 00028489  0x000076c2 istore  0x00000001 , 0x00000005 
+ 00028490  0x000076c3 branch  0x00006f41 
+ 00028491  0x000076c5 setarg  0x00000080 
+ 00028492  0x000076c6 istore  0x00000001 , 0x00000005 
+ 00028493  0x000076c7 branch  0x00006f41 
+ 00028494  0x000076cc bpatch  0x000000da , 0x0000401b 
+ 00028495  0x000076cd rtn  0x0000002b 
+ 00028496  0x000076ce jam  0x00000077 , 0x00008a07 
+ 00028497  0x000076cf jam  0x000000c9 , 0x00008a08 
+ 00028498  0x000076d0 jam  0x00000001 , 0x00008a0b 
+ 00028499  0x000076d1 fetch  0x00000001 , 0x00004409 
+ 00028500  0x000076d2 store  0x00000001 , 0x000080cd 
+ 00028501  0x000076d3 call  0x00006f97 
+ 00028502  0x000076d4 jam  0x000000c1 , 0x00008a08 
+ 00028503  0x000076d6 arg  0x00000007 , 0x00000039 
+ 00028504  0x000076d7 arg  0x00004412 , 0x00000011 
+ 00028505  0x000076d8 jam  0x00000005 , 0x00008a0a 
+ 00028506  0x000076da fetch  0x00000001 , 0x00008a0c 
+ 00028507  0x000076db istore  0x00000001 , 0x00000011 
+ 00028508  0x000076dc increase  0x00000001 , 0x00000011 
+ 00028509  0x000076dd fetch  0x00000001 , 0x00008a0a 
+ 00028510  0x000076de increase  0x00000020 , 0x0000003f 
+ 00028511  0x000076df store  0x00000001 , 0x00008a0a 
+ 00028512  0x000076e0 loop  0x00006f5a 
+ 00028513  0x000076e1 jam  0x00000000 , 0x00008a07 
+ 00028514  0x000076e2 rtn 
+ 00028515  0x000076e5 fetch  0x00000001 , 0x000080cc 
+ 00028516  0x000076e6 set1  0x00000001 , 0x0000003f 
+ 00028517  0x000076e7 store  0x00000001 , 0x000080cc 
+ 00028518  0x000076e8 arg  0x00000007 , 0x00000039 
+ 00028519  0x000076e9 arg  0x00004412 , 0x00000011 
+ 00028520  0x000076ea jam  0x00000015 , 0x00008a0a 
+ 00028521  0x000076ec ifetch  0x00000001 , 0x00000011 
+ 00028522  0x000076ed store  0x00000001 , 0x00008a09 
+ 00028523  0x000076ee increase  0x00000001 , 0x00000011 
+ 00028524  0x000076ef fetch  0x00000001 , 0x00008a0a 
+ 00028525  0x000076f0 increase  0x00000020 , 0x0000003f 
+ 00028526  0x000076f1 store  0x00000001 , 0x00008a0a 
+ 00028527  0x000076f2 loop  0x00006f69 
+ 00028528  0x000076f3 fetch  0x00000001 , 0x000080cc 
+ 00028529  0x000076f4 set0  0x00000001 , 0x0000003f 
+ 00028530  0x000076f5 store  0x00000001 , 0x000080cc 
+ 00028531  0x000076f6 rtn 
+ 00028532  0x000076fb bpatch  0x000000db , 0x0000401b 
+ 00028533  0x000076fc fetch  0x00000008 , 0x000001fd 
+ 00028534  0x000076fd branch  0x00006f79 , 0x00000034 
+ 00028535  0x000076fe store  0x00000008 , 0x000043fd 
+ 00028536  0x000076ff rtn 
+ 00028537  0x00007702 setarg  0x00000bbe 
+ 00028538  0x00007703 store  0x00000002 , 0x000043fd 
+ 00028539  0x00007704 setarg  0x000003f0 
+ 00028540  0x00007705 store  0x00000002 , 0x00004401 
+ 00028541  0x00007706 setarg  0x0000027e 
+ 00028542  0x00007707 store  0x00000002 , 0x000043ff 
+ 00028543  0x00007708 setarg  0x000003c4 
+ 00028544  0x00007709 store  0x00000002 , 0x00004403 
+ 00028545  0x0000770a rtn 
+ 00028546  0x0000770d bpatch  0x000000dc , 0x0000401b 
+ 00028547  0x0000770e call  0x00006f63 
+ 00028548  0x0000770f fetch  0x00000001 , 0x00008a09 
+ 00028549  0x00007710 set0  0x00000007 , 0x0000003f 
+ 00028550  0x00007711 store  0x00000001 , 0x00008a09 
+ 00028551  0x00007712 jam  0x00000077 , 0x00008a07 
+ 00028552  0x00007713 jam  0x000000c1 , 0x00008a08 
+ 00028553  0x00007714 jam  0x00000001 , 0x00008a0b 
+ 00028554  0x00007715 call  0x00006f90 
+ 00028555  0x00007716 fetch  0x00000001 , 0x00004409 
+ 00028556  0x00007717 store  0x00000001 , 0x000080cd 
+ 00028557  0x00007718 call  0x00006f97 
+ 00028558  0x00007719 jam  0x00000000 , 0x000080cd 
+ 00028559  0x0000771a branch  0x00006fa1 
+ 00028560  0x0000771d fetch  0x00000001 , 0x00004408 
+ 00028561  0x0000771e lshift4  0x0000003f , 0x0000003f 
+ 00028562  0x0000771f fetcht  0x00000001 , 0x00008a0b 
+ 00028563  0x00007720 and_into  0x0000000f , 0x00000002 
+ 00028564  0x00007721 ior  0x00000002 , 0x00000002 
+ 00028565  0x00007722 storet  0x00000001 , 0x00008a0b 
+ 00028566  0x00007723 rtn 
+ 00028567  0x00007726 jam  0x00000003 , 0x000080cc 
+ 00028568  0x00007728 fetch  0x00000001 , 0x00008129 
+ 00028569  0x00007729 bbit0  0x00000005 , 0x00006f98 
+ 00028570  0x0000772a fetcht  0x00000002 , 0x00008164 
+ 00028571  0x0000772b storet  0x00000002 , 0x0000440a 
+ 00028572  0x0000772c jam  0x00000006 , 0x000080cc 
+ 00028573  0x0000772e fetch  0x00000001 , 0x00008129 
+ 00028574  0x0000772f bbit1  0x00000005 , 0x00006f9d 
+ 00028575  0x00007730 jam  0x00000000 , 0x000080cc 
+ 00028576  0x00007731 rtn 
+ 00028577  0x00007734 fetch  0x00000001 , 0x00004411 
+ 00028578  0x00007735 rtn  0x00000034 
+ 00028579  0x00007736 fetch  0x00000001 , 0x00008a09 
+ 00028580  0x00007737 set1  0x00000007 , 0x0000003f 
+ 00028581  0x00007738 store  0x00000001 , 0x00008a09 
+ 00028582  0x00007739 fetch  0x00000001 , 0x00004409 
+ 00028583  0x0000773a store  0x00000001 , 0x000080cd 
+ 00028584  0x0000773b fetch  0x00000002 , 0x0000440d 
+ 00028585  0x0000773c store  0x00000002 , 0x000080ce 
+ 00028586  0x0000773d fetch  0x00000002 , 0x0000440f 
+ 00028587  0x0000773e store  0x00000002 , 0x000080d0 
+ 00028588  0x0000773f jam  0x0000000b , 0x000080cc 
+ 00028589  0x00007740 nop  0x000003e8 
+ 00028590  0x00007741 jam  0x00000003 , 0x000080cc 
+ 00028591  0x00007742 rtn 
+ 00028592  0x00007745 bpatch  0x000000dd , 0x0000401b 
+ 00028593  0x00007746 fetch  0x00000001 , 0x00004407 
+ 00028594  0x00007747 beq  0x00000001 , 0x00006fb5 
+ 00028595  0x00007748 beq  0x00000002 , 0x00006fbb 
+ 00028596  0x00007749 rtn 
+ 00028597  0x0000774c setarg  0x000003e8 
+ 00028598  0x0000774d store  0x00000002 , 0x00004405 
+ 00028599  0x0000774e fetcht  0x00000002 , 0x00004403 
+ 00028600  0x0000774f fetch  0x00000002 , 0x000043ff 
+ 00028601  0x00007750 arg  0x000007d0 , 0x00000013 
+ 00028602  0x00007751 branch  0x00006fc0 
+ 00028603  0x00007754 setarg  0x000007d0 
+ 00028604  0x00007755 store  0x00000002 , 0x00004405 
+ 00028605  0x00007756 fetcht  0x00000002 , 0x000043fd 
+ 00028606  0x00007757 fetch  0x00000002 , 0x00004401 
+ 00028607  0x00007758 arg  0x000003e8 , 0x00000013 
+ 00028608  0x0000775a isub  0x00000002 , 0x00000011 
+ 00028609  0x0000775b fetch  0x00000002 , 0x0000440a 
+ 00028610  0x0000775c isub  0x00000002 , 0x0000003f 
+ 00028611  0x0000775d nbranch  0x00006fcd , 0x00000002 
+ 00028612  0x0000775e fetcht  0x00000002 , 0x00004405 
+ 00028613  0x0000775f imul32  0x00000002 , 0x00000012 
+ 00028614  0x00007760 copy  0x00000013 , 0x0000003f 
+ 00028615  0x00007761 imul32  0x00000011 , 0x0000003f 
+ 00028616  0x00007762 iadd  0x00000012 , 0x0000003f 
+ 00028617  0x00007764 idiv  0x00000011 
+ 00028618  0x00007765 call  0x00007d62 
+ 00028619  0x00007766 quotient  0x0000003f 
+ 00028620  0x00007767 rtn 
+ 00028621  0x0000776a copy  0x00000002 , 0x0000003f 
+ 00028622  0x0000776b fetcht  0x00000002 , 0x0000440a 
+ 00028623  0x0000776c isub  0x00000002 , 0x0000003f 
+ 00028624  0x0000776d fetcht  0x00000002 , 0x00004405 
+ 00028625  0x0000776e imul32  0x00000002 , 0x00000012 
+ 00028626  0x0000776f copy  0x00000013 , 0x0000003f 
+ 00028627  0x00007770 imul32  0x00000011 , 0x0000003f 
+ 00028628  0x00007771 isub  0x00000012 , 0x0000003f 
+ 00028629  0x00007772 nbranch  0x00007dca , 0x00000002 
+ 00028630  0x00007773 branch  0x00006fc9 
+ 00028631  0x00007778 ifetch  0x00000008 , 0x00000011 
+ 00028632  0x00007779 store  0x00000008 , 0x00000670 
+ 00028633  0x0000777a fetch  0x00000002 , 0x00000670 
+ 00028634  0x0000777b fetcht  0x00000002 , 0x00000672 
+ 00028635  0x0000777c isub  0x00000002 , 0x00000011 
+ 00028636  0x0000777d fetch  0x00000002 , 0x00000676 
+ 00028637  0x0000777e isub  0x00000002 , 0x00000012 
+ 00028638  0x0000777f fetcht  0x00000002 , 0x00000674 
+ 00028639  0x00007780 isub  0x00000002 , 0x0000003e 
+ 00028640  0x00007781 ncall  0x00006fe7 , 0x00000002 
+ 00028641  0x00007782 mul32  0x00000012 , 0x00000064 , 0x0000003f 
+ 00028642  0x00007783 idiv  0x00000011 
+ 00028643  0x00007784 call  0x00007d62 
+ 00028644  0x00007785 quotient  0x0000003f 
+ 00028645  0x00007786 call  0x00006fef , 0x00000034 
+ 00028646  0x00007787 rtn 
+ 00028647  0x0000778a fetch  0x00000001 , 0x0000440c 
+ 00028648  0x0000778b set1  0x00000000 , 0x0000003f 
+ 00028649  0x0000778c store  0x00000001 , 0x0000440c 
+ 00028650  0x0000778d rtn 
+ 00028651  0x00007790 fetch  0x00000001 , 0x0000440c 
+ 00028652  0x00007791 set0  0x00000000 , 0x0000003f 
+ 00028653  0x00007792 store  0x00000001 , 0x0000440c 
+ 00028654  0x00007793 rtn 
+ 00028655  0x00007796 fetcht  0x00000001 , 0x0000440c 
+ 00028656  0x00007797 set1  0x00000001 , 0x00000002 
+ 00028657  0x00007798 storet  0x00000001 , 0x0000440c 
+ 00028658  0x00007799 rtn 
+ 00028659  0x0000779c fetcht  0x00000001 , 0x0000440c 
+ 00028660  0x0000779d set0  0x00000001 , 0x00000002 
+ 00028661  0x0000779e storet  0x00000001 , 0x0000440c 
+ 00028662  0x0000779f rtn 
+ 00028663  0x000077a5 fetch  0x00000002 , 0x0000442c 
+ 00028664  0x000077a6 ifetch  0x00000001 , 0x0000003f 
+ 00028665  0x000077a8 rtn  0x00000034 
+ 00028666  0x000077a9 copy  0x0000003f , 0x00000039 
+ 00028667  0x000077ab fetch  0x00000002 , 0x0000442c 
+ 00028668  0x000077ac increase  0x00000003 , 0x0000003f 
+ 00028669  0x000077ad copy  0x0000003f , 0x00000011 
+ 00028670  0x000077af ifetcht  0x00000001 , 0x00000011 
+ 00028671  0x000077b0 call  0x00006edd 
+ 00028672  0x000077b1 increase  0x00000001 , 0x00000011 
+ 00028673  0x000077b2 loop  0x00006ffe 
+ 00028674  0x000077b4 rtn 
+ 00028675  0x000077b7 fetch  0x00000002 , 0x0000442c 
+ 00028676  0x000077b8 increase  0x00000003 , 0x0000003f 
+ 00028677  0x000077b9 copy  0x0000003f , 0x00000011 
+ 00028678  0x000077bb force  0x00000000 , 0x00000012 
+ 00028679  0x000077bc setarg  0x00000000 
+ 00028680  0x000077bd store  0x00000002 , 0x000006f1 
+ 00028681  0x000077bf ifetcht  0x00000001 , 0x00000011 
+ 00028682  0x000077c0 call  0x00006ee6 
+ 00028683  0x000077c1 bpatch  0x000000de , 0x0000401b 
+ 00028684  0x000077c2 fetch  0x00000002 , 0x000006f1 
+ 00028685  0x000077c3 copy  0x00000012 , 0x00000007 
+ 00028686  0x000077c4 qsetflag  0x00000001 , 0x0000003f 
+ 00028687  0x000077c5 store  0x00000002 , 0x000006f1 
+ 00028688  0x000077c6 increase  0x00000001 , 0x00000011 
+ 00028689  0x000077c7 increase  0x00000001 , 0x00000012 
+ 00028690  0x000077c8 fetch  0x00000002 , 0x0000442c 
+ 00028691  0x000077c9 ifetch  0x00000001 , 0x0000003f 
+ 00028692  0x000077cb ixor  0x00000012 , 0x0000003e 
+ 00028693  0x000077cc nbranch  0x00007009 , 0x00000005 
+ 00028694  0x000077cd fetch  0x00000002 , 0x000006f1 
+ 00028695  0x000077ce fetcht  0x00000002 , 0x0000442e 
+ 00028696  0x000077cf ixor  0x00000002 , 0x0000003e 
+ 00028697  0x000077d0 rtn  0x00000005 
+ 00028698  0x000077d1 branch  0x00007dba 
+ 00028699  0x000077d4 fetch  0x00000002 , 0x0000442c 
+ 00028700  0x000077d5 ifetch  0x00000001 , 0x0000003f 
+ 00028701  0x000077d7 rtn  0x00000034 
+ 00028702  0x000077d8 copy  0x0000003f , 0x00000039 
+ 00028703  0x000077d9 fetch  0x00000002 , 0x0000442c 
+ 00028704  0x000077da increase  0x00000003 , 0x0000003f 
+ 00028705  0x000077db copy  0x0000003f , 0x00000011 
+ 00028706  0x000077dd ifetcht  0x00000001 , 0x00000011 
+ 00028707  0x000077de call  0x00006eb2 
+ 00028708  0x000077df increase  0x00000001 , 0x00000011 
+ 00028709  0x000077e0 loop  0x00007022 
+ 00028710  0x000077e2 rtn 
+ 00028711  0x000077e5 arg  0x00000009 , 0x00000007 
+ 00028712  0x000077e6 call  0x00007cef 
+ 00028713  0x000077e7 nrtn  0x00000034 
+ 00028714  0x000077e8 setarg  0x00000020 
+ 00028715  0x000077e9 arg  0x00000009 , 0x00000007 
+ 00028716  0x000077ea call  0x00007ce1 
+ 00028717  0x000077eb disable  0x00000028 
+ 00028718  0x000077ec call  0x0000701b 
+ 00028719  0x000077ed bpatch  0x000000df , 0x0000401b 
+ 00028720  0x000077ee fetch  0x00000002 , 0x0000442c 
+ 00028721  0x000077ef ifetch  0x00000001 , 0x0000003f 
+ 00028722  0x000077f1 rtn  0x00000034 
+ 00028723  0x000077f2 call  0x00007003 
+ 00028724  0x000077f3 nbranch  0x000077a5 , 0x00000028 
+ 00028725  0x000077f4 call  0x000077a3 
+ 00028726  0x000077f5 disable  0x00000028 
+ 00028727  0x000077f6 fetch  0x00000002 , 0x000006f1 
+ 00028728  0x000077f7 store  0x00000002 , 0x000006f8 
+ 00028729  0x000077f8 jam  0x00000000 , 0x000006fa 
+ 00028730  0x000077f9 force  0x00000000 , 0x00000007 
+ 00028731  0x000077fb fetch  0x00000002 , 0x0000442e 
+ 00028732  0x000077fc rshift  0x0000003f , 0x00000002 
+ 00028733  0x000077fd storet  0x00000002 , 0x0000442e 
+ 00028734  0x000077fe and  0x0000003f , 0x00000001 , 0x0000003f 
+ 00028735  0x000077ff fetcht  0x00000002 , 0x000006f8 
+ 00028736  0x00007800 and  0x00000002 , 0x00000001 , 0x00000011 
+ 00028737  0x00007801 rshift  0x00000002 , 0x00000002 
+ 00028738  0x00007802 storet  0x00000002 , 0x000006f8 
+ 00028739  0x00007803 ixor  0x00000011 , 0x0000003e 
+ 00028740  0x00007804 ncall  0x00007050 , 0x00000005 
+ 00028741  0x00007805 fetch  0x00000002 , 0x0000442c 
+ 00028742  0x00007806 ifetch  0x00000001 , 0x0000003f 
+ 00028743  0x00007808 fetcht  0x00000001 , 0x000006fa 
+ 00028744  0x00007809 increase  0x00000001 , 0x00000002 
+ 00028745  0x0000780a storet  0x00000001 , 0x000006fa 
+ 00028746  0x0000780b copy  0x00000002 , 0x00000007 
+ 00028747  0x0000780c ixor  0x00000007 , 0x0000003e 
+ 00028748  0x0000780d nbranch  0x0000703b , 0x00000005 
+ 00028749  0x0000780e fetch  0x00000002 , 0x000006f1 
+ 00028750  0x0000780f store  0x00000002 , 0x0000442e 
+ 00028751  0x00007810 rtn 
+ 00028752  0x00007812 bpatch  0x000000e0 , 0x0000401c 
+ 00028753  0x00007813 fetch  0x00000002 , 0x0000442c 
+ 00028754  0x00007814 increase  0x00000001 , 0x0000003f 
+ 00028755  0x00007815 ifetch  0x00000002 , 0x0000003f 
+ 00028756  0x00007816 branch  0x00007d79 
+ 00028757  0x0000781d fetch  0x00000001 , 0x00008042 
+ 00028758  0x0000781e ior  0x00000011 , 0x0000003f 
+ 00028759  0x0000781f store  0x00000001 , 0x00008042 
+ 00028760  0x00007820 fetch  0x00000002 , 0x00008050 
+ 00028761  0x00007821 set0  0x0000000d , 0x0000003f 
+ 00028762  0x00007822 store  0x00000002 , 0x00008050 
+ 00028763  0x00007824 nop  0x00000064 
+ 00028764  0x00007825 rtn 
+ 00028765  0x00007828 fetch  0x00000001 , 0x00008042 
+ 00028766  0x00007829 bbit1  0x00000006 , 0x00007062 
+ 00028767  0x0000782a bbit1  0x00000007 , 0x00007064 
+ 00028768  0x0000782c setarg  0x00b71b00 
+ 00028769  0x0000782d rtn 
+ 00028770  0x0000782f setarg  0x016e3600 
+ 00028771  0x00007830 rtn 
+ 00028772  0x00007832 setarg  0x000080e8 
+ 00028773  0x00007833 rtn 
+ 00028774  0x00007837 fetcht  0x00000003 , 0x00000672 
+ 00028775  0x00007838 call  0x0000705d 
+ 00028776  0x00007839 idiv  0x00000002 
+ 00028777  0x0000783a call  0x00007d62 
+ 00028778  0x0000783b quotient  0x00000002 
+ 00028779  0x0000783c fetch  0x00000001 , 0x00000675 
+ 00028780  0x0000783d imul32  0x00000002 , 0x0000003f 
+ 00028781  0x0000783e div  0x0000003f , 0x00000064 
+ 00028782  0x0000783f call  0x00007d62 
+ 00028783  0x00007840 quotient  0x00000011 
+ 00028784  0x00007841 copy  0x00000002 , 0x0000003f 
+ 00028785  0x00007842 isub  0x00000011 , 0x00000012 
+ 00028786  0x00007844 fetch  0x00000001 , 0x00000671 
+ 00028787  0x00007845 call  0x0000707a 
+ 00028788  0x00007846 fetch  0x00000001 , 0x00000670 
+ 00028789  0x00007847 fetcht  0x00000001 , 0x00000671 
+ 00028790  0x00007848 and_into  0x0000000f , 0x00000002 
+ 00028791  0x00007849 lshift8  0x00000002 , 0x00000002 
+ 00028792  0x0000784a ior  0x00000002 , 0x0000003f 
+ 00028793  0x0000784b branch  0x000070ba 
+ 00028794  0x0000784e iforce  0x00000007 
+ 00028795  0x0000784f call  0x00007088 
+ 00028796  0x00007850 branch  0x0000707d 
+ 00028797  0x00007853 fetch  0x00000001 , 0x000080be 
+ 00028798  0x00007854 qset1  0x0000003f 
+ 00028799  0x00007855 store  0x00000001 , 0x000080be 
+ 00028800  0x00007856 fetcht  0x00000001 , 0x00008042 
+ 00028801  0x00007857 isolate1  0x00000007 , 0x00000002 
+ 00028802  0x00007858 call  0x00007086 , 0x00000001 
+ 00028803  0x00007859 qset0  0x0000003f 
+ 00028804  0x0000785a store  0x00000001 , 0x000080be 
+ 00028805  0x0000785b rtn 
+ 00028806  0x0000785f nop  0x000001e0 
+ 00028807  0x00007860 rtn 
+ 00028808  0x00007863 and_into  0x0000000f , 0x0000003f 
+ 00028809  0x00007864 arg  0x0000809c , 0x00000005 
+ 00028810  0x00007865 mul32  0x0000003f , 0x00000004 , 0x0000003f 
+ 00028811  0x00007866 iadd  0x00000005 , 0x00000005 
+ 00028812  0x00007867 copy  0x00000011 , 0x0000003f 
+ 00028813  0x00007868 istore  0x00000002 , 0x00000005 
+ 00028814  0x00007869 copy  0x00000012 , 0x0000003f 
+ 00028815  0x0000786a istore  0x00000002 , 0x00000005 
+ 00028816  0x0000786b rtn 
+ 00028817  0x00007871 rshift8  0x00000012 , 0x00000007 
+ 00028818  0x00007872 call  0x000070af 
+ 00028819  0x00007873 rshift8  0x00000012 , 0x00000007 
+ 00028820  0x00007874 call  0x000070a9 
+ 00028821  0x00007875 rshift8  0x00000011 , 0x00000007 
+ 00028822  0x00007876 enable  0x00000001 
+ 00028823  0x00007877 call  0x000070aa 
+ 00028824  0x00007879 deposit  0x00000011 
+ 00028825  0x0000787a call  0x000070b5 
+ 00028826  0x0000787b deposit  0x00000012 
+ 00028827  0x0000787c branch  0x000070ba 
+ 00028828  0x0000787f deposit  0x00000011 
+ 00028829  0x00007880 call  0x000070bd 
+ 00028830  0x00007881 deposit  0x00000012 
+ 00028831  0x00007882 call  0x000070bd 
+ 00028832  0x00007884 rshift8  0x00000011 , 0x00000007 
+ 00028833  0x00007885 disable  0x00000001 
+ 00028834  0x00007886 call  0x000070aa 
+ 00028835  0x00007887 rshift8  0x00000012 , 0x00000007 
+ 00028836  0x00007888 disable  0x00000001 
+ 00028837  0x00007889 call  0x000070b0 
+ 00028838  0x0000788a rshift8  0x00000012 , 0x00000007 
+ 00028839  0x0000788b disable  0x00000001 
+ 00028840  0x0000788c branch  0x000070aa 
+ 00028841  0x00007890 isolate1  0x00000007 , 0x00000007 
+ 00028842  0x00007892 and  0x00000007 , 0x0000000f , 0x00000007 
+ 00028843  0x00007893 fetch  0x00000001 , 0x000080bc 
+ 00028844  0x00007894 qsetflag  0x00000001 , 0x0000003f 
+ 00028845  0x00007895 store  0x00000001 , 0x000080bc 
+ 00028846  0x00007896 rtn 
+ 00028847  0x00007899 isolate1  0x00000006 , 0x00000007 
+ 00028848  0x0000789b and  0x00000007 , 0x0000000f , 0x00000007 
+ 00028849  0x0000789c fetch  0x00000001 , 0x0000809b 
+ 00028850  0x0000789d qsetflag  0x00000001 , 0x0000003f 
+ 00028851  0x0000789e store  0x00000001 , 0x0000809b 
+ 00028852  0x0000789f rtn 
+ 00028853  0x000078a1 call  0x000070c5 
+ 00028854  0x000078a3 lshift8  0x0000003f , 0x0000003f 
+ 00028855  0x000078a4 add  0x00000007 , 0x00000010 , 0x00000002 
+ 00028856  0x000078a5 ior  0x00000002 , 0x0000003f 
+ 00028857  0x000078a6 branch  0x00006f1d 
+ 00028858  0x000078a9 enable  0x00000028 
+ 00028859  0x000078aa call  0x000070b5 
+ 00028860  0x000078ab branch  0x000070c0 
+ 00028861  0x000078ae disable  0x00000028 
+ 00028862  0x000078af call  0x000070c5 
+ 00028863  0x000078b0 branch  0x000070c0 
+ 00028864  0x000078b3 and  0x00000007 , 0x0000000f , 0x00000007 
+ 00028865  0x000078b4 fetch  0x00000001 , 0x0000809a 
+ 00028866  0x000078b5 qsetflag  0x00000028 , 0x0000003f 
+ 00028867  0x000078b6 store  0x00000001 , 0x0000809a 
+ 00028868  0x000078b7 rtn 
+ 00028869  0x000078b9 rshift8  0x0000003f , 0x00000007 
+ 00028870  0x000078ba and  0x00000007 , 0x0000000f , 0x00000007 
+ 00028871  0x000078bb rtn 
+ 00028872  0x000078c0 copy  0x0000003f , 0x00000002 
+ 00028873  0x000078c1 bpatch  0x000000e1 , 0x0000401c 
+ 00028874  0x000078c2 call  0x000070d5 
+ 00028875  0x000078c3 setarg  0x00000800 
+ 00028876  0x000078c4 isub  0x00000002 , 0x0000003f 
+ 00028877  0x000078c5 copy  0x0000003f , 0x00000002 
+ 00028878  0x000078c6 rshift4  0x00000002 , 0x00000002 
+ 00028879  0x000078c7 storet  0x00000001 , 0x00008004 
+ 00028880  0x000078c8 nop  0x00000578 
+ 00028881  0x000078c9 copy  0x0000003f , 0x00000002 
+ 00028882  0x000078ca and_into  0x0000000f , 0x00000002 
+ 00028883  0x000078cb storet  0x00000001 , 0x0000800b 
+ 00028884  0x000078cc rtn 
+ 00028885  0x000078d0 enable  0x0000002c 
+ 00028886  0x000078d1 branch  0x000070d9 
+ 00028887  0x000078d5 bpatch  0x000000e2 , 0x0000401c 
+ 00028888  0x000078d6 disable  0x0000002c 
+ 00028889  0x000078d8 fetch  0x00000001 , 0x00008043 
+ 00028890  0x000078d9 setflag  0x0000002c , 0x00000003 , 0x0000003f 
+ 00028891  0x000078da store  0x00000001 , 0x00008043 
+ 00028892  0x000078db rtn 
+ 00028893  0x000078e1 arg  0x00000031 , 0x00000002 
+ 00028894  0x000078e5 store  0x00000004 , 0x00008062 
+ 00028895  0x000078e6 store  0x00000002 , 0x00008066 
+ 00028896  0x000078e7 storet  0x00000001 , 0x00008061 
+ 00028897  0x000078e8 rtn 
+ 00028898  0x000078ec fetch  0x00000002 , 0x0000812c 
+ 00028899  0x000078ed rtn 
+ 00028900  0x000078f0 fetchr  0x00000003 , 0x00000002 , 0x00008066 
+ 00028901  0x000078f1 fetchr  0x0000000a , 0x00000002 , 0x00008062 
+ 00028902  0x000078f2 fetchr  0x00000010 , 0x00000002 , 0x00008064 
+ 00028903  0x000078f3 rtn 
+ 00028904  0x000078f6 storer  0x00000003 , 0x00000002 , 0x00008066 
+ 00028905  0x000078f7 rtn 
+ 00028906  0x000078ff call  0x00007dba 
+ 00028907  0x00007900 arg  0x00000000 , 0x0000002b 
+ 00028908  0x00007901 call  0x000070e2 
+ 00028909  0x00007902 beq  0x00000002 , 0x0000712c 
+ 00028910  0x00007903 sub  0x0000003f , 0x00000004 , 0x0000003e 
+ 00028911  0x00007904 rtn  0x00000002 
+ 00028912  0x00007905 call  0x000070e4 
+ 00028913  0x00007906 ifetcht  0x00000002 , 0x00000003 
+ 00028914  0x00007907 setarg  0x0000a654 
+ 00028915  0x00007908 call  0x00007135 
+ 00028916  0x00007909 nbranch  0x0000711a , 0x00000002 
+ 00028917  0x0000790a copy  0x00000018 , 0x00000002 
+ 00028918  0x0000790b setarg  0x00017f8e 
+ 00028919  0x0000790c call  0x00007135 
+ 00028920  0x0000790d nbranch  0x0000711a , 0x00000002 
+ 00028921  0x0000790f copy  0x00000018 , 0x00000002 
+ 00028922  0x00007910 setarg  0x00002328 
+ 00028923  0x00007911 call  0x00007135 
+ 00028924  0x00007912 branch  0x00007111 , 0x00000002 
+ 00028925  0x00007913 ifetcht  0x00000002 , 0x00000003 
+ 00028926  0x00007914 setarg  0x00001194 
+ 00028927  0x00007915 call  0x00007135 
+ 00028928  0x00007916 branch  0x00007111 , 0x00000002 
+ 00028929  0x00007917 call  0x000070e2 
+ 00028930  0x00007918 sub  0x0000003f , 0x00000085 , 0x0000003e 
+ 00028931  0x00007919 rtn  0x00000002 
+ 00028932  0x0000791a arg  0x00000020 , 0x00000039 
+ 00028933  0x0000791c ifetcht  0x00000002 , 0x00000003 
+ 00028934  0x0000791d setarg  0x00000230 
+ 00028935  0x0000791e call  0x00007135 
+ 00028936  0x0000791f branch  0x00007111 , 0x00000002 
+ 00028937  0x00007920 ifetcht  0x00000002 , 0x00000003 
+ 00028938  0x00007921 setarg  0x0000069a 
+ 00028939  0x00007922 call  0x00007135 
+ 00028940  0x00007923 nbranch  0x00007116 , 0x00000002 
+ 00028941  0x00007924 copy  0x00000018 , 0x00000002 
+ 00028942  0x00007925 setarg  0x00000230 
+ 00028943  0x00007926 call  0x00007135 
+ 00028944  0x00007927 nbranch  0x00007117 , 0x00000002 
+ 00028945  0x0000792b copy  0x00000018 , 0x00000002 
+ 00028946  0x0000792c setarg  0x0000ffff 
+ 00028947  0x0000792d isub  0x00000002 , 0x0000003e 
+ 00028948  0x0000792e branch  0x00007131 , 0x00000005 
+ 00028949  0x0000792f branch  0x000070e8 
+ 00028950  0x00007932 set1  0x00000020 , 0x0000002b 
+ 00028951  0x00007934 rshift  0x0000002b , 0x0000002b 
+ 00028952  0x00007935 loop  0x00007105 
+ 00028953  0x00007936 branch  0x00007125 
+ 00028954  0x00007939 call  0x000070e2 
+ 00028955  0x0000793a sub  0x0000003f , 0x00000007 , 0x0000003e 
+ 00028956  0x0000793b rtn  0x00000002 
+ 00028957  0x0000793c ifetcht  0x00000002 , 0x00000003 
+ 00028958  0x0000793d setarg  0x00002328 
+ 00028959  0x0000793e call  0x00007135 
+ 00028960  0x0000793f branch  0x00007111 , 0x00000002 
+ 00028961  0x00007940 ifetcht  0x00000002 , 0x00000003 
+ 00028962  0x00007941 setarg  0x000008ca 
+ 00028963  0x00007942 call  0x00007135 
+ 00028964  0x00007943 branch  0x00007111 , 0x00000002 
+ 00028965  0x00007945 ifetcht  0x00000002 , 0x00000003 
+ 00028966  0x00007946 setarg  0x00000230 
+ 00028967  0x00007947 call  0x00007135 
+ 00028968  0x00007948 branch  0x00007111 , 0x00000002 
+ 00028969  0x00007949 call  0x000070e8 
+ 00028970  0x0000794a copy  0x00000013 , 0x0000003f 
+ 00028971  0x0000794b branch  0x00007d79 
+ 00028972  0x0000794e call  0x000070e4 
+ 00028973  0x0000794f ifetcht  0x00000002 , 0x00000003 
+ 00028974  0x00007950 setarg  0x0000ffff 
+ 00028975  0x00007951 isub  0x00000002 , 0x0000003e 
+ 00028976  0x00007952 nrtn  0x00000005 
+ 00028977  0x00007954 call  0x000070e8 
+ 00028978  0x00007955 call  0x00007dbc 
+ 00028979  0x00007956 copy  0x00000013 , 0x0000003f 
+ 00028980  0x00007957 branch  0x00007d79 
+ 00028981  0x0000795f fetchr  0x00000012 , 0x00000001 , 0x00004435 
+ 00028982  0x00007969 copy  0x00000002 , 0x00000018 
+ 00028983  0x0000796a imul32  0x00000012 , 0x00000012 
+ 00028984  0x0000796b lshift  0x00000002 , 0x00000002 
+ 00028985  0x0000796c isub  0x00000002 , 0x00000011 
+ 00028986  0x0000796d ncall  0x0000713e , 0x00000002 
+ 00028987  0x0000796e mul32  0x00000011 , 0x00000064 , 0x0000003f 
+ 00028988  0x0000796f isub  0x00000012 , 0x0000003e 
+ 00028989  0x00007970 rtn 
+ 00028990  0x00007973 sub  0x00000011 , 0x00000000 , 0x00000011 
+ 00028991  0x00007974 rtn 
+ 00028992  0x00007980 bpatch  0x000000e3 , 0x0000401c 
+ 00028993  0x00007981 jam  0x00000050 , 0x00000230 
+ 00028994  0x00007982 arg  0x00000231 , 0x00000005 
+ 00028995  0x00007983 arg  0x000042ab , 0x00000006 
+ 00028996  0x00007984 call  0x00007c8f 
+ 00028997  0x00007985 arg  0x0000448f , 0x00000006 
+ 00028998  0x00007986 call  0x00007c8d 
+ 00028999  0x00007987 arg  0x000005fe , 0x00000006 
+ 00029000  0x00007988 call  0x00007c8d 
+ 00029001  0x00007989 call  0x000071fb 
+ 00029002  0x0000798a arg  0x00000158 , 0x00000006 
+ 00029003  0x0000798b call  0x000071f6 
+ 00029004  0x0000798c call  0x000071c1 
+ 00029005  0x0000798e arg  0x000006d1 , 0x00000005 
+ 00029006  0x0000798f call  0x000071f2 
+ 00029007  0x00007990 setarg  0x000f4240 
+ 00029008  0x00007991 copy  0x0000003f , 0x00000011 
+ 00029009  0x00007992 fetch  0x00000004 , 0x000006d1 
+ 00029010  0x00007993 idiv  0x00000011 
+ 00029011  0x00007994 call  0x00007d62 
+ 00029012  0x00007995 remainder  0x0000003f 
+ 00029013  0x00007996 store  0x00000004 , 0x000005fa 
+ 00029014  0x00007998 rtn 
+ 00029015  0x0000799b jam  0x00000041 , 0x00000230 
+ 00029016  0x0000799c arg  0x00000231 , 0x00000005 
+ 00029017  0x0000799d call  0x000071a6 
+ 00029018  0x0000799e call  0x000071a1 
+ 00029019  0x0000799f fetch  0x00000003 , 0x000042c5 
+ 00029020  0x000079a0 istore  0x00000003 , 0x00000005 
+ 00029021  0x000079a3 call  0x00007167 
+ 00029022  0x000079a5 arg  0x00000158 , 0x00000006 
+ 00029023  0x000079a6 call  0x00007c8f 
+ 00029024  0x000079a7 arg  0x000042ab , 0x00000006 
+ 00029025  0x000079a8 call  0x00007c8f 
+ 00029026  0x000079a9 call  0x000071fb 
+ 00029027  0x000079aa arg  0x000006f1 , 0x00000006 
+ 00029028  0x000079ab arg  0x000006a1 , 0x00000005 
+ 00029029  0x000079ac call  0x00007c8f 
+ 00029030  0x000079ae branch  0x000071c1 
+ 00029031  0x000079b3 fetch  0x00000004 , 0x000042ff 
+ 00029032  0x000079b4 istore  0x00000004 , 0x00000005 
+ 00029033  0x000079b5 call  0x00007c9b 
+ 00029034  0x000079b6 branch  0x00007c9a 
+ 00029035  0x000079b9 bpatch  0x000000e4 , 0x0000401c 
+ 00029036  0x000079ba jam  0x00000041 , 0x00000230 
+ 00029037  0x000079bb arg  0x00000231 , 0x00000005 
+ 00029038  0x000079bc call  0x000071a1 
+ 00029039  0x000079bd call  0x000071a6 
+ 00029040  0x000079be fetch  0x00000003 , 0x000042be 
+ 00029041  0x000079bf istore  0x00000003 , 0x00000005 
+ 00029042  0x000079c2 call  0x00007167 
+ 00029043  0x000079c3 arg  0x000042ab , 0x00000006 
+ 00029044  0x000079c4 call  0x00007c8f 
+ 00029045  0x000079c5 arg  0x00000158 , 0x00000006 
+ 00029046  0x000079c6 call  0x00007c8f 
+ 00029047  0x000079c7 call  0x000071fb 
+ 00029048  0x000079c8 arg  0x000006f1 , 0x00000006 
+ 00029049  0x000079c9 arg  0x000006a1 , 0x00000005 
+ 00029050  0x000079ca call  0x00007c8f 
+ 00029051  0x000079cc call  0x000071c1 
+ 00029052  0x000079cd arg  0x000006d1 , 0x00000005 
+ 00029053  0x000079ce branch  0x000071f2 
+ 00029054  0x000079d1 jam  0x00000020 , 0x00000230 
+ 00029055  0x000079d2 arg  0x0000063e , 0x00000006 
+ 00029056  0x000079d3 arg  0x00000231 , 0x00000005 
+ 00029057  0x000079d4 call  0x00007c8d 
+ 00029058  0x000079d5 call  0x000071fb 
+ 00029059  0x000079d6 arg  0x000005e9 , 0x00000006 
+ 00029060  0x000079d7 call  0x000071f6 
+ 00029061  0x000079d8 call  0x000071c1 
+ 00029062  0x000079d9 arg  0x000006a1 , 0x00000005 
+ 00029063  0x000079da call  0x00007375 
+ 00029064  0x000079db arg  0x00000001 , 0x00000002 
+ 00029065  0x000079dc call  0x00007190 
+ 00029066  0x000079dd arg  0x0000428a , 0x00000005 
+ 00029067  0x000079de call  0x000071f2 
+ 00029068  0x000079df arg  0x00000000 , 0x00000002 
+ 00029069  0x000079e0 call  0x00007190 
+ 00029070  0x000079e1 arg  0x000006f1 , 0x00000005 
+ 00029071  0x000079e3 branch  0x00007375 
+ 00029072  0x000079e7 bpatch  0x000000e5 , 0x0000401c 
+ 00029073  0x000079e8 jam  0x00000035 , 0x00000230 
+ 00029074  0x000079e9 setarg  0x00000100 
+ 00029075  0x000079ea store  0x00000002 , 0x00000231 
+ 00029076  0x000079eb call  0x000071a1 
+ 00029077  0x000079ec call  0x000071a6 
+ 00029078  0x000079ed arg  0x000042ab , 0x00000006 
+ 00029079  0x000079ee call  0x00007c8f 
+ 00029080  0x000079ef arg  0x00000158 , 0x00000006 
+ 00029081  0x000079f0 call  0x00007c8f 
+ 00029082  0x000079f2 setarg  0x00006c65 
+ 00029083  0x000079f3 istore  0x00000002 , 0x00000005 
+ 00029084  0x000079f4 setarg  0x00006274 
+ 00029085  0x000079f5 istore  0x00000002 , 0x00000005 
+ 00029086  0x000079f6 istoret  0x00000001 , 0x00000005 
+ 00029087  0x000079f7 call  0x000071fb 
+ 00029088  0x000079f8 branch  0x000071c1 
+ 00029089  0x000079fb fetch  0x00000006 , 0x000042db 
+ 00029090  0x000079fc istore  0x00000006 , 0x00000005 
+ 00029091  0x000079fd fetch  0x00000001 , 0x000042d2 
+ 00029092  0x000079fe istore  0x00000001 , 0x00000005 
+ 00029093  0x000079ff rtn 
+ 00029094  0x00007a02 fetch  0x00000006 , 0x00000178 
+ 00029095  0x00007a03 istore  0x00000006 , 0x00000005 
+ 00029096  0x00007a08 fetch  0x00000001 , 0x000042cb 
+ 00029097  0x00007a09 istore  0x00000001 , 0x00000005 
+ 00029098  0x00007a0a rtn 
+ 00029099  0x00007a0d jam  0x00000041 , 0x00000230 
+ 00029100  0x00007a0e fetch  0x00000001 , 0x000044d0 
+ 00029101  0x00007a0f store  0x00000001 , 0x00000231 
+ 00029102  0x00007a10 arg  0x0000448f , 0x00000006 
+ 00029103  0x00007a11 call  0x00007c8d 
+ 00029104  0x00007a12 arg  0x000005fe , 0x00000006 
+ 00029105  0x00007a13 call  0x00007c8d 
+ 00029106  0x00007a14 call  0x000071fb 
+ 00029107  0x00007a15 arg  0x00000158 , 0x00000006 
+ 00029108  0x00007a16 call  0x000071f6 
+ 00029109  0x00007a17 branch  0x000071c1 
+ 00029110  0x00007a1b jam  0x00000041 , 0x00000230 
+ 00029111  0x00007a1c fetch  0x00000001 , 0x000044d0 
+ 00029112  0x00007a1d store  0x00000001 , 0x00000231 
+ 00029113  0x00007a1e arg  0x000005fe , 0x00000006 
+ 00029114  0x00007a1f call  0x00007c8d 
+ 00029115  0x00007a20 arg  0x0000448f , 0x00000006 
+ 00029116  0x00007a21 call  0x00007c8d 
+ 00029117  0x00007a22 call  0x000071fb 
+ 00029118  0x00007a23 arg  0x000042ab , 0x00000006 
+ 00029119  0x00007a24 call  0x000071f6 
+ 00029120  0x00007a25 branch  0x000071c1 
+ 00029121  0x00007a28 bpatch  0x000000e6 , 0x0000401c 
+ 00029122  0x00007a29 call  0x00007210 
+ 00029123  0x00007a2d fetch  0x00000001 , 0x00000230 
+ 00029124  0x00007a2e copy  0x0000003f , 0x00000002 
+ 00029125  0x00007a30 increase  0x0000000f , 0x0000003f 
+ 00029126  0x00007a31 rshift4  0x0000003f , 0x0000003f 
+ 00029127  0x00007a32 copy  0x0000003f , 0x00000012 
+ 00029128  0x00007a33 branch  0x000071d3 , 0x00000034 
+ 00029129  0x00007a34 and  0x00000002 , 0x0000000f , 0x0000003f 
+ 00029130  0x00007a35 nbranch  0x000071d6 , 0x00000034 
+ 00029131  0x00007a37 arg  0x000006b1 , 0x00000013 
+ 00029132  0x00007a38 arg  0x00000231 , 0x0000003f 
+ 00029133  0x00007a39 increase  0xfffffff0 , 0x0000003f 
+ 00029134  0x00007a3c iadd  0x00000002 , 0x00000011 
+ 00029135  0x00007a3d arg  0x000006e1 , 0x00000005 
+ 00029136  0x00007a3e arg  0x00000004 , 0x00000039 
+ 00029137  0x00007a3f call  0x00007ca9 
+ 00029138  0x00007a43 branch  0x000071e1 
+ 00029139  0x00007a46 arg  0x00000001 , 0x00000012 
+ 00029140  0x00007a47 arg  0x00000000 , 0x00000011 
+ 00029141  0x00007a49 branch  0x000071d7 
+ 00029142  0x00007a4e and  0x00000002 , 0x0000000f , 0x00000011 
+ 00029143  0x00007a50 arg  0x00000231 , 0x0000003f 
+ 00029144  0x00007a51 iadd  0x00000002 , 0x0000003f 
+ 00029145  0x00007a52 isub  0x00000011 , 0x00000006 
+ 00029146  0x00007a54 arg  0x000006d1 , 0x00000005 
+ 00029147  0x00007a55 call  0x00007236 
+ 00029148  0x00007a57 arg  0x000006c1 , 0x00000013 
+ 00029149  0x00007a58 arg  0x000006d1 , 0x00000011 
+ 00029150  0x00007a59 arg  0x000006e1 , 0x00000005 
+ 00029151  0x00007a5a arg  0x00000004 , 0x00000039 
+ 00029152  0x00007a5b call  0x00007ca9 
+ 00029153  0x00007a67 call  0x0000736f 
+ 00029154  0x00007a68 call  0x000072da 
+ 00029155  0x00007a6b arg  0x00000231 , 0x00000006 
+ 00029156  0x00007a6e increase  0xffffffff , 0x00000012 
+ 00029157  0x00007a6f deposit  0x00000012 
+ 00029158  0x00007a70 branch  0x000071ea , 0x00000034 
+ 00029159  0x00007a71 call  0x00007361 
+ 00029160  0x00007a72 call  0x000072d4 
+ 00029161  0x00007a73 branch  0x000071e4 
+ 00029162  0x00007a76 arg  0x000006d1 , 0x00000005 
+ 00029163  0x00007a77 call  0x00007375 
+ 00029164  0x00007a78 arg  0x000006e1 , 0x00000006 
+ 00029165  0x00007a79 call  0x00007361 
+ 00029166  0x00007a7a call  0x000072da 
+ 00029167  0x00007a7b arg  0x000006d1 , 0x00000006 
+ 00029168  0x00007a7c call  0x00007361 
+ 00029169  0x00007a7d branch  0x000072d4 
+ 00029170  0x00007a83 copy  0x00000005 , 0x00000011 
+ 00029171  0x00007a84 call  0x00007375 
+ 00029172  0x00007a86 arg  0x00000010 , 0x00000039 
+ 00029173  0x00007a87 branch  0x00007cb1 
+ 00029174  0x00007a8a arg  0x000006a1 , 0x00000005 
+ 00029175  0x00007a8b call  0x00007c8f 
+ 00029176  0x00007a8d arg  0x00000010 , 0x00000039 
+ 00029177  0x00007a8e arg  0x000006a1 , 0x00000011 
+ 00029178  0x00007a8f branch  0x00007cb1 
+ 00029179  0x00007a92 fetch  0x00000001 , 0x00000230 
+ 00029180  0x00007a93 copy  0x0000003f , 0x00000039 
+ 00029181  0x00007a94 arg  0x00000231 , 0x00000011 
+ 00029182  0x00007a95 branch  0x00007cb1 
+ 00029183  0x00007a98 ifetch  0x00000001 , 0x00000011 
+ 00029184  0x00007a99 lshift  0x0000003f , 0x0000003f 
+ 00029185  0x00007a9a isolate1  0x00000000 , 0x00000013 
+ 00029186  0x00007a9b setflag  0x00000001 , 0x00000000 , 0x0000003f 
+ 00029187  0x00007a9c isolate1  0x00000008 , 0x0000003f 
+ 00029188  0x00007a9d setflag  0x00000001 , 0x00000000 , 0x00000013 
+ 00029189  0x00007a9e istore  0x00000001 , 0x00000011 
+ 00029190  0x00007a9f increase  0xffffffff , 0x00000011 
+ 00029191  0x00007aa0 loop  0x000071ff 
+ 00029192  0x00007aa1 rtn 
+ 00029193  0x00007aa4 arg  0x000006b1 , 0x00000011 
+ 00029194  0x00007aa6 increase  0x0000000f , 0x00000011 
+ 00029195  0x00007aa7 force  0x00000010 , 0x00000039 
+ 00029196  0x00007aa8 force  0x00000000 , 0x00000013 
+ 00029197  0x00007aa9 branch  0x000071ff 
+ 00029198  0x00007aac arg  0x000006c1 , 0x00000011 
+ 00029199  0x00007aad branch  0x0000720a 
+ 00029200  0x00007ab1 arg  0x000006a1 , 0x00000006 
+ 00029201  0x00007ab2 call  0x0000735f 
+ 00029202  0x00007ab5 force  0x00000008 , 0x00000038 
+ 00029203  0x00007ab6 call  0x00007370 
+ 00029204  0x00007ab7 call  0x0000736f 
+ 00029205  0x00007ab8 call  0x000072d1 
+ 00029206  0x00007abd arg  0x000006b1 , 0x00000005 
+ 00029207  0x00007abe call  0x00007375 
+ 00029208  0x00007ac0 bpatch  0x000000e7 , 0x0000401c 
+ 00029209  0x00007ac1 fetch  0x00000001 , 0x000006b1 
+ 00029210  0x00007ac2 isolate1  0x00000007 , 0x0000003f 
+ 00029211  0x00007ac3 nbranch  0x00007221 , 0x00000001 
+ 00029212  0x00007ac4 call  0x00007209 
+ 00029213  0x00007ac7 arg  0x000006b1 , 0x00000013 
+ 00029214  0x00007ac9 arg  0x000006b1 , 0x00000005 
+ 00029215  0x00007acc call  0x0000722b 
+ 00029216  0x00007acd branch  0x00007222 
+ 00029217  0x00007acf call  0x00007209 
+ 00029218  0x00007ad2 arg  0x000006b1 , 0x00000006 
+ 00029219  0x00007ad3 arg  0x000006c1 , 0x00000005 
+ 00029220  0x00007ad4 call  0x00007c8f 
+ 00029221  0x00007ad5 fetch  0x00000001 , 0x000006c1 
+ 00029222  0x00007ad6 isolate1  0x00000007 , 0x0000003f 
+ 00029223  0x00007ad7 nbranch  0x0000720e , 0x00000001 
+ 00029224  0x00007ad8 call  0x0000720e 
+ 00029225  0x00007ada arg  0x000006c1 , 0x00000013 
+ 00029226  0x00007adc arg  0x000006c1 , 0x00000005 
+ 00029227  0x00007ae3 arg  0x00000003 , 0x00000039 
+ 00029228  0x00007ae5 arg  0x00000000 , 0x00000002 
+ 00029229  0x00007ae6 call  0x00007232 
+ 00029230  0x00007ae7 increase  0x00000004 , 0x00000013 
+ 00029231  0x00007ae8 loop  0x0000722c 
+ 00029232  0x00007ae9 arg  0x00008700 , 0x00000002 
+ 00029233  0x00007aea lshift16  0x00000002 , 0x00000002 
+ 00029234  0x00007aec ifetch  0x00000004 , 0x00000013 
+ 00029235  0x00007aed ixor  0x00000002 , 0x0000003f 
+ 00029236  0x00007aee istore  0x00000004 , 0x00000005 
+ 00029237  0x00007aef rtn 
+ 00029238  0x00007af6 bpatch  0x000000e8 , 0x0000401d 
+ 00029239  0x00007af7 arg  0x00000010 , 0x00000039 
+ 00029240  0x00007af8 arg  0x00000000 , 0x0000003f 
+ 00029241  0x00007afa isub  0x00000011 , 0x0000003e 
+ 00029242  0x00007afb branch  0x00007241 , 0x00000005 
+ 00029243  0x00007afc branch  0x00007244 , 0x00000002 
+ 00029244  0x00007afd ifetcht  0x00000001 , 0x00000006 
+ 00029245  0x00007afe istoret  0x00000001 , 0x00000005 
+ 00029246  0x00007b00 increase  0x00000001 , 0x0000003f 
+ 00029247  0x00007b01 loop  0x00007239 
+ 00029248  0x00007b02 rtn 
+ 00029249  0x00007b04 arg  0x00000080 , 0x00000002 
+ 00029250  0x00007b06 istoret  0x00000001 , 0x00000005 
+ 00029251  0x00007b07 branch  0x0000723e 
+ 00029252  0x00007b0a arg  0x00000000 , 0x00000002 
+ 00029253  0x00007b0b branch  0x00007242 
+ 00029254  0x00007b11 lshift8  0x00000002 , 0x00000002 
+ 00029255  0x00007b13 lshift16  0x00000002 , 0x00000002 
+ 00029256  0x00007b14 ior  0x00000002 , 0x00000002 
+ 00029257  0x00007b15 rtn 
+ 00029258  0x00007b1b bpatch  0x000000e9 , 0x0000401d 
+ 00029259  0x00007b1c call  0x00007306 
+ 00029260  0x00007b1d arg  0x0000428a , 0x00000005 
+ 00029261  0x00007b1e branch  0x00007375 
+ 00029262  0x00007b22 arg  0x000042ab , 0x00000005 
+ 00029263  0x00007b23 branch  0x00007251 , 0x00000029 
+ 00029264  0x00007b24 arg  0x00000158 , 0x00000005 
+ 00029265  0x00007b26 copy  0x00000006 , 0x00000011 
+ 00029266  0x00007b27 call  0x00007c8f 
+ 00029267  0x00007b28 call  0x0000731b 
+ 00029268  0x00007b29 arg  0x0000429b , 0x00000006 
+ 00029269  0x00007b2a branch  0x0000738e 
+ 00029270  0x00007b2d arg  0x00000158 , 0x00000011 
+ 00029271  0x00007b2e branch  0x00007259 , 0x00000029 
+ 00029272  0x00007b2f arg  0x000042ab , 0x00000011 
+ 00029273  0x00007b31 copy  0x00000011 , 0x00000005 
+ 00029274  0x00007b32 call  0x00007de7 
+ 00029275  0x00007b33 branch  0x0000731b 
+ 00029276  0x00007b36 arg  0x000042e5 , 0x00000006 
+ 00029277  0x00007b37 call  0x00007361 
+ 00029278  0x00007b38 arg  0x0000428a , 0x00000006 
+ 00029279  0x00007b39 call  0x00007362 
+ 00029280  0x00007b3a force  0x00000038 , 0x00000036 
+ 00029281  0x00007b3b force  0x00000000 , 0x00000036 
+ 00029282  0x00007b3c call  0x000072cf 
+ 00029283  0x00007b3d arg  0x000001a8 , 0x00000005 
+ 00029284  0x00007b3e branch  0x00007375 
+ 00029285  0x00007b43 force  0x00000008 , 0x00000038 
+ 00029286  0x00007b44 force  0x00000049 , 0x0000003f 
+ 00029287  0x00007b45 branch  0x0000726c 
+ 00029288  0x00007b49 force  0x00000049 , 0x0000003f 
+ 00029289  0x00007b4a branch  0x0000726b 
+ 00029290  0x00007b4c force  0x00000001 , 0x0000003f 
+ 00029291  0x00007b4e force  0x00000000 , 0x00000038 
+ 00029292  0x00007b50 lshift8  0x00000002 , 0x0000002f 
+ 00029293  0x00007b51 ior  0x0000002f , 0x0000002f 
+ 00029294  0x00007b52 increase  0x00000001 , 0x00000038 
+ 00029295  0x00007b53 rshift8  0x00000002 , 0x0000002f 
+ 00029296  0x00007b54 rshift16  0x0000002f , 0x0000002f 
+ 00029297  0x00007b55 fetch  0x00000002 , 0x0000445e 
+ 00029298  0x00007b56 lshift16  0x0000003f , 0x0000003f 
+ 00029299  0x00007b57 ior  0x0000002f , 0x0000002f 
+ 00029300  0x00007b58 increase  0x00000001 , 0x00000038 
+ 00029301  0x00007b59 ifetchr  0x0000002f , 0x00000004 , 0x00000006 
+ 00029302  0x00007b5a increase  0x00000001 , 0x00000038 
+ 00029303  0x00007b5b ifetch  0x00000002 , 0x00000006 
+ 00029304  0x00007b5c byteswap  0x00000011 , 0x0000002f 
+ 00029305  0x00007b5d lshift16  0x0000002f , 0x0000002f 
+ 00029306  0x00007b5e ior  0x0000002f , 0x0000002f 
+ 00029307  0x00007b5f increase  0x00000001 , 0x00000038 
+ 00029308  0x00007b60 rtn 
+ 00029309  0x00007b65 add  0x00000013 , 0x00000001 , 0x00000006 
+ 00029310  0x00007b66 ifetch  0x00000001 , 0x00000006 
+ 00029311  0x00007b67 iforce  0x00000011 
+ 00029312  0x00007b68 call  0x00007268 
+ 00029313  0x00007b69 call  0x000072d1 
+ 00029314  0x00007b6b force  0x00000000 , 0x00000038 
+ 00029315  0x00007b6c ifetch  0x00000001 , 0x00000013 
+ 00029316  0x00007b6d and_into  0x00000003 , 0x0000003f 
+ 00029317  0x00007b6e lshift16  0x0000003f , 0x0000002f 
+ 00029318  0x00007b6f set1  0x00000008 , 0x0000002f 
+ 00029319  0x00007b70 call  0x0000736a 
+ 00029320  0x00007b71 call  0x000072d4 
+ 00029321  0x00007b73 copy  0x00000011 , 0x00000039 
+ 00029322  0x00007b74 add  0x00000013 , 0x00000002 , 0x00000006 
+ 00029323  0x00007b75 call  0x00007349 
+ 00029324  0x00007b77 call  0x00007353 
+ 00029325  0x00007b78 call  0x000072d4 
+ 00029326  0x00007b79 deposit  0x00000039 
+ 00029327  0x00007b7a branch  0x00007291 , 0x00000034 
+ 00029328  0x00007b7b branch  0x0000728c 
+ 00029329  0x00007b7d force  0x0000000c , 0x00000038 
+ 00029330  0x00007b7e deposit  0x0000002f 
+ 00029331  0x00007b7f store  0x00000004 , 0x00000150 
+ 00029332  0x00007b80 rtn 
+ 00029333  0x00007b83 increase  0x00000001 , 0x00000011 
+ 00029334  0x00007b84 call  0x0000726a 
+ 00029335  0x00007b85 copy  0x00000013 , 0x00000006 
+ 00029336  0x00007b86 call  0x0000735d 
+ 00029337  0x00007b87 call  0x000072d7 
+ 00029338  0x00007b88 call  0x0000737c 
+ 00029339  0x00007b89 increase  0x00000010 , 0x00000013 
+ 00029340  0x00007b8a increase  0xfffffff0 , 0x00000012 
+ 00029341  0x00007b8b branch  0x00007295 , 0x00000002 
+ 00029342  0x00007b8c rtn 
+ 00029343  0x00007b92 call  0x000072c4 
+ 00029344  0x00007b93 bpatch  0x000000ea , 0x0000401d 
+ 00029345  0x00007b94 jam  0x00000000 , 0x0000806c 
+ 00029346  0x00007b95 jam  0x00000001 , 0x0000806d 
+ 00029347  0x00007b96 fetch  0x00000001 , 0x00004169 
+ 00029348  0x00007b97 and_into  0x00000003 , 0x0000003f 
+ 00029349  0x00007b98 store  0x00000001 , 0x0000806e 
+ 00029350  0x00007b99 fetch  0x00000002 , 0x0000068f 
+ 00029351  0x00007b9a store  0x00000002 , 0x00008068 
+ 00029352  0x00007b9b setarg  0x0000416b 
+ 00029353  0x00007b9c store  0x00000002 , 0x0000806a 
+ 00029354  0x00007b9e fetchr  0x00000011 , 0x00000001 , 0x0000416a 
+ 00029355  0x00007b9f fetcht  0x00000005 , 0x00004450 
+ 00029356  0x00007ba0 call  0x00007265 
+ 00029357  0x00007ba1 jam  0x00000002 , 0x0000800a 
+ 00029358  0x00007ba2 jam  0x00000003 , 0x0000800a 
+ 00029359  0x00007ba4 fetch  0x00000001 , 0x0000416a 
+ 00029360  0x00007ba5 store  0x00000002 , 0x000080c0 
+ 00029361  0x00007ba6 increase  0x00000004 , 0x0000003f 
+ 00029362  0x00007ba7 store  0x00000001 , 0x0000416a 
+ 00029363  0x00007ba8 fetch  0x00000005 , 0x00004450 
+ 00029364  0x00007ba9 increase  0x00000001 , 0x0000003f 
+ 00029365  0x00007baa set0  0x00000027 , 0x0000003f 
+ 00029366  0x00007bab store  0x00000005 , 0x00004450 
+ 00029367  0x00007bac rtn 
+ 00029368  0x00007bb0 fetch  0x00000002 , 0x0000811a 
+ 00029369  0x00007bb1 isub  0x00000002 , 0x0000003e 
+ 00029370  0x00007bb2 rtn  0x00000005 
+ 00029371  0x00007bb3 nrtn  0x00000034 
+ 00029372  0x00007bb5 branch  0x000072b8 
+ 00029373  0x00007bb8 fetch  0x00000001 , 0x00008108 
+ 00029374  0x00007bb9 bbit0  0x00000006 , 0x0000235a 
+ 00029375  0x00007bbb setarg  0x0000416b 
+ 00029376  0x00007bbc iadd  0x00000002 , 0x00000005 
+ 00029377  0x00007bbd arg  0x0000000c , 0x00000038 
+ 00029378  0x00007bbe istorer  0x0000002f , 0x00000004 , 0x00000005 
+ 00029379  0x00007bbf branch  0x000072cd 
+ 00029380  0x00007bc2 bpatch  0x000000eb , 0x0000401d 
+ 00029381  0x00007bc3 force  0x0000000c , 0x00000038 
+ 00029382  0x00007bc4 call  0x00007370 
+ 00029383  0x00007bc5 call  0x0000736f 
+ 00029384  0x00007bc6 setarg  0x00000000 
+ 00029385  0x00007bc7 store  0x00000002 , 0x000080c0 
+ 00029386  0x00007bc8 rtn 
+ 00029387  0x00007bcb fetch  0x00000001 , 0x00008108 
+ 00029388  0x00007bcc bbit0  0x00000006 , 0x000072cb 
+ 00029389  0x00007bce jam  0x00000000 , 0x0000800a 
+ 00029390  0x00007bcf rtn 
+ 00029391  0x00007bd3 nbranch  0x000072cf , 0x00000037 
+ 00029392  0x00007bd4 rtn 
+ 00029393  0x00007bd7 force  0x00000030 , 0x00000036 
+ 00029394  0x00007bd8 force  0x00000000 , 0x00000036 
+ 00029395  0x00007bd9 branch  0x000072cf 
+ 00029396  0x00007bdc force  0x00000032 , 0x00000036 
+ 00029397  0x00007bdd force  0x00000002 , 0x00000036 
+ 00029398  0x00007bde branch  0x000072cf 
+ 00029399  0x00007be1 force  0x00000034 , 0x00000036 
+ 00029400  0x00007be2 force  0x00000004 , 0x00000036 
+ 00029401  0x00007be3 branch  0x000072cf 
+ 00029402  0x00007be7 force  0x00000001 , 0x00000036 
+ 00029403  0x00007be8 force  0x00000000 , 0x00000036 
+ 00029404  0x00007be9 rtn 
+ 00029405  0x00007bed fetch  0x00000001 , 0x00008155 
+ 00029406  0x00007bee bbit0  0x00000002 , 0x000072dd 
+ 00029407  0x00007bef rtn 
+ 00029408  0x00007bf3 store  0x00000002 , 0x000080d2 
+ 00029409  0x00007bf4 force  0x000000c0 , 0x00000036 
+ 00029410  0x00007bf5 force  0x00000080 , 0x00000036 
+ 00029411  0x00007bf6 branch  0x000072dd 
+ 00029412  0x00007bf9 force  0x00000000 , 0x00000038 
+ 00029413  0x00007bfa copy  0x00000012 , 0x00000006 
+ 00029414  0x00007bfb force  0x00000004 , 0x00000039 
+ 00029415  0x00007bfc call  0x000072f3 
+ 00029416  0x00007bfe force  0x00000180 , 0x00000036 
+ 00029417  0x00007bff force  0x00000080 , 0x00000036 
+ 00029418  0x00007c00 call  0x000072cf 
+ 00029419  0x00007c02 force  0x0000000c , 0x00000038 
+ 00029420  0x00007c03 copy  0x00000013 , 0x00000005 
+ 00029421  0x00007c04 force  0x00000004 , 0x00000039 
+ 00029422  0x00007c06 copy  0x0000002f , 0x0000003f 
+ 00029423  0x00007c07 istore  0x00000004 , 0x00000005 
+ 00029424  0x00007c08 increase  0x00000001 , 0x00000038 
+ 00029425  0x00007c09 loop  0x000072ee 
+ 00029426  0x00007c0a rtn 
+ 00029427  0x00007c0d ifetch  0x00000002 , 0x00000006 
+ 00029428  0x00007c0e ifetcht  0x00000002 , 0x00000006 
+ 00029429  0x00007c0f lshift16  0x00000002 , 0x00000002 
+ 00029430  0x00007c10 ior  0x00000002 , 0x0000002f 
+ 00029431  0x00007c11 increase  0x00000001 , 0x00000038 
+ 00029432  0x00007c12 loop  0x000072f3 
+ 00029433  0x00007c13 rtn 
+ 00029434  0x00007c17 force  0x00000008 , 0x00000038 
+ 00029435  0x00007c18 copy  0x00000011 , 0x00000006 
+ 00029436  0x00007c19 force  0x00000004 , 0x00000039 
+ 00029437  0x00007c1a call  0x000072f3 
+ 00029438  0x00007c1c force  0x00000000 , 0x00000038 
+ 00029439  0x00007c1d copy  0x00000012 , 0x00000006 
+ 00029440  0x00007c1e force  0x00000004 , 0x00000039 
+ 00029441  0x00007c1f call  0x000072f3 
+ 00029442  0x00007c20 force  0x00000182 , 0x00000036 
+ 00029443  0x00007c21 force  0x00000082 , 0x00000036 
+ 00029444  0x00007c22 call  0x000072cf 
+ 00029445  0x00007c23 branch  0x000072eb 
+ 00029446  0x00007c27 force  0x00000000 , 0x00000038 
+ 00029447  0x00007c28 fetch  0x00000004 , 0x00000158 
+ 00029448  0x00007c29 iforce  0x0000002f 
+ 00029449  0x00007c2a increase  0x00000001 , 0x00000038 
+ 00029450  0x00007c2b ifetch  0x00000004 , 0x00000006 
+ 00029451  0x00007c2c iforce  0x0000002f 
+ 00029452  0x00007c2d increase  0x00000001 , 0x00000038 
+ 00029453  0x00007c2e fetch  0x00000004 , 0x000042ab 
+ 00029454  0x00007c2f iforce  0x0000002f 
+ 00029455  0x00007c30 increase  0x00000001 , 0x00000038 
+ 00029456  0x00007c31 ifetch  0x00000004 , 0x00000006 
+ 00029457  0x00007c32 iforce  0x0000002f 
+ 00029458  0x00007c33 increase  0x00000001 , 0x00000038 
+ 00029459  0x00007c34 call  0x00007370 
+ 00029460  0x00007c35 increase  0xfffffffc , 0x00000038 
+ 00029461  0x00007c36 fetch  0x00000004 , 0x000042ff 
+ 00029462  0x00007c37 copy  0x0000003f , 0x0000002f 
+ 00029463  0x00007c38 increase  0x00000004 , 0x00000038 
+ 00029464  0x00007c39 force  0x00000038 , 0x00000036 
+ 00029465  0x00007c3a force  0x00000008 , 0x00000036 
+ 00029466  0x00007c3b branch  0x000072cf 
+ 00029467  0x00007c3f bpatch  0x000000ec , 0x0000401d 
+ 00029468  0x00007c40 fetch  0x00000006 , 0x000042db 
+ 00029469  0x00007c41 fetcht  0x00000006 , 0x00000178 
+ 00029470  0x00007c42 branch  0x00007321 , 0x00000029 
+ 00029471  0x00007c43 fetch  0x00000006 , 0x00000178 
+ 00029472  0x00007c44 fetcht  0x00000006 , 0x000042db 
+ 00029473  0x00007c46 force  0x00000008 , 0x00000038 
+ 00029474  0x00007c47 copy  0x00000002 , 0x0000002f 
+ 00029475  0x00007c48 increase  0x00000001 , 0x00000038 
+ 00029476  0x00007c49 rshift32  0x00000002 , 0x0000002f 
+ 00029477  0x00007c4a lshift16  0x0000003f , 0x0000003f 
+ 00029478  0x00007c4b ior  0x0000002f , 0x0000002f 
+ 00029479  0x00007c4c increase  0x00000001 , 0x00000038 
+ 00029480  0x00007c4d rshift32  0x0000003f , 0x0000002f 
+ 00029481  0x00007c4e increase  0x00000001 , 0x00000038 
+ 00029482  0x00007c4f force  0x00000000 , 0x0000002f 
+ 00029483  0x00007c50 force  0x00000000 , 0x0000003f 
+ 00029484  0x00007c51 fetch  0x00000001 , 0x000042cb 
+ 00029485  0x00007c52 fetcht  0x00000001 , 0x0000438c 
+ 00029486  0x00007c53 nbranch  0x00007331 , 0x00000029 
+ 00029487  0x00007c55 fetch  0x00000001 , 0x000042d2 
+ 00029488  0x00007c56 fetcht  0x00000001 , 0x000042cb 
+ 00029489  0x00007c58 store  0x00000001 , 0x000042bb 
+ 00029490  0x00007c59 storet  0x00000001 , 0x000042bc 
+ 00029491  0x00007c5a force  0x00000000 , 0x00000038 
+ 00029492  0x00007c5b arg  0x000042bb , 0x00000012 
+ 00029493  0x00007c5c force  0x00000004 , 0x00000039 
+ 00029494  0x00007c5e ifetch  0x00000004 , 0x00000011 
+ 00029495  0x00007c5f ifetcht  0x00000004 , 0x00000012 
+ 00029496  0x00007c60 ixor  0x00000002 , 0x0000002f 
+ 00029497  0x00007c61 increase  0x00000001 , 0x00000038 
+ 00029498  0x00007c62 increase  0x00000004 , 0x00000011 
+ 00029499  0x00007c63 increase  0x00000004 , 0x00000012 
+ 00029500  0x00007c64 loop  0x00007336 
+ 00029501  0x00007c65 call  0x00007370 
+ 00029502  0x00007c66 increase  0xfffffffc , 0x00000038 
+ 00029503  0x00007c67 fetch  0x00000004 , 0x000042ff 
+ 00029504  0x00007c68 copy  0x0000003f , 0x0000002f 
+ 00029505  0x00007c69 increase  0x00000004 , 0x00000038 
+ 00029506  0x00007c6a force  0x00000038 , 0x00000036 
+ 00029507  0x00007c6b force  0x0000000c , 0x00000036 
+ 00029508  0x00007c6c call  0x000072cf 
+ 00029509  0x00007c6e call  0x0000736f 
+ 00029510  0x00007c6f force  0x0000003a , 0x00000036 
+ 00029511  0x00007c70 force  0x00000008 , 0x00000036 
+ 00029512  0x00007c71 branch  0x000072cf 
+ 00029513  0x00007c74 compare  0x00000000 , 0x00000039 , 0x00000003 
+ 00029514  0x00007c75 rtn  0x00000001 
+ 00029515  0x00007c76 deposit  0x00000006 
+ 00029516  0x00007c77 iadd  0x00000039 , 0x00000005 
+ 00029517  0x00007c78 force  0x00000000 , 0x0000003f 
+ 00029518  0x00007c7a istore  0x00000001 , 0x00000005 
+ 00029519  0x00007c7b increase  0x00000001 , 0x00000039 
+ 00029520  0x00007c7c compare  0x00000000 , 0x00000039 , 0x00000003 
+ 00029521  0x00007c7d rtn  0x00000001 
+ 00029522  0x00007c7e branch  0x0000734e 
+ 00029523  0x00007c81 force  0x00000000 , 0x00000038 
+ 00029524  0x00007c83 deposit  0x00000039 
+ 00029525  0x00007c84 branch  0x00007358 , 0x00000034 
+ 00029526  0x00007c85 ifetch  0x00000004 , 0x00000006 
+ 00029527  0x00007c86 increase  0xfffffffc , 0x00000039 
+ 00029528  0x00007c88 iforce  0x0000002f 
+ 00029529  0x00007c89 increase  0x00000001 , 0x00000038 
+ 00029530  0x00007c8a compare  0x00000004 , 0x00000038 , 0x0000000f 
+ 00029531  0x00007c8b rtn  0x00000001 
+ 00029532  0x00007c8c branch  0x00007354 
+ 00029533  0x00007c8f force  0x00000008 , 0x00000038 
+ 00029534  0x00007c90 branch  0x00007362 
+ 00029535  0x00007c92 force  0x00000004 , 0x00000038 
+ 00029536  0x00007c93 branch  0x00007362 
+ 00029537  0x00007c95 force  0x00000000 , 0x00000038 
+ 00029538  0x00007c97 force  0x00000004 , 0x00000039 
+ 00029539  0x00007c99 ifetch  0x00000004 , 0x00000006 
+ 00029540  0x00007c9a iforce  0x0000002f 
+ 00029541  0x00007c9b increase  0x00000001 , 0x00000038 
+ 00029542  0x00007c9c loop  0x00007363 
+ 00029543  0x00007c9d rtn 
+ 00029544  0x00007ca0 arg  0x000001a8 , 0x00000006 
+ 00029545  0x00007ca1 branch  0x0000735f 
+ 00029546  0x00007ca4 force  0x00000004 , 0x00000039 
+ 00029547  0x00007ca5 branch  0x00007372 
+ 00029548  0x00007ca8 force  0x00000000 , 0x00000038 
+ 00029549  0x00007ca9 force  0x00000010 , 0x00000039 
+ 00029550  0x00007caa branch  0x00007371 
+ 00029551  0x00007cad force  0x00000000 , 0x00000038 
+ 00029552  0x00007caf force  0x00000004 , 0x00000039 
+ 00029553  0x00007cb1 force  0x00000000 , 0x0000002f 
+ 00029554  0x00007cb3 increase  0x00000001 , 0x00000038 
+ 00029555  0x00007cb4 loop  0x00007371 
+ 00029556  0x00007cb5 rtn 
+ 00029557  0x00007cb8 force  0x0000000c , 0x00000038 
+ 00029558  0x00007cb9 force  0x00000004 , 0x00000039 
+ 00029559  0x00007cbb deposit  0x0000002f 
+ 00029560  0x00007cbc istore  0x00000004 , 0x00000005 
+ 00029561  0x00007cbd increase  0x00000001 , 0x00000038 
+ 00029562  0x00007cbe loop  0x00007377 
+ 00029563  0x00007cbf rtn 
+ 00029564  0x00007cc2 force  0x0000000c , 0x00000038 
+ 00029565  0x00007cc3 copy  0x00000013 , 0x00000005 
+ 00029566  0x00007cc4 add  0x00000012 , 0x00000001 , 0x00000039 
+ 00029567  0x00007cc5 sub  0x00000039 , 0x0000000f , 0x0000003e 
+ 00029568  0x00007cc6 branch  0x00007382 , 0x00000002 
+ 00029569  0x00007cc7 force  0x00000010 , 0x00000039 
+ 00029570  0x00007cc9 deposit  0x0000002f 
+ 00029571  0x00007cca sub  0x00000039 , 0x00000003 , 0x0000003e 
+ 00029572  0x00007ccb branch  0x0000738a , 0x00000002 
+ 00029573  0x00007ccc istore  0x00000004 , 0x00000005 
+ 00029574  0x00007ccd increase  0xfffffffc , 0x00000039 
+ 00029575  0x00007cce rtn  0x00000005 
+ 00029576  0x00007ccf increase  0x00000001 , 0x00000038 
+ 00029577  0x00007cd0 branch  0x00007382 
+ 00029578  0x00007cd2 istore  0x00000001 , 0x00000005 
+ 00029579  0x00007cd3 rshift8  0x0000003f , 0x0000003f 
+ 00029580  0x00007cd4 loop  0x0000738a 
+ 00029581  0x00007cd5 rtn 
+ 00029582  0x00007cd9 force  0x0000000c , 0x00000038 
+ 00029583  0x00007cda force  0x00000004 , 0x00000039 
+ 00029584  0x00007cdc ifetch  0x00000004 , 0x00000006 
+ 00029585  0x00007cdd isub  0x0000002f , 0x0000003e 
+ 00029586  0x00007cde nrtn  0x00000005 
+ 00029587  0x00007cdf increase  0x00000001 , 0x00000038 
+ 00029588  0x00007ce0 loop  0x00007390 
+ 00029589  0x00007ce1 branch  0x00007db8 
+ 00029590  0x00007ce4 fetch  0x00000001 , 0x00008050 
+ 00029591  0x00007ce5 set0  0x00000000 , 0x0000003f 
+ 00029592  0x00007ce6 store  0x00000001 , 0x00008050 
+ 00029593  0x00007ce7 rtn 
+ 00029594  0x00007cea fetch  0x00000001 , 0x00008050 
+ 00029595  0x00007ceb set1  0x00000000 , 0x0000003f 
+ 00029596  0x00007cec store  0x00000001 , 0x00008050 
+ 00029597  0x00007ced rtn 
+ 00029598  0x00007cf6 arg  0x000004d1 , 0x00000005 
+ 00029599  0x00007cf7 setsect  0x00000000 , 0x0003ffff 
+ 00029600  0x00007cf8 setsect  0x00000001 , 0x0003ffff 
+ 00029601  0x00007cf9 setsect  0x00000002 , 0x0003ffff 
+ 00029602  0x00007cfa setsect  0x00000003 , 0x0003fbff 
+ 00029603  0x00007cfb istore  0x00000009 , 0x00000005 
+ 00029604  0x00007cfc setsect  0x00000000 , 0x0003ffff 
+ 00029605  0x00007cfd setsect  0x00000001 , 0x0003ffff 
+ 00029606  0x00007cfe setsect  0x00000002 , 0x0003ffff 
+ 00029607  0x00007cff setsect  0x00000003 , 0x0003ffff 
+ 00029608  0x00007d00 istore  0x00000009 , 0x00000005 
+ 00029609  0x00007d01 setsect  0x00000000 , 0x0003ffff 
+ 00029610  0x00007d02 setsect  0x00000001 , 0x0003ffff 
+ 00029611  0x00007d03 setsect  0x00000002 , 0x0003cfff 
+ 00029612  0x00007d04 setsect  0x00000003 , 0x0003ffff 
+ 00029613  0x00007d05 istore  0x00000009 , 0x00000005 
+ 00029614  0x00007d06 setsect  0x00000000 , 0x0003ffff 
+ 00029615  0x00007d07 setsect  0x00000001 , 0x0003ffff 
+ 00029616  0x00007d08 setsect  0x00000002 , 0x0003ffef 
+ 00029617  0x00007d09 setsect  0x00000003 , 0x0003ffff 
+ 00029618  0x00007d0a istore  0x00000009 , 0x00000005 
+ 00029619  0x00007d0b setsect  0x00000000 , 0x0003ffff 
+ 00029620  0x00007d0c setsect  0x00000001 , 0x0003ffff 
+ 00029621  0x00007d0d setsect  0x00000002 , 0x0003ffff 
+ 00029622  0x00007d0e setsect  0x00000003 , 0x0003ffff 
+ 00029623  0x00007d0f istore  0x00000009 , 0x00000005 
+ 00029624  0x00007d10 setsect  0x00000000 , 0x0003ffff 
+ 00029625  0x00007d11 setsect  0x00000001 , 0x00026c7f 
+ 00029626  0x00007d12 setsect  0x00000002 , 0x0000146b 
+ 00029627  0x00007d13 setsect  0x00000003 , 0x00037bb3 
+ 00029628  0x00007d14 istore  0x00000009 , 0x00000005 
+ 00029629  0x00007d15 setsect  0x00000000 , 0x0001feb8 
+ 00029630  0x00007d16 setsect  0x00000001 , 0x00010c12 
+ 00029631  0x00007d17 setsect  0x00000002 , 0x0002b722 
+ 00029632  0x00007d18 setsect  0x00000003 , 0x00029fa6 
+ 00029633  0x00007d19 istore  0x00000009 , 0x00000005 
+ 00029634  0x00007d1a setsect  0x00000000 , 0x0000e70f 
+ 00029635  0x00007d1b setsect  0x00000001 , 0x00016720 
+ 00029636  0x00007d1c setsect  0x00000002 , 0x0000519e 
+ 00029637  0x00007d1d setsect  0x00000003 , 0x00019084 
+ 00029638  0x00007d1e istore  0x00000009 , 0x00000005 
+ 00029639  0x00007d1f setsect  0x00000000 , 0x00031012 
+ 00029640  0x00007d20 setsect  0x00000001 , 0x000360bf 
+ 00029641  0x00007d21 setsect  0x00000002 , 0x0003f0af 
+ 00029642  0x00007d22 setsect  0x00000003 , 0x000003d3 
+ 00029643  0x00007d23 istore  0x00000009 , 0x00000005 
+ 00029644  0x00007d24 setsect  0x00000000 , 0x0003a188 
+ 00029645  0x00007d25 setsect  0x00000001 , 0x00003ad0 
+ 00029646  0x00007d26 setsect  0x00000002 , 0x0003cbf2 
+ 00029647  0x00007d27 setsect  0x00000003 , 0x000243d9 
+ 00029648  0x00007d28 istore  0x00000009 , 0x00000005 
+ 00029649  0x00007d29 setsect  0x00000000 , 0x0002b030 
+ 00029650  0x00007d2a setsect  0x00000001 , 0x00036a03 
+ 00029651  0x00007d2b setsect  0x00000002 , 0x00011188 
+ 00029652  0x00007d2c setsect  0x00000003 , 0x0001e520 
+ 00029653  0x00007d2d istore  0x00000009 , 0x00000005 
+ 00029654  0x00007d2e setsect  0x00000000 , 0x0003a11e 
+ 00029655  0x00007d2f setsect  0x00000001 , 0x0000fe5d 
+ 00029656  0x00007d30 setsect  0x00000002 , 0x0000dd57 
+ 00029657  0x00007d31 setsect  0x00000003 , 0x0001ac93 
+ 00029658  0x00007d32 istore  0x00000009 , 0x00000005 
+ 00029659  0x00007d33 setsect  0x00000000 , 0x000011ed 
+ 00029660  0x00007d34 setsect  0x00000001 , 0x000218c4 
+ 00029661  0x00007d35 setsect  0x00000002 , 0x00008da7 
+ 00029662  0x00007d36 setsect  0x00000003 , 0x000257ff 
+ 00029663  0x00007d37 istore  0x00000009 , 0x00000005 
+ 00029664  0x00007d38 setsect  0x00000000 , 0x0003192b 
+ 00029665  0x00007d39 setsect  0x00000001 , 0x00034641 
+ 00029666  0x00007d3a setsect  0x00000002 , 0x0001be0c 
+ 00029667  0x00007d3b setsect  0x00000003 , 0x000366ad 
+ 00029668  0x00007d3c istore  0x00000009 , 0x00000005 
+ 00029669  0x00007d3d setsect  0x00000000 , 0x00001f83 
+ 00029670  0x00007d3e setsect  0x00000001 , 0x00015a23 
+ 00029671  0x00007d3f setsect  0x00000002 , 0x0003f9b0 
+ 00029672  0x00007d40 setsect  0x00000003 , 0x00003949 
+ 00029673  0x00007d41 istore  0x00000009 , 0x00000005 
+ 00029674  0x00007d42 setsect  0x00000000 , 0x00013a51 
+ 00029675  0x00007d43 setsect  0x00000001 , 0x000153fd 
+ 00029676  0x00007d44 setsect  0x00000002 , 0x0003372a 
+ 00029677  0x00007d45 setsect  0x00000003 , 0x0000f1bb 
+ 00029678  0x00007d46 istore  0x00000009 , 0x00000005 
+ 00029679  0x00007d47 setsect  0x00000000 , 0x0003ae85 
+ 00029680  0x00007d48 setsect  0x00000001 , 0x0001eed9 
+ 00029681  0x00007d49 setsect  0x00000002 , 0x00009e66 
+ 00029682  0x00007d4a setsect  0x00000003 , 0x000001a8 
+ 00029683  0x00007d4b istore  0x00000008 , 0x00000005 
+ 00029684  0x00007d4c rtn 
+ 00029685  0x00007d55 arg  0x00000569 , 0x00000005 
+ 00029686  0x00007d56 setsect  0x00000000 , 0x0003ffff 
+ 00029687  0x00007d57 setsect  0x00000001 , 0x0003ffff 
+ 00029688  0x00007d58 setsect  0x00000002 , 0x0003ffff 
+ 00029689  0x00007d59 setsect  0x00000003 , 0x0003ffff 
+ 00029690  0x00007d5a istore  0x00000009 , 0x00000005 
+ 00029691  0x00007d5b setsect  0x00000000 , 0x0003ffff 
+ 00029692  0x00007d5c setsect  0x00000001 , 0x0000003f 
+ 00029693  0x00007d5d setsect  0x00000002 , 0x00000000 
+ 00029694  0x00007d5e setsect  0x00000003 , 0x00000000 
+ 00029695  0x00007d5f istore  0x00000009 , 0x00000005 
+ 00029696  0x00007d60 setsect  0x00000000 , 0x00000000 
+ 00029697  0x00007d61 setsect  0x00000001 , 0x00000000 
+ 00029698  0x00007d62 setsect  0x00000002 , 0x00001000 
+ 00029699  0x00007d63 setsect  0x00000003 , 0x00000000 
+ 00029700  0x00007d64 istore  0x00000009 , 0x00000005 
+ 00029701  0x00007d65 setsect  0x00000000 , 0x0003ff00 
+ 00029702  0x00007d66 setsect  0x00000001 , 0x0003ffff 
+ 00029703  0x00007d67 setsect  0x00000002 , 0x0003ffcf 
+ 00029704  0x00007d68 setsect  0x00000003 , 0x0003ffff 
+ 00029705  0x00007d69 istore  0x00000009 , 0x00000005 
+ 00029706  0x00007d6a setsect  0x00000000 , 0x0003ffff 
+ 00029707  0x00007d6b setsect  0x00000001 , 0x0003ffff 
+ 00029708  0x00007d6c setsect  0x00000002 , 0x0003ffff 
+ 00029709  0x00007d6d setsect  0x00000003 , 0x000003ff 
+ 00029710  0x00007d6e istore  0x00000009 , 0x00000005 
+ 00029711  0x00007d6f setsect  0x00000000 , 0x00000000 
+ 00029712  0x00007d70 setsect  0x00000001 , 0x00000000 
+ 00029713  0x00007d71 setsect  0x00000002 , 0x00000000 
+ 00029714  0x00007d72 setsect  0x00000003 , 0x00000000 
+ 00029715  0x00007d73 istore  0x00000009 , 0x00000005 
+ 00029716  0x00007d74 setsect  0x00000000 , 0x00010000 
+ 00029717  0x00007d75 setsect  0x00000001 , 0x00000000 
+ 00029718  0x00007d76 setsect  0x00000002 , 0x0003f000 
+ 00029719  0x00007d77 setsect  0x00000003 , 0x0003ffff 
+ 00029720  0x00007d78 istore  0x00000009 , 0x00000005 
+ 00029721  0x00007d79 setsect  0x00000000 , 0x000296ff 
+ 00029722  0x00007d7a setsect  0x00000001 , 0x00022630 
+ 00029723  0x00007d7b setsect  0x00000002 , 0x0003945d 
+ 00029724  0x00007d7c setsect  0x00000003 , 0x0003d284 
+ 00029725  0x00007d7d istore  0x00000009 , 0x00000005 
+ 00029726  0x00007d7e setsect  0x00000000 , 0x000333a0 
+ 00029727  0x00007d7f setsect  0x00000001 , 0x00004b7a 
+ 00029728  0x00007d80 setsect  0x00000002 , 0x000037d8 
+ 00029729  0x00007d81 setsect  0x00000003 , 0x0003c9dc 
+ 00029730  0x00007d82 istore  0x00000009 , 0x00000005 
+ 00029731  0x00007d83 setsect  0x00000000 , 0x0003a440 
+ 00029732  0x00007d84 setsect  0x00000001 , 0x0001b958 
+ 00029733  0x00007d85 setsect  0x00000002 , 0x00038bce 
+ 00029734  0x00007d86 setsect  0x00000003 , 0x0001091f 
+ 00029735  0x00007d87 istore  0x00000009 , 0x00000005 
+ 00029736  0x00007d88 setsect  0x00000000 , 0x0002e12c 
+ 00029737  0x00007d89 setsect  0x00000001 , 0x0001f47c 
+ 00029738  0x00007d8a setsect  0x00000002 , 0x000356b1 
+ 00029739  0x00007d8b setsect  0x00000003 , 0x0002fd47 
+ 00029740  0x00007d8c istore  0x00000009 , 0x00000005 
+ 00029741  0x00007d8d setsect  0x00000000 , 0x00006837 
+ 00029742  0x00007d8e setsect  0x00000001 , 0x0002ed90 
+ 00029743  0x00007d8f setsect  0x00000002 , 0x0001ecec 
+ 00029744  0x00007d90 setsect  0x00000003 , 0x0001acc5 
+ 00029745  0x00007d91 istore  0x00000009 , 0x00000005 
+ 00029746  0x00007d92 setsect  0x00000000 , 0x00023357 
+ 00029747  0x00007d93 setsect  0x00000001 , 0x00018af3 
+ 00029748  0x00007d94 setsect  0x00000002 , 0x0000f9e1 
+ 00029749  0x00007d95 setsect  0x00000003 , 0x000129f0 
+ 00029750  0x00007d96 istore  0x00000009 , 0x00000005 
+ 00029751  0x00007d97 setsect  0x00000000 , 0x0002e7eb 
+ 00029752  0x00007d98 setsect  0x00000001 , 0x0003e6e3 
+ 00029753  0x00007d99 setsect  0x00000002 , 0x0003e1a7 
+ 00029754  0x00007d9a setsect  0x00000003 , 0x00010b8b 
+ 00029755  0x00007d9b istore  0x00000009 , 0x00000005 
+ 00029756  0x00007d9c setsect  0x00000000 , 0x00024fe3 
+ 00029757  0x00007d9d setsect  0x00000001 , 0x000020ef 
+ 00029758  0x00007d9e setsect  0x00000002 , 0x0001b5a6 
+ 00029759  0x00007d9f setsect  0x00000003 , 0x0000dc2f 
+ 00029760  0x00007da0 istore  0x00000009 , 0x00000005 
+ 00029761  0x00007da1 setsect  0x00000000 , 0x00013860 
+ 00029762  0x00007da2 setsect  0x00000001 , 0x0002bd69 
+ 00029763  0x00007da3 setsect  0x00000002 , 0x0000391a 
+ 00029764  0x00007da4 setsect  0x00000003 , 0x0001b222 
+ 00029765  0x00007da5 istore  0x00000009 , 0x00000005 
+ 00029766  0x00007da6 rtn 
+ 00029767  0x00007daf branch  0x000074fc 
+ 00029768  0x00007db2 bpatch  0x000000ed , 0x0000401d 
+ 00029769  0x00007db7 fetch  0x00000001 , 0x0000446c 
+ 00029770  0x00007db8 rtn  0x00000034 
+ 00029771  0x00007db9 fetch  0x00000001 , 0x0000446e 
+ 00029772  0x00007dba rtneq  0x00000003 
+ 00029773  0x00007dbd fetch  0x00000001 , 0x0000446d 
+ 00029774  0x00007dbe beq  0x00000000 , 0x000074fc 
+ 00029775  0x00007dbf rtn 
+ 00029776  0x00007dc1 jam  0x00000000 , 0x0000446d 
+ 00029777  0x00007dc2 rtn 
+ 00029778  0x00007dc8 bpatch  0x000000ee , 0x0000401d 
+ 00029779  0x00007dc9 setarg  0x000005fe 
+ 00029780  0x00007dca arg  0x000005f9 , 0x00000005 
+ 00029781  0x00007dcb isub  0x00000005 , 0x00000039 
+ 00029782  0x00007dcc call  0x00007ca1 
+ 00029783  0x00007dcd setarg  0x000044d1 
+ 00029784  0x00007dce arg  0x000044cf , 0x00000005 
+ 00029785  0x00007dcf isub  0x00000005 , 0x00000039 
+ 00029786  0x00007dd0 branch  0x00007ca1 
+ 00029787  0x00007dd5 call  0x00007476 
+ 00029788  0x00007dd6 arg  0x0000061e , 0x00000011 
+ 00029789  0x00007dd7 arg  0x000004b1 , 0x00000005 
+ 00029790  0x00007dd8 call  0x0000771c 
+ 00029791  0x00007dd9 arg  0x000005fe , 0x00000011 
+ 00029792  0x00007dda arg  0x00000471 , 0x00000005 
+ 00029793  0x00007ddb call  0x0000771c 
+ 00029794  0x00007ddc arg  0x00000471 , 0x00000011 
+ 00029795  0x00007ddd arg  0x000005fe , 0x00000012 
+ 00029796  0x00007dde arg  0x00000471 , 0x00000005 
+ 00029797  0x00007ddf call  0x00007684 
+ 00029798  0x00007de0 arg  0x00000589 , 0x00000011 
+ 00029799  0x00007de1 arg  0x000005fe , 0x00000012 
+ 00029800  0x00007de2 arg  0x00000491 , 0x00000005 
+ 00029801  0x00007de3 call  0x00007684 
+ 00029802  0x00007de4 arg  0x00000491 , 0x00000011 
+ 00029803  0x00007de5 arg  0x00000471 , 0x00000012 
+ 00029804  0x00007de6 arg  0x00000471 , 0x00000005 
+ 00029805  0x00007de7 call  0x00007720 
+ 00029806  0x00007de8 arg  0x00000451 , 0x00000011 
+ 00029807  0x00007de9 arg  0x00000471 , 0x00000012 
+ 00029808  0x00007dea arg  0x00000451 , 0x00000005 
+ 00029809  0x00007deb call  0x00007720 
+ 00029810  0x00007dec arg  0x00000020 , 0x00000039 
+ 00029811  0x00007ded arg  0x000004b1 , 0x00000011 
+ 00029812  0x00007dee arg  0x00000451 , 0x00000012 
+ 00029813  0x00007def branch  0x00007d64 
+ 00029814  0x00007df2 arg  0x000005c9 , 0x00000011 
+ 00029815  0x00007df3 arg  0x00000451 , 0x00000005 
+ 00029816  0x00007df4 call  0x0000771c 
+ 00029817  0x00007df5 arg  0x000005a9 , 0x00000011 
+ 00029818  0x00007df6 arg  0x00000471 , 0x00000005 
+ 00029819  0x00007df7 call  0x0000771c 
+ 00029820  0x00007df8 arg  0x00000471 , 0x00000011 
+ 00029821  0x00007df9 arg  0x000005a9 , 0x00000012 
+ 00029822  0x00007dfa arg  0x00000471 , 0x00000005 
+ 00029823  0x00007dfb call  0x00007684 
+ 00029824  0x00007dfc arg  0x00000589 , 0x00000011 
+ 00029825  0x00007dfd arg  0x000005a9 , 0x00000012 
+ 00029826  0x00007dfe arg  0x00000491 , 0x00000005 
+ 00029827  0x00007dff call  0x00007684 
+ 00029828  0x00007e00 arg  0x00000491 , 0x00000011 
+ 00029829  0x00007e01 arg  0x00000471 , 0x00000012 
+ 00029830  0x00007e02 arg  0x00000471 , 0x00000005 
+ 00029831  0x00007e03 call  0x00007720 
+ 00029832  0x00007e04 arg  0x00000451 , 0x00000011 
+ 00029833  0x00007e05 arg  0x00000471 , 0x00000012 
+ 00029834  0x00007e06 arg  0x00000451 , 0x00000005 
+ 00029835  0x00007e07 branch  0x00007739 
+ 00029836  0x00007e0d increase  0xffffffff , 0x00000007 
+ 00029837  0x00007e0e nrtn  0x00000002 
+ 00029838  0x00007e0f random  0x0000003f 
+ 00029839  0x00007e10 istore  0x00000002 , 0x00000005 
+ 00029840  0x00007e11 branch  0x0000748c 
+ 00029841  0x00007e13 increase  0xffffffff , 0x00000007 
+ 00029842  0x00007e14 nbranch  0x0000749c , 0x00000002 
+ 00029843  0x00007e15 ifetch  0x00000004 , 0x00000011 
+ 00029844  0x00007e16 copy  0x0000003f , 0x00000002 
+ 00029845  0x00007e17 ifetch  0x00000004 , 0x00000012 
+ 00029846  0x00007e18 iflip  0x00000002 , 0x0000003f 
+ 00029847  0x00007e19 nbranch  0x0000749b , 0x00000005 
+ 00029848  0x00007e1a increase  0x00000004 , 0x00000011 
+ 00029849  0x00007e1b increase  0x00000004 , 0x00000012 
+ 00029850  0x00007e1c branch  0x00007491 
+ 00029851  0x00007e1e branch  0x00007dc4 
+ 00029852  0x00007e21 branch  0x00007dc6 
+ 00029853  0x00007e27 and  0x0000003f , 0x00000007 , 0x00000007 
+ 00029854  0x00007e28 rshift3  0x0000003f , 0x0000003f 
+ 00029855  0x00007e29 iadd  0x00000006 , 0x00000006 
+ 00029856  0x00007e2a ifetch  0x00000001 , 0x00000006 
+ 00029857  0x00007e2b qisolate0  0x0000003f 
+ 00029858  0x00007e2c rtn 
+ 00029859  0x00007e30 ifetch  0x00000008 , 0x00000006 
+ 00029860  0x00007e31 nrtn  0x00000034 
+ 00029861  0x00007e32 ifetch  0x00000008 , 0x00000006 
+ 00029862  0x00007e33 nrtn  0x00000034 
+ 00029863  0x00007e34 ifetch  0x00000008 , 0x00000006 
+ 00029864  0x00007e35 rtn 
+ 00029865  0x00007e3b ifetch  0x00000004 , 0x00000011 
+ 00029866  0x00007e3c iforce  0x00000002 
+ 00029867  0x00007e3d ifetch  0x00000004 , 0x00000012 
+ 00029868  0x00007e3e isub  0x00000002 , 0x0000003e 
+ 00029869  0x00007e3f nrtn  0x00000005 
+ 00029870  0x00007e40 increase  0x00000004 , 0x00000011 
+ 00029871  0x00007e41 increase  0x00000004 , 0x00000012 
+ 00029872  0x00007e42 loop  0x000074a9 
+ 00029873  0x00007e43 rtn 
+ 00029874  0x00007e46 force  0x00000006 , 0x00000039 
+ 00029875  0x00007e47 increase  0x00000014 , 0x00000011 
+ 00029876  0x00007e48 increase  0x00000014 , 0x00000012 
+ 00029877  0x00007e4a ifetch  0x00000004 , 0x00000012 
+ 00029878  0x00007e4b iforce  0x00000002 
+ 00029879  0x00007e4c ifetch  0x00000004 , 0x00000011 
+ 00029880  0x00007e4d isub  0x00000002 , 0x0000003f 
+ 00029881  0x00007e4e nrtn  0x00000002 
+ 00029882  0x00007e4f nrtn  0x00000034 
+ 00029883  0x00007e50 increase  0xfffffffc , 0x00000011 
+ 00029884  0x00007e51 increase  0xfffffffc , 0x00000012 
+ 00029885  0x00007e52 loop  0x000074b5 
+ 00029886  0x00007e53 rtn 
+ 00029887  0x00007e55 force  0x00000006 , 0x00000039 
+ 00029888  0x00007e56 force  0x00000000 , 0x00000013 
+ 00029889  0x00007e58 ifetch  0x00000004 , 0x00000011 
+ 00029890  0x00007e59 iforce  0x00000002 
+ 00029891  0x00007e5a ifetch  0x00000004 , 0x00000012 
+ 00029892  0x00007e5b iadd  0x00000002 , 0x0000003f 
+ 00029893  0x00007e5c iadd  0x00000013 , 0x0000003f 
+ 00029894  0x00007e5d istore  0x00000004 , 0x00000005 
+ 00029895  0x00007e5e isolate1  0x00000020 , 0x0000003f 
+ 00029896  0x00007e5f setflag  0x00000001 , 0x00000000 , 0x00000013 
+ 00029897  0x00007e60 increase  0x00000004 , 0x00000011 
+ 00029898  0x00007e61 increase  0x00000004 , 0x00000012 
+ 00029899  0x00007e62 loop  0x000074c1 
+ 00029900  0x00007e63 rtn 
+ 00029901  0x00007e66 force  0x00000006 , 0x00000039 
+ 00029902  0x00007e67 force  0x00000000 , 0x00000013 
+ 00029903  0x00007e69 ifetch  0x00000004 , 0x00000012 
+ 00029904  0x00007e6a iforce  0x00000002 
+ 00029905  0x00007e6b ifetch  0x00000004 , 0x00000011 
+ 00029906  0x00007e6c isub  0x00000002 , 0x0000003f 
+ 00029907  0x00007e6d isub  0x00000013 , 0x0000003f 
+ 00029908  0x00007e6e istore  0x00000004 , 0x00000005 
+ 00029909  0x00007e6f isolate1  0x00000020 , 0x0000003f 
+ 00029910  0x00007e70 setflag  0x00000001 , 0x00000000 , 0x00000013 
+ 00029911  0x00007e71 increase  0x00000004 , 0x00000011 
+ 00029912  0x00007e72 increase  0x00000004 , 0x00000012 
+ 00029913  0x00007e73 loop  0x000074cf 
+ 00029914  0x00007e74 rtn 
+ 00029915  0x00007e77 force  0x00000006 , 0x00000039 
+ 00029916  0x00007e78 increase  0x00000014 , 0x00000011 
+ 00029917  0x00007e7a force  0x00000000 , 0x00000013 
+ 00029918  0x00007e7c ifetch  0x00000004 , 0x00000011 
+ 00029919  0x00007e7d isolate1  0x00000000 , 0x0000003f 
+ 00029920  0x00007e7e setflag  0x00000001 , 0x00000001 , 0x00000013 
+ 00029921  0x00007e7f rshift  0x0000003f , 0x0000003f 
+ 00029922  0x00007e80 isolate1  0x00000000 , 0x00000013 
+ 00029923  0x00007e81 setflag  0x00000001 , 0x0000001f , 0x0000003f 
+ 00029924  0x00007e82 istore  0x00000004 , 0x00000011 
+ 00029925  0x00007e83 increase  0xfffffffc , 0x00000011 
+ 00029926  0x00007e84 rshift  0x00000013 , 0x00000013 
+ 00029927  0x00007e85 loop  0x000074de 
+ 00029928  0x00007e86 rtn 
+ 00029929  0x00007e88 force  0x00000006 , 0x00000039 
+ 00029930  0x00007e89 force  0x00000000 , 0x00000013 
+ 00029931  0x00007e8b ifetch  0x00000004 , 0x00000011 
+ 00029932  0x00007e8c isolate1  0x0000001f , 0x0000003f 
+ 00029933  0x00007e8d setflag  0x00000001 , 0x00000001 , 0x00000013 
+ 00029934  0x00007e8e lshift  0x0000003f , 0x0000003f 
+ 00029935  0x00007e8f isolate1  0x00000000 , 0x00000013 
+ 00029936  0x00007e90 setflag  0x00000001 , 0x00000000 , 0x0000003f 
+ 00029937  0x00007e91 istore  0x00000004 , 0x00000011 
+ 00029938  0x00007e92 increase  0x00000004 , 0x00000011 
+ 00029939  0x00007e93 rshift  0x00000013 , 0x00000013 
+ 00029940  0x00007e94 loop  0x000074eb 
+ 00029941  0x00007e95 rtn 
+ 00029942  0x00007e99 force  0x00000006 , 0x00000039 
+ 00029943  0x00007e9b ifetch  0x00000004 , 0x00000006 
+ 00029944  0x00007e9c iforce  0x0000002f 
+ 00029945  0x00007e9d increase  0x00000001 , 0x00000038 
+ 00029946  0x00007e9e loop  0x000074f7 
+ 00029947  0x00007e9f rtn 
+ 00029948  0x00007ea4 bpatch  0x000000ef , 0x0000401d 
+ 00029949  0x00007ea5 fetch  0x00000001 , 0x0000446c 
+ 00029950  0x00007ea6 nbranch  0x0000751d , 0x00000034 
+ 00029951  0x00007ea9 jam  0x00000000 , 0x0000446d 
+ 00029952  0x00007eaa jam  0x00000000 , 0x0000446e 
+ 00029953  0x00007eab rtn 
+ 00029954  0x00007eb0 fetch  0x00000001 , 0x0000446c 
+ 00029955  0x00007eb1 rtn  0x00000034 
+ 00029956  0x00007eb2 fetch  0x00000001 , 0x0000446e 
+ 00029957  0x00007eb3 rtneq  0x00000003 
+ 00029958  0x00007eb4 call  0x00007552 
+ 00029959  0x00007eb5 branch  0x00007502 
+ 00029960  0x00007eba arg  0x0000446f , 0x00000005 
+ 00029961  0x00007ebb setsect  0x00000000 , 0x00001abd 
+ 00029962  0x00007ebc setsect  0x00000001 , 0x0001b34f 
+ 00029963  0x00007ebd setsect  0x00000002 , 0x00019b8a 
+ 00029964  0x00007ebe setsect  0x00000003 , 0x00026562 
+ 00029965  0x00007ebf istore  0x00000009 , 0x00000005 
+ 00029966  0x00007ec0 setsect  0x00000000 , 0x000340b7 
+ 00029967  0x00007ec1 setsect  0x00000001 , 0x00001efa 
+ 00029968  0x00007ec2 setsect  0x00000002 , 0x0000aff6 
+ 00029969  0x00007ec3 setsect  0x00000003 , 0x0000fd41 
+ 00029970  0x00007ec4 istore  0x00000009 , 0x00000005 
+ 00029971  0x00007ec5 setsect  0x00000000 , 0x0003d210 
+ 00029972  0x00007ec6 setsect  0x00000001 , 0x00026cf8 
+ 00029973  0x00007ec7 setsect  0x00000002 , 0x0003874c 
+ 00029974  0x00007ec8 setsect  0x00000003 , 0x0003157c 
+ 00029975  0x00007ec9 istore  0x00000009 , 0x00000005 
+ 00029976  0x00007eca setsect  0x00000000 , 0x0002d4a3 
+ 00029977  0x00007ecb setsect  0x00000001 , 0x0003d27d 
+ 00029978  0x00007ecc setsect  0x00000002 , 0x00000003 
+ 00029979  0x00007ecd istore  0x00000005 , 0x00000005 
+ 00029980  0x00007ece rtn 
+ 00029981  0x00007ed2 fetch  0x00000001 , 0x0000446e 
+ 00029982  0x00007ed3 rtnne  0x00000000 
+ 00029983  0x00007ed4 fetch  0x00000001 , 0x0000446d 
+ 00029984  0x00007ed5 rtnne  0x00000000 
+ 00029985  0x00007ed6 call  0x000073f5 
+ 00029986  0x00007ed7 arg  0x0000446f , 0x00000005 
+ 00029987  0x00007ed8 force  0x0000000f , 0x00000007 
+ 00029988  0x00007ed9 call  0x0000748c 
+ 00029989  0x00007eda random  0x0000003f 
+ 00029990  0x00007edb rshift  0x0000003f , 0x0000003f 
+ 00029991  0x00007edc istore  0x00000002 , 0x00000005 
+ 00029992  0x00007ede fetch  0x00000001 , 0x0000446b 
+ 00029993  0x00007edf ncall  0x00007508 , 0x00000034 
+ 00029994  0x00007ee1 arg  0x000003b1 , 0x00000005 
+ 00029995  0x00007ee2 arg  0x0000446f , 0x00000006 
+ 00029996  0x00007ee3 call  0x00007c8d 
+ 00029997  0x00007ee5 arg  0x00000291 , 0x00000005 
+ 00029998  0x00007ee6 arg  0x000005a9 , 0x00000006 
+ 00029999  0x00007ee7 call  0x00007c81 
+ 00030000  0x00007ee9 arg  0x000002d1 , 0x00000005 
+ 00030001  0x00007eea call  0x00007c9d 
+ 00030002  0x00007eeb jam  0x00000001 , 0x000002d1 
+ 00030003  0x00007eed call  0x0000756a 
+ 00030004  0x00007eee jam  0x00000003 , 0x0000446d 
+ 00030005  0x00007eef rtn 
+ 00030006  0x00007ef2 arg  0x0000448f , 0x00000005 
+ 00030007  0x00007ef3 arg  0x000002f1 , 0x00000006 
+ 00030008  0x00007ef4 call  0x00007c81 
+ 00030009  0x00007ef5 jam  0x00000003 , 0x0000446e 
+ 00030010  0x00007ef6 jam  0x00000000 , 0x0000446d 
+ 00030011  0x00007ef7 rtn 
+ 00030012  0x00007efc fetch  0x00000001 , 0x000005f9 
+ 00030013  0x00007efd rtnne  0x00000000 
+ 00030014  0x00007efe fetch  0x00000001 , 0x0000446d 
+ 00030015  0x00007eff rtnne  0x00000000 
+ 00030016  0x00007f01 arg  0x000003b1 , 0x00000005 
+ 00030017  0x00007f02 arg  0x0000446f , 0x00000006 
+ 00030018  0x00007f03 call  0x00007c8d 
+ 00030019  0x00007f05 arg  0x00000291 , 0x00000005 
+ 00030020  0x00007f06 arg  0x000005fe , 0x00000006 
+ 00030021  0x00007f07 call  0x00007c81 
+ 00030022  0x00007f09 arg  0x000002d1 , 0x00000005 
+ 00030023  0x00007f0a call  0x00007c9d 
+ 00030024  0x00007f0b jam  0x00000001 , 0x000002d1 
+ 00030025  0x00007f0d call  0x0000756a 
+ 00030026  0x00007f0e jam  0x00000004 , 0x0000446d 
+ 00030027  0x00007f0f rtn 
+ 00030028  0x00007f14 arg  0x0000063e , 0x00000005 
+ 00030029  0x00007f15 arg  0x000002f1 , 0x00000006 
+ 00030030  0x00007f16 call  0x00007c8d 
+ 00030031  0x00007f17 jam  0x00000003 , 0x000005f9 
+ 00030032  0x00007f18 jam  0x00000000 , 0x0000446d 
+ 00030033  0x00007f19 rtn 
+ 00030034  0x00007f1e fetch  0x00000001 , 0x0000446c 
+ 00030035  0x00007f1f rtn  0x00000034 
+ 00030036  0x00007f20 fetch  0x00000001 , 0x0000446d 
+ 00030037  0x00007f21 rtn  0x00000034 
+ 00030038  0x00007f22 increase  0x00000080 , 0x0000003f 
+ 00030039  0x00007f23 store  0x00000001 , 0x0000446d 
+ 00030040  0x00007f24 rtnbit1  0x00000007 
+ 00030041  0x00007f25 fetch  0x00000002 , 0x0000022e 
+ 00030042  0x00007f26 branch  0x0000755c , 0x00000034 
+ 00030043  0x00007f27 branch  0x00007562 
+ 00030044  0x00007f2a bpatch  0x000000f0 , 0x0000401e 
+ 00030045  0x00007f2b call  0x00007577 
+ 00030046  0x00007f2c fetch  0x00000001 , 0x0000446d 
+ 00030047  0x00007f2d beq  0x00000003 , 0x00007536 
+ 00030048  0x00007f2e beq  0x00000004 , 0x0000754c 
+ 00030049  0x00007f2f rtn 
+ 00030050  0x00007f33 call  0x00007589 
+ 00030051  0x00007f34 fetch  0x00000002 , 0x0000022e 
+ 00030052  0x00007f35 increase  0xffffffff , 0x0000003f 
+ 00030053  0x00007f36 store  0x00000002 , 0x0000022e 
+ 00030054  0x00007f37 arg  0x000003b1 , 0x00000006 
+ 00030055  0x00007f38 call  0x0000749d 
+ 00030056  0x00007f39 rtn  0x00000001 
+ 00030057  0x00007f3a branch  0x000075da 
+ 00030058  0x00007f3d bpatch  0x000000f1 , 0x0000401e 
+ 00030059  0x00007f3e setarg  0x00000100 
+ 00030060  0x00007f3f store  0x00000002 , 0x0000022e 
+ 00030061  0x00007f41 fetch  0x00000002 , 0x0000022e 
+ 00030062  0x00007f42 rtn  0x00000034 
+ 00030063  0x00007f43 increase  0xffffffff , 0x0000003f 
+ 00030064  0x00007f44 store  0x00000002 , 0x0000022e 
+ 00030065  0x00007f45 arg  0x000003b1 , 0x00000006 
+ 00030066  0x00007f46 call  0x0000749d 
+ 00030067  0x00007f47 branch  0x0000756d , 0x00000001 
+ 00030068  0x00007f48 arg  0x00000291 , 0x00000006 
+ 00030069  0x00007f49 arg  0x00000351 , 0x00000005 
+ 00030070  0x00007f4a branch  0x00007c80 
+ 00030071  0x00007f4e arg  0x00000391 , 0x00000011 
+ 00030072  0x00007f4f arg  0x00000491 , 0x00000005 
+ 00030073  0x00007f50 call  0x00007646 
+ 00030074  0x00007f51 arg  0x00000491 , 0x00000011 
+ 00030075  0x00007f52 arg  0x00000431 , 0x00000005 
+ 00030076  0x00007f53 call  0x0000771c 
+ 00030077  0x00007f54 arg  0x00000351 , 0x00000011 
+ 00030078  0x00007f55 arg  0x00000431 , 0x00000012 
+ 00030079  0x00007f56 arg  0x000002f1 , 0x00000005 
+ 00030080  0x00007f57 call  0x00007684 
+ 00030081  0x00007f58 arg  0x00000491 , 0x00000011 
+ 00030082  0x00007f59 arg  0x00000431 , 0x00000012 
+ 00030083  0x00007f5a arg  0x00000471 , 0x00000005 
+ 00030084  0x00007f5b call  0x00007684 
+ 00030085  0x00007f5c arg  0x00000371 , 0x00000011 
+ 00030086  0x00007f5d arg  0x00000471 , 0x00000012 
+ 00030087  0x00007f5e arg  0x00000311 , 0x00000005 
+ 00030088  0x00007f5f branch  0x00007684 
+ 00030089  0x00007f62 arg  0x00000391 , 0x00000011 
+ 00030090  0x00007f63 arg  0x00000471 , 0x00000005 
+ 00030091  0x00007f64 call  0x0000771c 
+ 00030092  0x00007f65 arg  0x00000471 , 0x00000011 
+ 00030093  0x00007f66 arg  0x00000491 , 0x00000005 
+ 00030094  0x00007f67 call  0x0000771c 
+ 00030095  0x00007f69 arg  0x00000589 , 0x00000011 
+ 00030096  0x00007f6a arg  0x00000491 , 0x00000012 
+ 00030097  0x00007f6b arg  0x00000491 , 0x00000005 
+ 00030098  0x00007f6c call  0x00007684 
+ 00030099  0x00007f6d arg  0x00000351 , 0x00000011 
+ 00030100  0x00007f6e arg  0x00000471 , 0x00000005 
+ 00030101  0x00007f6f call  0x0000771c 
+ 00030102  0x00007f71 arg  0x00000471 , 0x00000006 
+ 00030103  0x00007f72 arg  0x00000431 , 0x00000005 
+ 00030104  0x00007f73 call  0x00007c8d 
+ 00030105  0x00007f74 arg  0x00000431 , 0x00000011 
+ 00030106  0x00007f75 call  0x00007723 
+ 00030107  0x00007f76 arg  0x00000471 , 0x00000011 
+ 00030108  0x00007f77 arg  0x00000431 , 0x00000012 
+ 00030109  0x00007f78 arg  0x00000471 , 0x00000005 
+ 00030110  0x00007f79 call  0x00007720 
+ 00030111  0x00007f7b arg  0x00000471 , 0x00000011 
+ 00030112  0x00007f7c arg  0x00000491 , 0x00000012 
+ 00030113  0x00007f7d arg  0x00000471 , 0x00000005 
+ 00030114  0x00007f7e call  0x00007720 
+ 00030115  0x00007f80 arg  0x00000351 , 0x00000006 
+ 00030116  0x00007f81 arg  0x00000431 , 0x00000005 
+ 00030117  0x00007f82 call  0x00007c8d 
+ 00030118  0x00007f83 arg  0x00000371 , 0x00000011 
+ 00030119  0x00007f84 arg  0x00000491 , 0x00000005 
+ 00030120  0x00007f85 call  0x0000771c 
+ 00030121  0x00007f86 arg  0x00000431 , 0x00000011 
+ 00030122  0x00007f87 call  0x00007723 
+ 00030123  0x00007f88 arg  0x00000431 , 0x00000011 
+ 00030124  0x00007f89 call  0x00007723 
+ 00030125  0x00007f8a arg  0x00000431 , 0x00000011 
+ 00030126  0x00007f8b arg  0x00000491 , 0x00000012 
+ 00030127  0x00007f8c arg  0x00000431 , 0x00000005 
+ 00030128  0x00007f8d call  0x00007684 
+ 00030129  0x00007f8e arg  0x00000491 , 0x00000011 
+ 00030130  0x00007f8f arg  0x00000451 , 0x00000005 
+ 00030131  0x00007f90 call  0x0000771c 
+ 00030132  0x00007f91 arg  0x00000451 , 0x00000011 
+ 00030133  0x00007f92 call  0x00007723 
+ 00030134  0x00007f93 arg  0x00000451 , 0x00000011 
+ 00030135  0x00007f94 call  0x00007723 
+ 00030136  0x00007f95 arg  0x00000451 , 0x00000011 
+ 00030137  0x00007f96 call  0x00007723 
+ 00030138  0x00007f97 arg  0x00000371 , 0x00000006 
+ 00030139  0x00007f98 arg  0x00000491 , 0x00000005 
+ 00030140  0x00007f99 call  0x00007c8d 
+ 00030141  0x00007f9a arg  0x00000491 , 0x00000011 
+ 00030142  0x00007f9b call  0x00007723 
+ 00030143  0x00007f9c arg  0x00000491 , 0x00000011 
+ 00030144  0x00007f9d arg  0x00000391 , 0x00000012 
+ 00030145  0x00007f9e arg  0x00000391 , 0x00000005 
+ 00030146  0x00007f9f call  0x00007684 
+ 00030147  0x00007fa2 arg  0x00000471 , 0x00000011 
+ 00030148  0x00007fa3 arg  0x00000491 , 0x00000005 
+ 00030149  0x00007fa4 call  0x0000771c 
+ 00030150  0x00007fa6 arg  0x00000491 , 0x00000011 
+ 00030151  0x00007fa7 arg  0x00000431 , 0x00000012 
+ 00030152  0x00007fa8 arg  0x00000491 , 0x00000005 
+ 00030153  0x00007fa9 call  0x00007739 
+ 00030154  0x00007faa arg  0x00000491 , 0x00000011 
+ 00030155  0x00007fab arg  0x00000431 , 0x00000012 
+ 00030156  0x00007fac arg  0x00000351 , 0x00000005 
+ 00030157  0x00007fad call  0x00007739 
+ 00030158  0x00007fae arg  0x00000431 , 0x00000011 
+ 00030159  0x00007faf arg  0x00000351 , 0x00000012 
+ 00030160  0x00007fb0 arg  0x00000491 , 0x00000005 
+ 00030161  0x00007fb1 call  0x00007739 
+ 00030162  0x00007fb2 arg  0x00000491 , 0x00000011 
+ 00030163  0x00007fb3 arg  0x00000471 , 0x00000012 
+ 00030164  0x00007fb4 arg  0x00000491 , 0x00000005 
+ 00030165  0x00007fb5 call  0x00007684 
+ 00030166  0x00007fb6 arg  0x00000491 , 0x00000011 
+ 00030167  0x00007fb7 arg  0x00000451 , 0x00000012 
+ 00030168  0x00007fb8 arg  0x00000371 , 0x00000005 
+ 00030169  0x00007fb9 branch  0x00007739 
+ 00030170  0x00007fbd arg  0x000002d1 , 0x00000011 
+ 00030171  0x00007fbe arg  0x000004b1 , 0x00000005 
+ 00030172  0x00007fbf call  0x0000771c 
+ 00030173  0x00007fc0 arg  0x00000351 , 0x00000011 
+ 00030174  0x00007fc1 arg  0x000004b1 , 0x00000012 
+ 00030175  0x00007fc2 arg  0x00000451 , 0x00000005 
+ 00030176  0x00007fc3 call  0x00007684 
+ 00030177  0x00007fc6 arg  0x000002d1 , 0x00000011 
+ 00030178  0x00007fc7 arg  0x000004b1 , 0x00000012 
+ 00030179  0x00007fc8 arg  0x000004b1 , 0x00000005 
+ 00030180  0x00007fc9 call  0x00007684 
+ 00030181  0x00007fca arg  0x00000371 , 0x00000011 
+ 00030182  0x00007fcb arg  0x000004b1 , 0x00000012 
+ 00030183  0x00007fcc arg  0x00000431 , 0x00000005 
+ 00030184  0x00007fcd call  0x00007684 
+ 00030185  0x00007fd0 arg  0x00000391 , 0x00000011 
+ 00030186  0x00007fd1 arg  0x000004b1 , 0x00000005 
+ 00030187  0x00007fd2 call  0x0000771c 
+ 00030188  0x00007fd3 arg  0x00000291 , 0x00000011 
+ 00030189  0x00007fd4 arg  0x000004b1 , 0x00000012 
+ 00030190  0x00007fd5 arg  0x00000471 , 0x00000005 
+ 00030191  0x00007fd6 call  0x00007684 
+ 00030192  0x00007fd8 arg  0x00000391 , 0x00000011 
+ 00030193  0x00007fd9 arg  0x000004b1 , 0x00000012 
+ 00030194  0x00007fda arg  0x000004b1 , 0x00000005 
+ 00030195  0x00007fdb call  0x00007684 
+ 00030196  0x00007fdc arg  0x000002b1 , 0x00000011 
+ 00030197  0x00007fdd arg  0x000004b1 , 0x00000012 
+ 00030198  0x00007fde arg  0x00000491 , 0x00000005 
+ 00030199  0x00007fdf call  0x00007684 
+ 00030200  0x00007fe4 arg  0x00000451 , 0x00000012 
+ 00030201  0x00007fe5 arg  0x00000471 , 0x00000011 
+ 00030202  0x00007fe6 arg  0x000004b1 , 0x00000005 
+ 00030203  0x00007fe7 call  0x00007739 
+ 00030204  0x00007fe8 arg  0x00000451 , 0x00000011 
+ 00030205  0x00007fe9 arg  0x00000471 , 0x00000012 
+ 00030206  0x00007fea arg  0x00000451 , 0x00000005 
+ 00030207  0x00007feb call  0x00007720 
+ 00030208  0x00007fee arg  0x00000431 , 0x00000012 
+ 00030209  0x00007fef arg  0x00000491 , 0x00000011 
+ 00030210  0x00007ff0 arg  0x00000471 , 0x00000005 
+ 00030211  0x00007ff1 call  0x00007739 
+ 00030212  0x00007ff2 arg  0x00000431 , 0x00000011 
+ 00030213  0x00007ff3 arg  0x00000491 , 0x00000012 
+ 00030214  0x00007ff4 arg  0x00000431 , 0x00000005 
+ 00030215  0x00007ff5 call  0x00007720 
+ 00030216  0x00007ff6 arg  0x00000431 , 0x00000011 
+ 00030217  0x00007ff7 arg  0x000004b1 , 0x00000012 
+ 00030218  0x00007ff8 arg  0x00000431 , 0x00000005 
+ 00030219  0x00007ff9 call  0x00007684 
+ 00030220  0x00007ffa arg  0x00000391 , 0x00000011 
+ 00030221  0x00007ffb arg  0x000002d1 , 0x00000012 
+ 00030222  0x00007ffc arg  0x00000491 , 0x00000005 
+ 00030223  0x00007ffd call  0x00007684 
+ 00030224  0x00007ffe arg  0x00000491 , 0x00000011 
+ 00030225  0x00007fff arg  0x000004b1 , 0x00000012 
+ 00030226  0x00008000 arg  0x00000391 , 0x00000005 
+ 00030227  0x00008001 call  0x00007684 
+ 00030228  0x00008003 arg  0x000004b1 , 0x00000011 
+ 00030229  0x00008004 arg  0x000004b1 , 0x00000005 
+ 00030230  0x00008005 call  0x0000771c 
+ 00030231  0x00008006 arg  0x000004b1 , 0x00000011 
+ 00030232  0x00008007 arg  0x00000451 , 0x00000012 
+ 00030233  0x00008008 arg  0x00000491 , 0x00000005 
+ 00030234  0x00008009 call  0x00007684 
+ 00030235  0x0000800a arg  0x000004b1 , 0x00000011 
+ 00030236  0x0000800b arg  0x00000431 , 0x00000012 
+ 00030237  0x0000800c arg  0x00000431 , 0x00000005 
+ 00030238  0x0000800d call  0x00007684 
+ 00030239  0x0000800e arg  0x00000471 , 0x00000011 
+ 00030240  0x0000800f arg  0x00000351 , 0x00000005 
+ 00030241  0x00008010 call  0x0000771c 
+ 00030242  0x00008011 arg  0x00000351 , 0x00000011 
+ 00030243  0x00008012 arg  0x00000491 , 0x00000012 
+ 00030244  0x00008013 arg  0x00000351 , 0x00000005 
+ 00030245  0x00008014 call  0x00007739 
+ 00030246  0x00008015 arg  0x00000351 , 0x00000006 
+ 00030247  0x00008016 arg  0x000004b1 , 0x00000005 
+ 00030248  0x00008017 call  0x00007c8d 
+ 00030249  0x00008018 arg  0x000004b1 , 0x00000011 
+ 00030250  0x00008019 call  0x00007723 
+ 00030251  0x0000801a arg  0x00000491 , 0x00000011 
+ 00030252  0x0000801b arg  0x000004b1 , 0x00000012 
+ 00030253  0x0000801c arg  0x00000491 , 0x00000005 
+ 00030254  0x0000801d call  0x00007739 
+ 00030255  0x0000801e arg  0x00000491 , 0x00000011 
+ 00030256  0x0000801f arg  0x00000471 , 0x00000012 
+ 00030257  0x00008020 arg  0x00000471 , 0x00000005 
+ 00030258  0x00008021 call  0x00007684 
+ 00030259  0x00008022 arg  0x00000471 , 0x00000011 
+ 00030260  0x00008023 arg  0x00000431 , 0x00000012 
+ 00030261  0x00008024 arg  0x00000371 , 0x00000005 
+ 00030262  0x00008025 call  0x00007739 
+ 00030263  0x00008026 arg  0x00000371 , 0x00000011 
+ 00030264  0x00008027 arg  0x00000569 , 0x00000012 
+ 00030265  0x00008028 arg  0x00000371 , 0x00000005 
+ 00030266  0x00008029 force  0x00000000 , 0x00000013 
+ 00030267  0x0000802a fetch  0x00000001 , 0x00000371 
+ 00030268  0x0000802b isolate1  0x00000000 , 0x0000003f 
+ 00030269  0x0000802c call  0x0000771e , 0x00000001 
+ 00030270  0x0000802d copy  0x00000013 , 0x00000030 
+ 00030271  0x0000802e arg  0x00000371 , 0x00000011 
+ 00030272  0x0000802f call  0x0000774e 
+ 00030273  0x00008030 fetch  0x00000001 , 0x00000390 
+ 00030274  0x00008031 isolate1  0x00000000 , 0x00000030 
+ 00030275  0x00008032 setflag  0x00000001 , 0x00000007 , 0x0000003f 
+ 00030276  0x00008033 store  0x00000001 , 0x00000390 
+ 00030277  0x00008034 rtn 
+ 00030278  0x00008037 copy  0x00000005 , 0x0000000b 
+ 00030279  0x00008038 arg  0x00000451 , 0x00000005 
+ 00030280  0x00008039 call  0x00007c9d 
+ 00030281  0x0000803a force  0x00000000 , 0x0000003f 
+ 00030282  0x0000803c store  0x00000004 , 0x00000471 
+ 00030283  0x0000803d jam  0x00000001 , 0x00000451 
+ 00030284  0x0000803e arg  0x000003d1 , 0x00000005 
+ 00030285  0x0000803f call  0x00007c9f 
+ 00030286  0x00008040 arg  0x00000569 , 0x00000006 
+ 00030287  0x00008041 arg  0x00000411 , 0x00000005 
+ 00030288  0x00008042 call  0x00007c8d 
+ 00030289  0x00008043 copy  0x00000011 , 0x00000006 
+ 00030290  0x00008044 arg  0x00000431 , 0x00000005 
+ 00030291  0x00008045 call  0x00007c8d 
+ 00030292  0x0000804c arg  0x00000431 , 0x00000006 
+ 00030293  0x0000804d call  0x00007758 
+ 00030294  0x0000804e branch  0x0000767d , 0x00000034 
+ 00030295  0x00008053 arg  0x00000431 , 0x00000011 
+ 00030296  0x00008054 arg  0x00000451 , 0x00000012 
+ 00030297  0x00008055 call  0x0000775b 
+ 00030298  0x00008056 arg  0x00000411 , 0x00000011 
+ 00030299  0x00008057 arg  0x000003d1 , 0x00000012 
+ 00030300  0x00008058 call  0x0000775b 
+ 00030301  0x0000805a arg  0x00000431 , 0x00000011 
+ 00030302  0x0000805b arg  0x00000411 , 0x00000012 
+ 00030303  0x0000805c call  0x00007754 
+ 00030304  0x0000805d branch  0x0000766f , 0x00000002 
+ 00030305  0x0000805e arg  0x00000411 , 0x00000011 
+ 00030306  0x0000805f arg  0x00000431 , 0x00000012 
+ 00030307  0x00008060 copy  0x00000011 , 0x00000005 
+ 00030308  0x00008061 call  0x0000774c 
+ 00030309  0x00008062 arg  0x00000451 , 0x00000011 
+ 00030310  0x00008063 arg  0x000003d1 , 0x00000012 
+ 00030311  0x00008064 copy  0x00000012 , 0x00000005 
+ 00030312  0x00008065 call  0x0000771e 
+ 00030313  0x00008066 ifetch  0x00000001 , 0x00000011 
+ 00030314  0x00008067 iadd  0x00000013 , 0x00000013 
+ 00030315  0x00008068 ifetch  0x00000001 , 0x00000012 
+ 00030316  0x00008069 iadd  0x00000013 , 0x0000003f 
+ 00030317  0x0000806a istore  0x00000001 , 0x00000012 
+ 00030318  0x0000806b branch  0x00007654 
+ 00030319  0x0000806d arg  0x00000431 , 0x00000011 
+ 00030320  0x0000806e arg  0x00000411 , 0x00000012 
+ 00030321  0x0000806f copy  0x00000011 , 0x00000005 
+ 00030322  0x00008070 call  0x0000774c 
+ 00030323  0x00008071 arg  0x000003d1 , 0x00000011 
+ 00030324  0x00008072 arg  0x00000451 , 0x00000012 
+ 00030325  0x00008073 copy  0x00000012 , 0x00000005 
+ 00030326  0x00008074 call  0x0000771e 
+ 00030327  0x00008075 ifetch  0x00000001 , 0x00000011 
+ 00030328  0x00008076 iadd  0x00000013 , 0x00000013 
+ 00030329  0x00008077 ifetch  0x00000001 , 0x00000012 
+ 00030330  0x00008078 iadd  0x00000013 , 0x0000003f 
+ 00030331  0x00008079 istore  0x00000001 , 0x00000012 
+ 00030332  0x0000807a branch  0x00007654 
+ 00030333  0x0000807d arg  0x000003d1 , 0x00000011 
+ 00030334  0x0000807e copy  0x0000000b , 0x00000005 
+ 00030335  0x0000807f call  0x000076ad 
+ 00030336  0x00008081 arg  0x00000569 , 0x00000011 
+ 00030337  0x00008082 copy  0x0000000b , 0x00000012 
+ 00030338  0x00008083 copy  0x0000000b , 0x00000005 
+ 00030339  0x00008084 branch  0x00007739 
+ 00030340  0x00008088 copy  0x00000005 , 0x0000000b 
+ 00030341  0x0000808a force  0x00000000 , 0x00000038 
+ 00030342  0x0000808c arg  0x000003d1 , 0x00000005 
+ 00030343  0x0000808d call  0x00007c9f 
+ 00030344  0x0000808e arg  0x000006b1 , 0x00000005 
+ 00030345  0x0000808f call  0x00007c9f 
+ 00030346  0x00008093 copy  0x00000011 , 0x00000006 
+ 00030347  0x00008095 jam  0x00000000 , 0x000006b1 
+ 00030348  0x00008096 setarg  0x00000000 
+ 00030349  0x00008097 call  0x00007716 
+ 00030350  0x00008098 copy  0x00000012 , 0x00000006 
+ 00030351  0x00008099 call  0x0000771a 
+ 00030352  0x0000809c force  0x00000000 , 0x00000007 
+ 00030353  0x0000809d arg  0x000003d1 , 0x00000005 
+ 00030354  0x000080a1 arg  0x000006b1 , 0x00000002 
+ 00030355  0x000080a2 copy  0x00000007 , 0x00000012 
+ 00030356  0x000080a3 lshift2  0x00000012 , 0x0000003f 
+ 00030357  0x000080a5 iadd  0x00000002 , 0x00000012 
+ 00030358  0x000080a6 force  0x00000000 , 0x00000002 
+ 00030359  0x000080a7 force  0x00000000 , 0x00000013 
+ 00030360  0x000080ad ifetch  0x00000004 , 0x00000005 
+ 00030361  0x000080ae iforce  0x00000011 
+ 00030362  0x000080b1 ifetch  0x00000004 , 0x00000012 
+ 00030363  0x000080b2 copy  0x00000013 , 0x00000038 
+ 00030364  0x000080b3 imul32  0x0000002f , 0x0000003f 
+ 00030365  0x000080b4 iadd  0x00000011 , 0x0000003f 
+ 00030366  0x000080b5 iadd  0x00000002 , 0x0000003f 
+ 00030367  0x000080b6 istore  0x00000004 , 0x00000005 
+ 00030368  0x000080b7 rshift32  0x0000003f , 0x00000002 
+ 00030369  0x000080b8 increase  0x00000001 , 0x00000013 
+ 00030370  0x000080b9 compare  0x00000008 , 0x00000013 , 0x000000ff 
+ 00030371  0x000080ba nbranch  0x00007698 , 0x00000001 
+ 00030372  0x000080bc deposit  0x00000002 
+ 00030373  0x000080bd istore  0x00000004 , 0x00000005 
+ 00030374  0x000080be increase  0xffffffe0 , 0x00000005 
+ 00030375  0x000080c1 increase  0x00000001 , 0x00000007 
+ 00030376  0x000080c2 compare  0x00000008 , 0x00000007 , 0x000000ff 
+ 00030377  0x000080c3 nbranch  0x00007692 , 0x00000001 
+ 00030378  0x000080c4 arg  0x000003d1 , 0x00000011 
+ 00030379  0x000080c5 copy  0x0000000b , 0x00000005 
+ 00030380  0x000080c6 branch  0x000076ad 
+ 00030381  0x000080c9 bpatch  0x000000f2 , 0x0000401e 
+ 00030382  0x000080ca copy  0x00000005 , 0x0000000b 
+ 00030383  0x000080cb copy  0x00000011 , 0x00000030 
+ 00030384  0x000080cc arg  0x00000411 , 0x00000012 
+ 00030385  0x000080cd copy  0x00000012 , 0x00000005 
+ 00030386  0x000080ce call  0x00007c9b 
+ 00030387  0x000080cf istore  0x00000008 , 0x00000005 
+ 00030388  0x000080d0 add  0x00000011 , 0x0000002c , 0x00000006 
+ 00030389  0x000080d1 call  0x00007c89 
+ 00030390  0x000080d2 call  0x00007c83 
+ 00030391  0x000080d3 copy  0x00000012 , 0x00000011 
+ 00030392  0x000080d4 call  0x00007723 
+ 00030393  0x000080d5 arg  0x00000411 , 0x00000012 
+ 00030394  0x000080d6 copy  0x00000030 , 0x00000011 
+ 00030395  0x000080d7 copy  0x0000000b , 0x00000005 
+ 00030396  0x000080d8 call  0x00007720 
+ 00030397  0x000080da arg  0x00000411 , 0x00000012 
+ 00030398  0x000080db copy  0x00000012 , 0x00000005 
+ 00030399  0x000080dc call  0x00007c9b 
+ 00030400  0x000080dd istore  0x00000008 , 0x00000005 
+ 00030401  0x000080de add  0x00000030 , 0x00000030 , 0x00000006 
+ 00030402  0x000080df call  0x00007c8f 
+ 00030403  0x000080e0 call  0x00007c9b 
+ 00030404  0x000080e1 copy  0x00000012 , 0x00000011 
+ 00030405  0x000080e2 call  0x00007723 
+ 00030406  0x000080e6 arg  0x00000411 , 0x00000012 
+ 00030407  0x000080e7 copy  0x0000000b , 0x00000011 
+ 00030408  0x000080e8 copy  0x00000011 , 0x00000005 
+ 00030409  0x000080e9 call  0x00007720 
+ 00030410  0x000080ed arg  0x00000411 , 0x00000012 
+ 00030411  0x000080ee copy  0x00000012 , 0x00000005 
+ 00030412  0x000080ef add  0x00000030 , 0x00000020 , 0x00000006 
+ 00030413  0x000080f0 call  0x00007c83 
+ 00030414  0x000080f1 call  0x00007c9b 
+ 00030415  0x000080f2 istore  0x00000008 , 0x00000005 
+ 00030416  0x000080f3 add  0x00000030 , 0x00000038 , 0x00000006 
+ 00030417  0x000080f4 call  0x00007c89 
+ 00030418  0x000080f5 copy  0x0000000b , 0x00000011 
+ 00030419  0x000080f6 copy  0x00000011 , 0x00000005 
+ 00030420  0x000080f7 call  0x00007720 
+ 00030421  0x000080fb arg  0x00000411 , 0x00000012 
+ 00030422  0x000080fc copy  0x00000012 , 0x00000005 
+ 00030423  0x000080fd add  0x00000030 , 0x00000024 , 0x00000006 
+ 00030424  0x000080fe call  0x00007c83 
+ 00030425  0x000080ff add  0x00000030 , 0x00000034 , 0x00000006 
+ 00030426  0x00008100 call  0x00007c83 
+ 00030427  0x00008101 add  0x00000030 , 0x00000034 , 0x00000006 
+ 00030428  0x00008102 call  0x00007c84 
+ 00030429  0x00008103 add  0x00000030 , 0x00000020 , 0x00000006 
+ 00030430  0x00008104 call  0x00007c84 
+ 00030431  0x00008105 copy  0x0000000b , 0x00000011 
+ 00030432  0x00008106 copy  0x00000011 , 0x00000005 
+ 00030433  0x00008107 call  0x00007720 
+ 00030434  0x0000810a arg  0x00000411 , 0x00000012 
+ 00030435  0x0000810b copy  0x00000012 , 0x00000005 
+ 00030436  0x0000810c add  0x00000030 , 0x0000002c , 0x00000006 
+ 00030437  0x0000810d call  0x00007c83 
+ 00030438  0x0000810e call  0x00007c9b 
+ 00030439  0x0000810f istore  0x00000008 , 0x00000005 
+ 00030440  0x00008110 add  0x00000030 , 0x00000020 , 0x00000006 
+ 00030441  0x00008111 call  0x00007c84 
+ 00030442  0x00008112 add  0x00000030 , 0x00000028 , 0x00000006 
+ 00030443  0x00008113 call  0x00007c84 
+ 00030444  0x00008114 copy  0x0000000b , 0x00000011 
+ 00030445  0x00008115 copy  0x00000011 , 0x00000005 
+ 00030446  0x00008116 call  0x00007739 
+ 00030447  0x00008119 arg  0x00000411 , 0x00000012 
+ 00030448  0x0000811a copy  0x00000012 , 0x00000005 
+ 00030449  0x0000811b add  0x00000030 , 0x00000030 , 0x00000006 
+ 00030450  0x0000811c call  0x00007c89 
+ 00030451  0x0000811d call  0x00007c89 
+ 00030452  0x0000811e force  0x00000000 , 0x0000003f 
+ 00030453  0x0000811f istore  0x00000008 , 0x00000005 
+ 00030454  0x00008120 add  0x00000030 , 0x00000024 , 0x00000006 
+ 00030455  0x00008121 call  0x00007c84 
+ 00030456  0x00008122 add  0x00000030 , 0x0000002c , 0x00000006 
+ 00030457  0x00008123 call  0x00007c84 
+ 00030458  0x00008124 copy  0x0000000b , 0x00000011 
+ 00030459  0x00008125 copy  0x00000011 , 0x00000005 
+ 00030460  0x00008126 call  0x00007739 
+ 00030461  0x00008129 arg  0x00000411 , 0x00000012 
+ 00030462  0x0000812a copy  0x00000012 , 0x00000005 
+ 00030463  0x0000812b add  0x00000030 , 0x00000034 , 0x00000006 
+ 00030464  0x0000812c call  0x00007c83 
+ 00030465  0x0000812d add  0x00000030 , 0x00000020 , 0x00000006 
+ 00030466  0x0000812e call  0x00007c83 
+ 00030467  0x0000812f call  0x00007c9b 
+ 00030468  0x00008130 add  0x00000030 , 0x00000030 , 0x00000006 
+ 00030469  0x00008131 call  0x00007c84 
+ 00030470  0x00008132 copy  0x0000000b , 0x00000011 
+ 00030471  0x00008133 copy  0x00000011 , 0x00000005 
+ 00030472  0x00008134 call  0x00007739 
+ 00030473  0x00008137 arg  0x00000411 , 0x00000012 
+ 00030474  0x00008138 copy  0x00000012 , 0x00000005 
+ 00030475  0x00008139 add  0x00000030 , 0x00000038 , 0x00000006 
+ 00030476  0x0000813a call  0x00007c89 
+ 00030477  0x0000813b call  0x00007c9b 
+ 00030478  0x0000813c add  0x00000030 , 0x00000024 , 0x00000006 
+ 00030479  0x0000813d call  0x00007c83 
+ 00030480  0x0000813e call  0x00007c9b 
+ 00030481  0x0000813f add  0x00000030 , 0x00000034 , 0x00000006 
+ 00030482  0x00008140 call  0x00007c84 
+ 00030483  0x00008141 copy  0x0000000b , 0x00000011 
+ 00030484  0x00008142 copy  0x00000011 , 0x00000005 
+ 00030485  0x00008143 branch  0x00007739 
+ 00030486  0x00008147 force  0x00000020 , 0x00000039 
+ 00030487  0x00008148 arg  0x000006b1 , 0x00000005 
+ 00030488  0x00008149 iadd  0x00000005 , 0x00000005 
+ 00030489  0x0000814a branch  0x00007cda 
+ 00030490  0x0000814d force  0x00000008 , 0x00000039 
+ 00030491  0x0000814e branch  0x000074f7 
+ 00030492  0x00008151 copy  0x00000011 , 0x00000012 
+ 00030493  0x00008152 branch  0x00007684 
+ 00030494  0x00008155 force  0x00000008 , 0x00000039 
+ 00030495  0x00008156 branch  0x000074c0 
+ 00030496  0x00008159 call  0x0000771e 
+ 00030497  0x0000815a copy  0x00000005 , 0x00000011 
+ 00030498  0x0000815b branch  0x00007724 
+ 00030499  0x0000815e call  0x00007751 
+ 00030500  0x00008160 isolate1  0x00000000 , 0x00000013 
+ 00030501  0x00008161 branch  0x0000772d , 0x00000001 
+ 00030502  0x00008162 arg  0x00000569 , 0x00000012 
+ 00030503  0x00008163 copy  0x00000011 , 0x00000013 
+ 00030504  0x00008164 increase  0xffffffe0 , 0x00000011 
+ 00030505  0x00008165 call  0x00007754 
+ 00030506  0x00008166 nrtn  0x00000002 
+ 00030507  0x00008167 copy  0x00000013 , 0x00000011 
+ 00030508  0x00008168 branch  0x00007735 
+ 00030509  0x0000816b call  0x00007735 
+ 00030510  0x0000816d copy  0x00000011 , 0x00000013 
+ 00030511  0x0000816e increase  0xffffffe0 , 0x00000011 
+ 00030512  0x0000816f arg  0x00000569 , 0x00000012 
+ 00030513  0x00008170 call  0x00007754 
+ 00030514  0x00008171 nrtn  0x00000002 
+ 00030515  0x00008172 copy  0x00000013 , 0x00000011 
+ 00030516  0x00008173 branch  0x00007735 
+ 00030517  0x00008177 increase  0xffffffe0 , 0x00000011 
+ 00030518  0x00008178 arg  0x00000569 , 0x00000012 
+ 00030519  0x00008179 copy  0x00000011 , 0x00000005 
+ 00030520  0x0000817a branch  0x0000774c 
+ 00030521  0x00008180 call  0x0000774c 
+ 00030522  0x00008182 branch  0x00007743 , 0x00000001 
+ 00030523  0x00008185 add  0x00000005 , 0xffffffe0 , 0x00000011 
+ 00030524  0x00008186 arg  0x00000569 , 0x00000012 
+ 00030525  0x00008187 call  0x00007754 
+ 00030526  0x00008188 nrtn  0x00000002 
+ 00030527  0x00008189 arg  0x00000569 , 0x00000012 
+ 00030528  0x0000818a add  0x00000005 , 0xffffffe0 , 0x00000011 
+ 00030529  0x0000818c copy  0x00000011 , 0x00000005 
+ 00030530  0x0000818d branch  0x0000774c 
+ 00030531  0x0000818f add  0x00000005 , 0xffffffe0 , 0x00000011 
+ 00030532  0x00008190 arg  0x00000569 , 0x00000012 
+ 00030533  0x00008191 copy  0x00000011 , 0x00000005 
+ 00030534  0x00008192 call  0x0000771e 
+ 00030535  0x00008194 rtn  0x00000001 
+ 00030536  0x00008195 add  0x00000005 , 0xffffffe0 , 0x00000011 
+ 00030537  0x00008196 arg  0x00000569 , 0x00000012 
+ 00030538  0x00008197 copy  0x00000011 , 0x00000005 
+ 00030539  0x00008198 branch  0x0000771e 
+ 00030540  0x0000819d force  0x00000008 , 0x00000039 
+ 00030541  0x0000819e branch  0x000074ce 
+ 00030542  0x000081a1 force  0x00000008 , 0x00000039 
+ 00030543  0x000081a2 increase  0x0000001c , 0x00000011 
+ 00030544  0x000081a3 branch  0x000074dd 
+ 00030545  0x000081a6 force  0x00000008 , 0x00000039 
+ 00030546  0x000081a7 force  0x00000000 , 0x00000013 
+ 00030547  0x000081a8 branch  0x000074eb 
+ 00030548  0x000081ab force  0x00000008 , 0x00000039 
+ 00030549  0x000081ac increase  0x0000001c , 0x00000011 
+ 00030550  0x000081ad increase  0x0000001c , 0x00000012 
+ 00030551  0x000081ae branch  0x000074b5 
+ 00030552  0x000081b2 ifetch  0x00000008 , 0x00000006 
+ 00030553  0x000081b3 nrtn  0x00000034 
+ 00030554  0x000081b4 branch  0x000074a3 
+ 00030555  0x000081ba copy  0x00000011 , 0x00000030 
+ 00030556  0x000081bc copy  0x00000030 , 0x00000011 
+ 00030557  0x000081bd ifetch  0x00000001 , 0x00000011 
+ 00030558  0x000081be isolate1  0x00000000 , 0x0000003f 
+ 00030559  0x000081bf rtn  0x00000001 
+ 00030560  0x000081c0 call  0x0000774e 
+ 00030561  0x000081c1 ifetch  0x00000001 , 0x00000012 
+ 00030562  0x000081c2 isolate0  0x00000000 , 0x0000003f 
+ 00030563  0x000081c3 branch  0x0000776b , 0x00000001 
+ 00030564  0x000081c4 arg  0x00000569 , 0x00000011 
+ 00030565  0x000081c5 copy  0x00000012 , 0x00000005 
+ 00030566  0x000081c6 call  0x0000771e 
+ 00030567  0x000081c7 ifetch  0x00000001 , 0x00000012 
+ 00030568  0x000081c8 iadd  0x00000013 , 0x0000003f 
+ 00030569  0x000081c9 istore  0x00000001 , 0x00000012 
+ 00030570  0x000081ca increase  0xffffffe0 , 0x00000012 
+ 00030571  0x000081cc add  0x00000012 , 0x00000020 , 0x00000011 
+ 00030572  0x000081cd force  0x00000009 , 0x00000039 
+ 00030573  0x000081ce call  0x000074dd 
+ 00030574  0x000081cf branch  0x0000775c 
+ 00030575  0x000081d3 rtn  0x0000002b 
+ 00030576  0x000081d4 call  0x000023d8 
+ 00030577  0x000081d5 call  0x00007776 
+ 00030578  0x000081d6 call  0x0000781b 
+ 00030579  0x000081d7 branch  0x000077ac 
+ 00030580  0x000081da call  0x000077cf 
+ 00030581  0x000081db branch  0x0000780a 
+ 00030582  0x000081de fetch  0x00000001 , 0x000044ec 
+ 00030583  0x000081df rtneq  0x000000ff 
+ 00030584  0x000081e0 iforce  0x00000002 
+ 00030585  0x000081e1 call  0x00006ef7 
+ 00030586  0x000081e2 fetcht  0x00000001 , 0x000044ec 
+ 00030587  0x000081e3 call  0x00006ef3 
+ 00030588  0x000081e4 nop  0x00000064 
+ 00030589  0x000081e5 fetcht  0x00000001 , 0x000044ec 
+ 00030590  0x000081e6 call  0x00006edd 
+ 00030591  0x000081e7 branch  0x00007780 
+ 00030592  0x000081ec bpatch  0x000000f3 , 0x0000401e 
+ 00030593  0x000081ed fetch  0x00000001 , 0x000044ec 
+ 00030594  0x000081ee rtneq  0x000000ff 
+ 00030595  0x000081ef copy  0x0000003f , 0x00000002 
+ 00030596  0x000081f0 call  0x00006ee6 
+ 00030597  0x000081f1 nbranch  0x00007792 , 0x00000001 
+ 00030598  0x000081f4 call  0x0000779c 
+ 00030599  0x000081f5 fetch  0x00000002 , 0x000044e9 
+ 00030600  0x000081f6 set1  0x0000000c , 0x0000003f 
+ 00030601  0x000081f7 store  0x00000002 , 0x000044e9 
+ 00030602  0x000081f8 fetch  0x00000001 , 0x000044e4 
+ 00030603  0x000081f9 rtneq  0x00000000 
+ 00030604  0x000081fa jam  0x00000000 , 0x000044e4 
+ 00030605  0x000081fc fetch  0x00000001 , 0x000044eb 
+ 00030606  0x000081fd store  0x00000001 , 0x000044e3 
+ 00030607  0x000081fe call  0x000077a3 
+ 00030608  0x000081ff jam  0x0000002c , 0x0000066f 
+ 00030609  0x00008200 branch  0x0000782b 
+ 00030610  0x00008202 fetch  0x00000002 , 0x000044e9 
+ 00030611  0x00008203 set0  0x0000000c , 0x0000003f 
+ 00030612  0x00008204 store  0x00000002 , 0x000044e9 
+ 00030613  0x00008205 fetch  0x00000001 , 0x000044e4 
+ 00030614  0x00008206 rtneq  0x00000001 
+ 00030615  0x00008207 jam  0x00000001 , 0x000044e4 
+ 00030616  0x00008209 jam  0x00000000 , 0x000044e3 
+ 00030617  0x0000820a call  0x000077a5 
+ 00030618  0x0000820b jam  0x0000002d , 0x0000066f 
+ 00030619  0x0000820c branch  0x0000782b 
+ 00030620  0x0000820f fetch  0x00000001 , 0x000044e3 
+ 00030621  0x00008210 rtn  0x00000034 
+ 00030622  0x00008211 increase  0xffffffff , 0x0000003f 
+ 00030623  0x00008212 store  0x00000001 , 0x000044e3 
+ 00030624  0x00008213 nrtn  0x00000034 
+ 00030625  0x00008215 jam  0x00000010 , 0x0000066f 
+ 00030626  0x00008216 branch  0x0000782b 
+ 00030627  0x00008219 arg  0x00000007 , 0x00000007 
+ 00030628  0x0000821a branch  0x000024e7 
+ 00030629  0x0000821d arg  0x00000007 , 0x00000007 
+ 00030630  0x0000821e branch  0x000024eb 
+ 00030631  0x00008226 bpatch  0x000000f4 , 0x0000401e 
+ 00030632  0x00008227 fetch  0x00000002 , 0x000044ef 
+ 00030633  0x00008228 mul32  0x00000011 , 0x0000000b , 0x00000012 
+ 00030634  0x00008229 iadd  0x00000012 , 0x00000012 
+ 00030635  0x0000822a rtn 
+ 00030636  0x0000822e fetch  0x00000001 , 0x000044ee 
+ 00030637  0x0000822f rtn  0x00000034 
+ 00030638  0x00008230 copy  0x0000003f , 0x00000039 
+ 00030639  0x00008231 fetch  0x00000002 , 0x000044ef 
+ 00030640  0x00008232 copy  0x0000003f , 0x00000012 
+ 00030641  0x00008234 add  0x00000012 , 0x00000002 , 0x00000013 
+ 00030642  0x00008235 ifetcht  0x00000001 , 0x00000013 
+ 00030643  0x00008236 call  0x000077b7 
+ 00030644  0x00008237 increase  0x0000000b , 0x00000012 
+ 00030645  0x00008238 loop  0x000077b1 
+ 00030646  0x00008239 rtn 
+ 00030647  0x0000823d fetch  0x00000001 , 0x000044ed 
+ 00030648  0x0000823e branch  0x00006ef3 , 0x00000034 
+ 00030649  0x0000823f branch  0x00006ef7 
+ 00030650  0x00008243 call  0x000077a7 
+ 00030651  0x00008244 setarg  0x00000002 
+ 00030652  0x00008245 istore  0x00000001 , 0x00000012 
+ 00030653  0x00008246 call  0x00007804 
+ 00030654  0x00008247 branch  0x000077db 
+ 00030655  0x0000824e call  0x000077a7 
+ 00030656  0x0000824f setarg  0x00000003 
+ 00030657  0x00008250 istore  0x00000001 , 0x00000012 
+ 00030658  0x00008252 call  0x00007804 
+ 00030659  0x00008253 branch  0x000077d8 
+ 00030660  0x00008258 call  0x000077a7 
+ 00030661  0x00008259 setarg  0x00000001 
+ 00030662  0x0000825a istore  0x00000001 , 0x00000012 
+ 00030663  0x0000825b setarg  0x000000ff 
+ 00030664  0x0000825c istore  0x00000001 , 0x00000005 
+ 00030665  0x0000825d branch  0x000077d8 
+ 00030666  0x00008263 call  0x000077a7 
+ 00030667  0x00008264 arg  0x0000000b , 0x00000039 
+ 00030668  0x00008265 copy  0x00000013 , 0x00000006 
+ 00030669  0x00008266 copy  0x00000012 , 0x00000005 
+ 00030670  0x00008267 branch  0x00007ccc 
+ 00030671  0x0000826c fetch  0x00000001 , 0x000044ee 
+ 00030672  0x0000826d rtn  0x00000034 
+ 00030673  0x0000826e arg  0x00000000 , 0x00000011 
+ 00030674  0x00008270 call  0x000077de 
+ 00030675  0x00008271 increase  0x00000001 , 0x00000011 
+ 00030676  0x00008272 fetch  0x00000001 , 0x000044ee 
+ 00030677  0x00008273 isub  0x00000011 , 0x0000003e 
+ 00030678  0x00008274 rtn  0x00000005 
+ 00030679  0x00008275 branch  0x000077d2 
+ 00030680  0x00008279 add  0x00000012 , 0x00000002 , 0x00000013 
+ 00030681  0x0000827a ifetcht  0x00000001 , 0x00000013 
+ 00030682  0x0000827b branch  0x00006ef3 
+ 00030683  0x0000827f add  0x00000012 , 0x00000002 , 0x00000013 
+ 00030684  0x00008280 ifetcht  0x00000001 , 0x00000013 
+ 00030685  0x00008281 branch  0x00006ef7 
+ 00030686  0x00008286 add  0x00000011 , 0x0000000b , 0x00000007 
+ 00030687  0x00008287 call  0x00007cef 
+ 00030688  0x00008288 nrtn  0x00000034 
+ 00030689  0x0000828a call  0x000077a7 
+ 00030690  0x0000828c ifetch  0x00000001 , 0x00000012 
+ 00030691  0x0000828e beq  0x00000002 , 0x000077db 
+ 00030692  0x0000828f beq  0x00000003 , 0x000077d8 
+ 00030693  0x00008290 beq  0x00000000 , 0x000077d8 
+ 00030694  0x00008291 beq  0x00000005 , 0x000077f2 
+ 00030695  0x00008293 call  0x000077db 
+ 00030696  0x00008294 add  0x00000012 , 0x00000007 , 0x00000013 
+ 00030697  0x00008295 call  0x00007c49 
+ 00030698  0x00008296 ifetch  0x00000002 , 0x00000013 
+ 00030699  0x00008297 call  0x00007d79 
+ 00030700  0x00008298 call  0x00007c55 
+ 00030701  0x00008299 setarg  0x00000005 
+ 00030702  0x0000829a istore  0x00000001 , 0x00000012 
+ 00030703  0x0000829b add  0x00000012 , 0x00000003 , 0x00000013 
+ 00030704  0x0000829c ifetch  0x00000002 , 0x00000013 
+ 00030705  0x0000829d branch  0x00007802 
+ 00030706  0x000082a1 call  0x000077d8 
+ 00030707  0x000082a2 add  0x00000012 , 0x00000009 , 0x00000013 
+ 00030708  0x000082a3 call  0x00007c49 
+ 00030709  0x000082a4 ifetch  0x00000002 , 0x00000013 
+ 00030710  0x000082a5 call  0x00007d79 
+ 00030711  0x000082a6 call  0x00007c55 
+ 00030712  0x000082a8 add  0x00000012 , 0x00000001 , 0x00000013 
+ 00030713  0x000082a9 ifetch  0x00000001 , 0x00000013 
+ 00030714  0x000082aa beq  0x000000ff , 0x000077fe 
+ 00030715  0x000082ab increase  0xffffffff , 0x0000003f 
+ 00030716  0x000082ac istore  0x00000001 , 0x00000013 
+ 00030717  0x000082ad branch  0x000077bf , 0x00000034 
+ 00030718  0x000082af setarg  0x00000004 
+ 00030719  0x000082b0 istore  0x00000001 , 0x00000012 
+ 00030720  0x000082b1 add  0x00000012 , 0x00000005 , 0x00000013 
+ 00030721  0x000082b2 ifetch  0x00000002 , 0x00000013 
+ 00030722  0x000082b4 add  0x00000011 , 0x0000000b , 0x00000007 
+ 00030723  0x000082b5 branch  0x00007ce1 
+ 00030724  0x000082b8 setarg  0x00000000 
+ 00030725  0x000082b9 branch  0x00007802 
+ 00030726  0x000082c0 setarg  0x00001000 
+ 00030727  0x000082c1 lshift16  0x0000003f , 0x0000003f 
+ 00030728  0x000082c2 iadd  0x00000012 , 0x00000012 
+ 00030729  0x000082c3 rtn 
+ 00030730  0x000082c6 bpatch  0x000000f5 , 0x0000401e 
+ 00030731  0x000082c7 arg  0x00000000 , 0x00000011 
+ 00030732  0x000082c8 fetcht  0x00000004 , 0x000044e5 
+ 00030733  0x000082c9 copy  0x00000022 , 0x00000012 
+ 00030734  0x000082ca copy  0x00000012 , 0x0000003f 
+ 00030735  0x000082cb isub  0x00000002 , 0x0000003e 
+ 00030736  0x000082cc ncall  0x00007806 , 0x00000002 
+ 00030737  0x000082ce copy  0x00000012 , 0x0000003f 
+ 00030738  0x000082cf increase  0x000000a0 , 0x00000002 
+ 00030739  0x000082d0 increase  0x000000a0 , 0x00000002 
+ 00030740  0x000082d1 isub  0x00000002 , 0x0000003e 
+ 00030741  0x000082d2 nbranch  0x0000781e , 0x00000002 
+ 00030742  0x000082d3 increase  0x00000001 , 0x00000011 
+ 00030743  0x000082d4 and  0x00000011 , 0x0000000f , 0x0000003f 
+ 00030744  0x000082d5 nbranch  0x00007811 , 0x00000034 
+ 00030745  0x000082d6 arg  0x00000000 , 0x00000011 
+ 00030746  0x000082d7 call  0x00007824 
+ 00030747  0x000082d9 copy  0x00000022 , 0x0000003f 
+ 00030748  0x000082da store  0x00000004 , 0x000044e5 
+ 00030749  0x000082db rtn 
+ 00030750  0x000082dd copy  0x00000011 , 0x0000003f 
+ 00030751  0x000082de rtn  0x00000034 
+ 00030752  0x000082df increase  0xffffff60 , 0x00000002 
+ 00030753  0x000082e0 increase  0xffffff60 , 0x00000002 
+ 00030754  0x000082e1 set0  0x0000001c , 0x00000002 
+ 00030755  0x000082e2 storet  0x00000004 , 0x000044e5 
+ 00030756  0x000082e4 branch  0x000042d4 
+ 00030757  0x000082ec jam  0x00000001 , 0x000044d1 
+ 00030758  0x000082ee fetch  0x00000001 , 0x000044d2 
+ 00030759  0x000082ef nbranch  0x00007826 , 0x00000034 
+ 00030760  0x000082f0 rtn 
+ 00030761  0x000082f3 jam  0x00000000 , 0x000044d1 
+ 00030762  0x000082f4 rtn 
+ 00030763  0x000082f9 bpatch  0x000000f6 , 0x0000401e 
+ 00030764  0x000082fa call  0x00007825 
+ 00030765  0x000082fb copy  0x00000011 , 0x0000003f 
+ 00030766  0x000082fc store  0x00000004 , 0x00000684 
+ 00030767  0x000082fd arg  0x000044d3 , 0x00000011 
+ 00030768  0x000082fe call  0x00007d8b 
+ 00030769  0x000082ff fetch  0x00000004 , 0x00000684 
+ 00030770  0x00008300 copy  0x0000003f , 0x00000011 
+ 00030771  0x00008301 branch  0x00007829 
+ 00030772  0x00008304 bpatch  0x000000f7 , 0x0000401e 
+ 00030773  0x00008305 call  0x00007825 
+ 00030774  0x00008306 copy  0x00000011 , 0x0000003f 
+ 00030775  0x00008307 store  0x00000004 , 0x00000684 
+ 00030776  0x00008308 arg  0x000044db , 0x00000011 
+ 00030777  0x00008309 call  0x00007d8b 
+ 00030778  0x0000830a fetch  0x00000004 , 0x00000684 
+ 00030779  0x0000830b copy  0x0000003f , 0x00000011 
+ 00030780  0x0000830c branch  0x00007829 
+ 00030781  0x0000830f setarg  0x00000000 
+ 00030782  0x00008310 store  0x00000008 , 0x000044db 
+ 00030783  0x00008311 store  0x00000008 , 0x000044d3 
+ 00030784  0x00008312 rtn 
+ 00030785  0x00008315 bpatch  0x000000f8 , 0x0000401f 
+ 00030786  0x00008316 fetch  0x00000001 , 0x00004114 
+ 00030787  0x00008317 nrtn  0x00000034 
+ 00030788  0x00008318 arg  0x000044db , 0x00000011 
+ 00030789  0x00008319 call  0x00007da3 
+ 00030790  0x0000831a rtn  0x00000034 
+ 00030791  0x0000831b jam  0x00000000 , 0x0000066e 
+ 00030792  0x0000831c call  0x0000784c 
+ 00030793  0x0000831d fetch  0x00000001 , 0x0000066e 
+ 00030794  0x0000831e branch  0x00007841 , 0x00000034 
+ 00030795  0x0000831f rtn 
+ 00030796  0x00008322 call  0x00007825 
+ 00030797  0x00008323 arg  0x000044db , 0x00000011 
+ 00030798  0x00008324 call  0x00007d97 
+ 00030799  0x00008325 copy  0x0000003f , 0x00000002 
+ 00030800  0x00008326 call  0x00007829 
+ 00030801  0x00008327 bpatch  0x000000f9 , 0x0000401f 
+ 00030802  0x00008328 copy  0x00000002 , 0x0000003f 
+ 00030803  0x00008329 rtn  0x00000034 
+ 00030804  0x0000832a beq  0x0000000d , 0x00007870 
+ 00030805  0x0000832b beq  0x0000000e , 0x00007876 
+ 00030806  0x0000832c beq  0x0000000f , 0x0000787b 
+ 00030807  0x0000832d beq  0x00000010 , 0x00007881 
+ 00030808  0x0000832e beq  0x00000013 , 0x0000788b 
+ 00030809  0x0000832f beq  0x00000014 , 0x0000788d 
+ 00030810  0x00008330 beq  0x00000015 , 0x0000788f 
+ 00030811  0x00008331 beq  0x00000016 , 0x00007899 
+ 00030812  0x00008332 beq  0x00000017 , 0x0000789c 
+ 00030813  0x00008333 beq  0x00000018 , 0x0000789e 
+ 00030814  0x00008334 beq  0x00000019 , 0x000078a1 
+ 00030815  0x00008336 store  0x00000001 , 0x0000066f 
+ 00030816  0x0000833a fetch  0x00000001 , 0x0000066f 
+ 00030817  0x0000833b bmark0  0x00000009 , 0x00007869 
+ 00030818  0x0000833c bpatch  0x000000fa , 0x0000401f 
+ 00030819  0x0000833d fetch  0x00000001 , 0x0000066f 
+ 00030820  0x0000833e beq  0x00000011 , 0x00007886 
+ 00030821  0x0000833f beq  0x0000001b , 0x000078a9 
+ 00030822  0x00008340 beq  0x00000012 , 0x0000788a 
+ 00030823  0x00008341 beq  0x0000001f , 0x00006ea3 
+ 00030824  0x00008342 rtn 
+ 00030825  0x00008345 store  0x00000001 , 0x0000066f 
+ 00030826  0x00008346 call  0x0000205d 
+ 00030827  0x00008347 branch  0x0000786e , 0x00000005 
+ 00030828  0x00008348 call  0x00002062 
+ 00030829  0x00008349 nrtn  0x00000005 
+ 00030830  0x0000834b jam  0x00000001 , 0x0000066e 
+ 00030831  0x0000834c branch  0x00007834 
+ 00030832  0x00008354 jam  0x00000001 , 0x00004388 
+ 00030833  0x00008355 jam  0x00000000 , 0x0000438b 
+ 00030834  0x00008356 fetch  0x00000002 , 0x000044e9 
+ 00030835  0x00008357 set1  0x0000000b , 0x0000003f 
+ 00030836  0x00008358 store  0x00000002 , 0x000044e9 
+ 00030837  0x00008359 rtn 
+ 00030838  0x0000835e fetch  0x00000002 , 0x000044e9 
+ 00030839  0x0000835f set0  0x0000000b , 0x0000003f 
+ 00030840  0x00008360 store  0x00000002 , 0x000044e9 
+ 00030841  0x00008361 jam  0x00000000 , 0x00004388 
+ 00030842  0x00008362 rtn 
+ 00030843  0x00008367 jam  0x00000001 , 0x00004388 
+ 00030844  0x00008368 jam  0x00000001 , 0x0000438b 
+ 00030845  0x00008369 fetch  0x00000002 , 0x000044e9 
+ 00030846  0x0000836a set1  0x0000000b , 0x0000003f 
+ 00030847  0x0000836b store  0x00000002 , 0x000044e9 
+ 00030848  0x0000836c rtn 
+ 00030849  0x00008371 fetch  0x00000002 , 0x000044e9 
+ 00030850  0x00008372 set0  0x0000000b , 0x0000003f 
+ 00030851  0x00008373 store  0x00000002 , 0x000044e9 
+ 00030852  0x00008374 jam  0x00000000 , 0x00004388 
+ 00030853  0x00008375 rtn 
+ 00030854  0x0000837a setarg  0x00000014 
+ 00030855  0x0000837b store  0x00000002 , 0x00000196 
+ 00030856  0x0000837c store  0x00000002 , 0x000042f5 
+ 00030857  0x0000837d branch  0x000030c5 
+ 00030858  0x00008382 branch  0x00002e93 
+ 00030859  0x00008387 arg  0x00000000 , 0x00000011 
+ 00030860  0x00008388 branch  0x000077bf 
+ 00030861  0x0000838d arg  0x00000000 , 0x00000011 
+ 00030862  0x0000838e branch  0x000077ba 
+ 00030863  0x00008393 arg  0x00000000 , 0x00000011 
+ 00030864  0x00008394 call  0x000077a7 
+ 00030865  0x00008395 ifetch  0x00000001 , 0x00000012 
+ 00030866  0x00008396 beq  0x00000001 , 0x00007896 
+ 00030867  0x00008397 beq  0x00000004 , 0x00007896 
+ 00030868  0x00008398 beq  0x00000005 , 0x00007896 
+ 00030869  0x00008399 branch  0x000077c4 
+ 00030870  0x0000839c ifetch  0x00000001 , 0x00000006 
+ 00030871  0x0000839d rtneq  0x000000ff 
+ 00030872  0x0000839e branch  0x000077c4 
+ 00030873  0x000083a3 jam  0x00000001 , 0x00004343 
+ 00030874  0x000083a4 jam  0x0000001b , 0x00004114 
+ 00030875  0x000083a7 rtn 
+ 00030876  0x000083ac jam  0x00000001 , 0x00004343 
+ 00030877  0x000083ad rtn 
+ 00030878  0x000083b2 jam  0x00000000 , 0x00004343 
+ 00030879  0x000083b3 jam  0x00000000 , 0x00004114 
+ 00030880  0x000083b4 rtn 
+ 00030881  0x000083b9 fetch  0x00000002 , 0x000043d5 
+ 00030882  0x000083ba call  0x00007d79 
+ 00030883  0x000083bb fetch  0x00000001 , 0x000044ec 
+ 00030884  0x000083bc beq  0x000000ff , 0x000078a7 
+ 00030885  0x000083bd copy  0x0000003f , 0x00000002 
+ 00030886  0x000083be call  0x00006edd 
+ 00030887  0x000083c0 call  0x0000783d 
+ 00030888  0x000083c1 branch  0x00002417 
+ 00030889  0x000083c6 branch  0x00002ed5 
+ 00030890  0x000083cc fetch  0x00000001 , 0x000044e9 
+ 00030891  0x000083cd rtnbit0  0x0000000c 
+ 00030892  0x000083ce rtn 
+ 00030893  0x000083d4 fetch  0x00000002 , 0x000043fb 
+ 00030894  0x000083d5 add  0x0000003f , 0x00000002 , 0x00000005 
+ 00030895  0x000083d6 setarg  0x00000000 
+ 00030896  0x000083d7 istore  0x00000003 , 0x00000005 
+ 00030897  0x000083d8 rtn 
+ 00030898  0x000083dd bpatch  0x000000fb , 0x0000401f 
+ 00030899  0x000083de call  0x00007dbc 
+ 00030900  0x000083df call  0x000078fe 
+ 00030901  0x000083e0 rtn  0x00000034 
+ 00030902  0x000083e1 fetch  0x00000002 , 0x000043fb 
+ 00030903  0x000083e2 add  0x0000003f , 0x00000002 , 0x00000012 
+ 00030904  0x000083e3 ifetcht  0x00000001 , 0x00000012 
+ 00030905  0x000083e4 increase  0x00000001 , 0x00000002 
+ 00030906  0x000083e5 istoret  0x00000001 , 0x00000012 
+ 00030907  0x000083e7 ifetcht  0x00000001 , 0x0000003f 
+ 00030908  0x000083e8 copy  0x00000002 , 0x00000039 
+ 00030909  0x000083e9 add  0x0000003f , 0x00000004 , 0x00000012 
+ 00030910  0x000083ea ifetch  0x00000001 , 0x00000012 
+ 00030911  0x000083eb imul32  0x00000002 , 0x0000003f 
+ 00030912  0x000083ec iadd  0x00000006 , 0x00000005 
+ 00030913  0x000083ed copy  0x00000011 , 0x00000006 
+ 00030914  0x000083ef call  0x00007cda 
+ 00030915  0x000083f0 call  0x00007902 
+ 00030916  0x000083f1 pincrease  0xffffffff 
+ 00030917  0x000083f2 ifetcht  0x00000001 , 0x00000012 
+ 00030918  0x000083f3 increase  0x00000001 , 0x00000002 
+ 00030919  0x000083f4 iand  0x00000002 , 0x00000002 
+ 00030920  0x000083f5 istoret  0x00000001 , 0x00000012 
+ 00030921  0x000083f6 branch  0x00007dba 
+ 00030922  0x000083fc bpatch  0x000000fc , 0x0000401f 
+ 00030923  0x000083fd call  0x00007dbc 
+ 00030924  0x000083fe call  0x000078fa 
+ 00030925  0x000083ff rtn  0x00000034 
+ 00030926  0x00008400 fetch  0x00000002 , 0x000043fb 
+ 00030927  0x00008401 add  0x0000003f , 0x00000002 , 0x00000012 
+ 00030928  0x00008402 ifetcht  0x00000001 , 0x00000012 
+ 00030929  0x00008403 increase  0xffffffff , 0x00000002 
+ 00030930  0x00008404 istoret  0x00000001 , 0x00000012 
+ 00030931  0x00008405 ifetcht  0x00000001 , 0x0000003f 
+ 00030932  0x00008406 copy  0x00000002 , 0x00000039 
+ 00030933  0x00008407 add  0x0000003f , 0x00000003 , 0x00000012 
+ 00030934  0x00008408 ifetch  0x00000001 , 0x00000012 
+ 00030935  0x00008409 imul32  0x00000002 , 0x0000003f 
+ 00030936  0x0000840a iadd  0x00000006 , 0x00000006 
+ 00030937  0x0000840b increase  0x00000001 , 0x00000006 
+ 00030938  0x0000840c copy  0x00000011 , 0x00000005 
+ 00030939  0x0000840d branch  0x000078c2 
+ 00030940  0x00008415 call  0x00007dbc 
+ 00030941  0x00008416 call  0x000078fa 
+ 00030942  0x00008417 rtn  0x00000034 
+ 00030943  0x00008418 fetch  0x00000002 , 0x000043fb 
+ 00030944  0x00008419 ifetcht  0x00000001 , 0x0000003f 
+ 00030945  0x0000841a copy  0x00000002 , 0x00000039 
+ 00030946  0x0000841b add  0x0000003f , 0x00000003 , 0x00000012 
+ 00030947  0x0000841c ifetch  0x00000001 , 0x00000012 
+ 00030948  0x0000841d imul32  0x00000002 , 0x0000003f 
+ 00030949  0x0000841e iadd  0x00000006 , 0x00000006 
+ 00030950  0x0000841f increase  0x00000001 , 0x00000006 
+ 00030951  0x00008420 copy  0x00000006 , 0x00000012 
+ 00030952  0x00008421 copy  0x00000011 , 0x00000005 
+ 00030953  0x00008422 call  0x00007cda 
+ 00030954  0x00008423 branch  0x00007dba 
+ 00030955  0x00008426 call  0x00007dbc 
+ 00030956  0x00008427 call  0x000078fa 
+ 00030957  0x00008428 rtn  0x00000034 
+ 00030958  0x00008429 fetch  0x00000002 , 0x000043fb 
+ 00030959  0x0000842a ifetcht  0x00000001 , 0x0000003f 
+ 00030960  0x0000842b copy  0x00000002 , 0x00000039 
+ 00030961  0x0000842c add  0x0000003f , 0x00000003 , 0x00000012 
+ 00030962  0x0000842d ifetch  0x00000001 , 0x00000012 
+ 00030963  0x0000842e imul32  0x00000002 , 0x0000003f 
+ 00030964  0x0000842f iadd  0x00000006 , 0x00000006 
+ 00030965  0x00008430 add  0x00000006 , 0x00000002 , 0x00000005 
+ 00030966  0x00008431 copy  0x00000011 , 0x00000006 
+ 00030967  0x00008432 increase  0xffffffff , 0x00000039 
+ 00030968  0x00008433 call  0x00007cda 
+ 00030969  0x00008434 branch  0x00007dba 
+ 00030970  0x00008438 fetch  0x00000002 , 0x000043fb 
+ 00030971  0x00008439 add  0x0000003f , 0x00000002 , 0x00000006 
+ 00030972  0x0000843a ifetch  0x00000001 , 0x00000006 
+ 00030973  0x0000843b rtn 
+ 00030974  0x0000843f call  0x00007902 
+ 00030975  0x00008440 ifetcht  0x00000001 , 0x00000006 
+ 00030976  0x00008441 isub  0x00000002 , 0x0000003f 
+ 00030977  0x00008442 rtn 
+ 00030978  0x00008446 fetch  0x00000002 , 0x000043fb 
+ 00030979  0x00008447 add  0x0000003f , 0x00000001 , 0x00000006 
+ 00030980  0x00008448 ifetch  0x00000001 , 0x00000006 
+ 00030981  0x00008449 rtn 
+ 00030982  0x00008452 bpatch  0x000000fd , 0x0000401f 
+ 00030983  0x00008453 fetch  0x00000001 , 0x00008c22 
+ 00030984  0x00008454 isolate1  0x00000003 , 0x0000003f 
+ 00030985  0x00008455 call  0x00007915 , 0x00000001 
+ 00030986  0x00008456 fetch  0x00000002 , 0x00008c22 
+ 00030987  0x00008457 store  0x00000002 , 0x00008c22 
+ 00030988  0x00008458 store  0x00000002 , 0x00000709 
+ 00030989  0x00008459 call  0x00007973 
+ 00030990  0x0000845a call  0x000079a2 
+ 00030991  0x0000845b call  0x00007b96 
+ 00030992  0x0000845c call  0x00007bdf 
+ 00030993  0x0000845d branch  0x0000796b 
+ 00030994  0x00008460 bpatch  0x000000fe , 0x0000401f 
+ 00030995  0x00008461 call  0x00007396 
+ 00030996  0x00008462 call  0x00007932 
+ 00030997  0x00008464 jam  0x00000000 , 0x00008c00 
+ 00030998  0x00008465 nop  0x00002710 
+ 00030999  0x00008466 jam  0x00000000 , 0x00008c12 
+ 00031000  0x00008467 fetch  0x00000002 , 0x00008050 
+ 00031001  0x00008468 set0  0x0000000a , 0x0000003f 
+ 00031002  0x00008469 store  0x00000002 , 0x00008050 
+ 00031003  0x0000846a jam  0x00000021 , 0x00008c10 
+ 00031004  0x0000846b jam  0x0000009d , 0x00008c11 
+ 00031005  0x0000846c jam  0x0000003c , 0x00008c00 
+ 00031006  0x0000846d setarg  0x00000763 
+ 00031007  0x0000846e store  0x00000002 , 0x00008c02 
+ 00031008  0x0000846f store  0x00000002 , 0x00008c06 
+ 00031009  0x00008470 setarg  0x000007a3 
+ 00031010  0x00008471 store  0x00000002 , 0x00008c04 
+ 00031011  0x00008472 jam  0x00000080 , 0x00008c12 
+ 00031012  0x00008473 jam  0x00000000 , 0x00008c01 
+ 00031013  0x00008474 jam  0x000000ff , 0x00008c22 
+ 00031014  0x00008475 setarg  0x0000095f 
+ 00031015  0x00008476 arg  0x0000086d , 0x00000005 
+ 00031016  0x00008477 isub  0x00000005 , 0x00000039 
+ 00031017  0x00008478 branch  0x00007ca1 
+ 00031018  0x0000847b fetcht  0x00000001 , 0x0000086c 
+ 00031019  0x0000847c branch  0x00006edd 
+ 00031020  0x0000847e fetch  0x00000001 , 0x0000090e 
+ 00031021  0x0000847f rtn  0x00000034 
+ 00031022  0x00008480 fetcht  0x00000001 , 0x0000086c 
+ 00031023  0x00008481 call  0x00006ee6 
+ 00031024  0x00008482 branch  0x00007915 , 0x00000001 
+ 00031025  0x00008483 rtn 
+ 00031026  0x00008486 jam  0x00000002 , 0x0000086b 
+ 00031027  0x00008487 setarg  0x00000000 
+ 00031028  0x00008488 store  0x00000001 , 0x000007a6 
+ 00031029  0x00008489 store  0x00000002 , 0x00000865 
+ 00031030  0x0000848a pincrease  0x00000001 
+ 00031031  0x0000848b store  0x00000002 , 0x00000867 
+ 00031032  0x0000848c pincrease  0x00000001 
+ 00031033  0x0000848d store  0x00000002 , 0x00000869 
+ 00031034  0x0000848e arg  0x000007fa , 0x00000005 
+ 00031035  0x0000848f setarg  0x00030404 
+ 00031036  0x00008490 istore  0x00000003 , 0x00000005 
+ 00031037  0x00008491 setarg  0x00000409 
+ 00031038  0x00008492 istore  0x00000002 , 0x00000005 
+ 00031039  0x00008493 arg  0x000007ff , 0x00000005 
+ 00031040  0x00008494 setsect  0x00000000 , 0x00015906 
+ 00031041  0x00008495 setsect  0x00000001 , 0x000210d2 
+ 00031042  0x00008496 setsect  0x00000002 , 0x00010494 
+ 00031043  0x00008497 setsect  0x00000003 , 0x00000001 
+ 00031044  0x00008498 istore  0x00000009 , 0x00000005 
+ 00031045  0x00008499 arg  0x0000081d , 0x00000005 
+ 00031046  0x0000849a setsect  0x00000000 , 0x0001570f 
+ 00031047  0x0000849b setsect  0x00000001 , 0x00015c9a 
+ 00031048  0x0000849c setsect  0x00000002 , 0x000256c6 
+ 00031049  0x0000849d setsect  0x00000003 , 0x0001cdcd 
+ 00031050  0x0000849e istore  0x00000009 , 0x00000005 
+ 00031051  0x0000849f setsect  0x00000000 , 0x00014420 
+ 00031052  0x000084a0 setsect  0x00000001 , 0x00025d99 
+ 00031053  0x000084a1 setsect  0x00000002 , 0x00025636 
+ 00031054  0x000084a2 setsect  0x00000003 , 0x00000001 
+ 00031055  0x000084a3 istore  0x00000007 , 0x00000005 
+ 00031056  0x000084a4 arg  0x0000083b , 0x00000005 
+ 00031057  0x000084a5 setsect  0x00000000 , 0x0001620a 
+ 00031058  0x000084a6 setsect  0x00000001 , 0x00000c8c 
+ 00031059  0x000084a7 setsect  0x00000002 , 0x00030333 
+ 00031060  0x000084a8 setsect  0x00000003 , 0x0000c0c0 
+ 00031061  0x000084a9 istore  0x00000009 , 0x00000005 
+ 00031062  0x000084aa setsect  0x00000000 , 0x00003130 
+ 00031063  0x000084ab istore  0x00000002 , 0x00000005 
+ 00031064  0x000084ac setarg  0x00009272 
+ 00031065  0x000084ad store  0x00000002 , 0x000007a7 
+ 00031066  0x000084ae setarg  0x000092cd 
+ 00031067  0x000084af store  0x00000002 , 0x000007a9 
+ 00031068  0x000084b0 arg  0x00009371 , 0x00000006 
+ 00031069  0x000084b1 arg  0x000007ab , 0x00000005 
+ 00031070  0x000084b2 arg  0x00000013 , 0x00000039 
+ 00031071  0x000084b3 call  0x00007cda 
+ 00031072  0x000084b4 arg  0x00009384 , 0x00000006 
+ 00031073  0x000084b5 arg  0x000007be , 0x00000005 
+ 00031074  0x000084b6 arg  0x0000003c , 0x00000039 
+ 00031075  0x000084b7 call  0x00007cda 
+ 00031076  0x000084b9 fetch  0x00000002 , 0x00000859 
+ 00031077  0x000084ba branch  0x00007d79 
+ 00031078  0x000084bd fetch  0x00000001 , 0x0000085b 
+ 00031079  0x000084be rtn  0x00000034 
+ 00031080  0x000084bf store  0x00000001 , 0x000007e0 
+ 00031081  0x000084c0 store  0x00000001 , 0x000007f9 
+ 00031082  0x000084c1 rtn 
+ 00031083  0x000084c4 arg  0x00000001 , 0x00000007 
+ 00031084  0x000084c5 call  0x00007cef 
+ 00031085  0x000084c6 nrtn  0x00000034 
+ 00031086  0x000084c7 fetch  0x00000001 , 0x0000090f 
+ 00031087  0x000084c8 nrtn  0x00000034 
+ 00031088  0x000084c9 fetch  0x00000001 , 0x0000090e 
+ 00031089  0x000084ca ncall  0x00007c38 , 0x00000034 
+ 00031090  0x000084cb rtn 
+ 00031091  0x000084ce fetch  0x00000001 , 0x00000709 
+ 00031092  0x000084cf bbit1  0x00000002 , 0x00007976 
+ 00031093  0x000084d0 rtn 
+ 00031094  0x000084d3 call  0x0000797b 
+ 00031095  0x000084d4 call  0x00007cee 
+ 00031096  0x000084d5 setarg  0x00000280 
+ 00031097  0x000084d6 arg  0x00000001 , 0x00000007 
+ 00031098  0x000084d7 branch  0x00007ce1 
+ 00031099  0x000084da fetch  0x00000001 , 0x00000900 
+ 00031100  0x000084db bne  0x00000002 , 0x00007980 
+ 00031101  0x000084dc jam  0x00000000 , 0x0000090f 
+ 00031102  0x000084dd jam  0x00000000 , 0x00000910 
+ 00031103  0x000084de rtn 
+ 00031104  0x000084e1 fetch  0x00000001 , 0x00000912 
+ 00031105  0x000084e2 rtn  0x00000034 
+ 00031106  0x000084e3 jam  0x00000000 , 0x00000912 
+ 00031107  0x000084e4 jam  0x00000002 , 0x00000900 
+ 00031108  0x000084e5 jam  0x00000001 , 0x0000090e 
+ 00031109  0x000084e6 rtn 
+ 00031110  0x000084e9 fetch  0x00000001 , 0x00000709 
+ 00031111  0x000084ea bbit1  0x00000000 , 0x000079af 
+ 00031112  0x000084eb rtn 
+ 00031113  0x000084ee fetchr  0x0000000a , 0x00000002 , 0x00008c02 
+ 00031114  0x000084ef fetchr  0x00000010 , 0x00000002 , 0x00008c04 
+ 00031115  0x000084f0 fetchr  0x00000003 , 0x00000002 , 0x00008c06 
+ 00031116  0x000084f1 ifetch  0x00000002 , 0x00000003 
+ 00031117  0x000084f2 rshift8  0x0000003f , 0x00000002 
+ 00031118  0x000084f3 rshift4  0x00000002 , 0x00000002 
+ 00031119  0x000084f4 arg  0x00000fff , 0x00000006 
+ 00031120  0x000084f5 iand  0x00000006 , 0x00000039 
+ 00031121  0x000084f6 storer  0x00000039 , 0x00000002 , 0x0000070c 
+ 00031122  0x000084f7 rtn 
+ 00031123  0x000084fb call  0x00007989 
+ 00031124  0x000084fd ifetch  0x00000001 , 0x00000003 
+ 00031125  0x000084fe istore  0x00000001 , 0x00000005 
+ 00031126  0x000084ff loop  0x00007994 
+ 00031127  0x00008500 storer  0x00000003 , 0x00000002 , 0x00008c06 
+ 00031128  0x00008501 rtn 
+ 00031129  0x00008504 arg  0x0000095f , 0x00000005 
+ 00031130  0x00008505 call  0x00007994 
+ 00031131  0x00008506 arg  0x00000963 , 0x00000002 
+ 00031132  0x00008507 storet  0x00000002 , 0x00008c0e 
+ 00031133  0x00008508 fetch  0x00000001 , 0x00000960 
+ 00031134  0x00008509 pincrease  0x00000006 
+ 00031135  0x0000850a istore  0x00000001 , 0x00000002 
+ 00031136  0x0000850b jam  0x00000008 , 0x00008c18 
+ 00031137  0x0000850c rtn 
+ 00031138  0x00008510 bpatch  0x000000ff , 0x0000401f 
+ 00031139  0x00008511 fetch  0x00000001 , 0x00000709 
+ 00031140  0x00008512 rtnbit0  0x00000005 
+ 00031141  0x00008513 call  0x00007989 
+ 00031142  0x00008514 compare  0x0000000d , 0x00000002 , 0x000000ff 
+ 00031143  0x00008515 branch  0x00007999 , 0x00000001 
+ 00031144  0x00008516 arg  0x0000086d , 0x00000005 
+ 00031145  0x00008517 call  0x00007994 
+ 00031146  0x00008518 fetch  0x00000001 , 0x0000070c 
+ 00031147  0x00008519 beq  0x00000000 , 0x00007986 
+ 00031148  0x0000851a beq  0x00000001 , 0x000079b6 
+ 00031149  0x0000851b sub  0x0000003f , 0x00000007 , 0x0000003e 
+ 00031150  0x0000851c rtn  0x00000002 
+ 00031151  0x0000851e bpatchx  0x00000000 , 0x00004020 
+ 00031152  0x0000851f set0  0x00000023 , 0x00000000 
+ 00031153  0x00008520 fetch  0x00000001 , 0x0000086d 
+ 00031154  0x00008521 and_into  0x00000080 , 0x0000003f 
+ 00031155  0x00008522 beq  0x00000080 , 0x000079ba 
+ 00031156  0x00008523 beq  0x00000000 , 0x000079c2 
+ 00031157  0x00008524 branch  0x0000235a 
+ 00031158  0x00008527 fetch  0x00000001 , 0x0000086d 
+ 00031159  0x00008528 rtnbit1  0x00000007 
+ 00031160  0x00008529 call  0x00007b6a 
+ 00031161  0x0000852a branch  0x000079e9 
+ 00031162  0x0000852e fetch  0x00000001 , 0x0000086d 
+ 00031163  0x0000852f rshift4  0x0000003f , 0x0000003f 
+ 00031164  0x00008530 rshift  0x0000003f , 0x0000003f 
+ 00031165  0x00008531 and_into  0x00000003 , 0x0000003f 
+ 00031166  0x00008532 beq  0x00000000 , 0x000079ca 
+ 00031167  0x00008533 beq  0x00000001 , 0x000079d0 
+ 00031168  0x00008534 beq  0x00000002 , 0x000079d5 
+ 00031169  0x00008535 branch  0x0000235a 
+ 00031170  0x00008538 fetch  0x00000001 , 0x0000086d 
+ 00031171  0x00008539 rshift4  0x0000003f , 0x0000003f 
+ 00031172  0x0000853a rshift  0x0000003f , 0x0000003f 
+ 00031173  0x0000853b and_into  0x00000003 , 0x0000003f 
+ 00031174  0x0000853c beq  0x00000000 , 0x000079d6 
+ 00031175  0x0000853d beq  0x00000001 , 0x000079de 
+ 00031176  0x0000853e beq  0x00000002 , 0x000079e3 
+ 00031177  0x0000853f branch  0x0000235a 
+ 00031178  0x00008542 fetch  0x00000001 , 0x0000086e 
+ 00031179  0x00008543 beq  0x00000008 , 0x000079eb 
+ 00031180  0x00008544 beq  0x00000006 , 0x00007a01 
+ 00031181  0x00008545 beq  0x0000000a , 0x00007a46 
+ 00031182  0x00008546 beq  0x00000000 , 0x00007a58 
+ 00031183  0x00008547 branch  0x000079e4 
+ 00031184  0x0000854a fetch  0x00000001 , 0x0000086e 
+ 00031185  0x0000854b beq  0x00000002 , 0x00007a8d 
+ 00031186  0x0000854c beq  0x00000001 , 0x00007a91 
+ 00031187  0x0000854d beq  0x00000003 , 0x00007aa2 
+ 00031188  0x0000854e branch  0x000079e4 
+ 00031189  0x00008551 branch  0x000079e4 
+ 00031190  0x00008554 fetch  0x00000001 , 0x0000086e 
+ 00031191  0x00008555 beq  0x00000001 , 0x00007aac 
+ 00031192  0x00008556 beq  0x00000003 , 0x00007adb 
+ 00031193  0x00008557 beq  0x00000005 , 0x00007b06 
+ 00031194  0x00008558 beq  0x00000009 , 0x00007b1f 
+ 00031195  0x00008559 beq  0x0000000b , 0x00007b3a 
+ 00031196  0x0000855a beq  0x00000007 , 0x000079e4 
+ 00031197  0x0000855b branch  0x000079e4 
+ 00031198  0x0000855e fetch  0x00000001 , 0x0000086e 
+ 00031199  0x0000855f beq  0x0000000a , 0x00007b4b 
+ 00031200  0x00008560 beq  0x00000009 , 0x00007b5d 
+ 00031201  0x00008561 beq  0x0000000b , 0x00007b7c 
+ 00031202  0x00008562 branch  0x000079e4 
+ 00031203  0x00008565 branch  0x000079e4 
+ 00031204  0x00008568 bpatchx  0x00000001 , 0x00004020 
+ 00031205  0x00008569 fetch  0x00000001 , 0x00008c19 
+ 00031206  0x0000856a set1  0x00000000 , 0x0000003f 
+ 00031207  0x0000856b store  0x00000001 , 0x00008c19 
+ 00031208  0x0000856c branch  0x000079e9 
+ 00031209  0x0000856f jam  0x00000001 , 0x00008c1b 
+ 00031210  0x00008570 rtn 
+ 00031211  0x00008573 fetch  0x00000001 , 0x0000086d 
+ 00031212  0x00008574 bne  0x00000080 , 0x000079e4 
+ 00031213  0x00008575 fetch  0x00000001 , 0x00000871 
+ 00031214  0x00008576 bne  0x00000000 , 0x000079e4 
+ 00031215  0x00008577 fetch  0x00000001 , 0x00000872 
+ 00031216  0x00008578 bne  0x00000000 , 0x000079e4 
+ 00031217  0x00008579 fetch  0x00000001 , 0x00000873 
+ 00031218  0x0000857a bne  0x00000001 , 0x000079e4 
+ 00031219  0x0000857b fetch  0x00000001 , 0x00000874 
+ 00031220  0x0000857c bne  0x00000000 , 0x000079e4 
+ 00031221  0x0000857d fetch  0x00000001 , 0x0000086f 
+ 00031222  0x0000857e bne  0x00000000 , 0x000079e4 
+ 00031223  0x0000857f fetch  0x00000001 , 0x00000870 
+ 00031224  0x00008580 bne  0x00000000 , 0x000079e4 
+ 00031225  0x00008581 fetch  0x00000001 , 0x0000086b 
+ 00031226  0x00008582 beq  0x00000004 , 0x000079fd 
+ 00031227  0x00008583 beq  0x00000003 , 0x000079ff 
+ 00031228  0x00008584 branch  0x000079e4 
+ 00031229  0x00008587 arg  0x00000001 , 0x00000012 
+ 00031230  0x00008588 branch  0x00007a72 
+ 00031231  0x0000858b arg  0x00000001 , 0x00000012 
+ 00031232  0x0000858c branch  0x00007a70 
+ 00031233  0x0000858f bpatchx  0x00000002 , 0x00004020 
+ 00031234  0x00008591 fetch  0x00000001 , 0x00000870 
+ 00031235  0x00008592 beq  0x00000001 , 0x00007a14 
+ 00031236  0x00008593 beq  0x00000002 , 0x00007a2d 
+ 00031237  0x00008594 beq  0x00000003 , 0x00007a30 
+ 00031238  0x00008595 beq  0x00000021 , 0x00007a09 
+ 00031239  0x00008596 beq  0x00000022 , 0x00007a3e 
+ 00031240  0x00008597 branch  0x000079e4 
+ 00031241  0x0000859a jam  0x00000000 , 0x000008fd 
+ 00031242  0x0000859b fetch  0x00000001 , 0x00000871 
+ 00031243  0x0000859c beq  0x00000000 , 0x00007a0e 
+ 00031244  0x0000859d beq  0x00000001 , 0x00007a11 
+ 00031245  0x0000859e branch  0x000079e4 
+ 00031246  0x000085a1 fetchr  0x00000012 , 0x00000001 , 0x000007d1 
+ 00031247  0x000085a2 arg  0x000007d1 , 0x00000011 
+ 00031248  0x000085a3 branch  0x00007b8b 
+ 00031249  0x000085a6 fetchr  0x00000012 , 0x00000001 , 0x000007ea 
+ 00031250  0x000085a7 arg  0x000007ea , 0x00000011 
+ 00031251  0x000085a8 branch  0x00007b8b 
+ 00031252  0x000085ae fetch  0x00000001 , 0x00000911 
+ 00031253  0x000085af ncall  0x00007a25 , 0x00000034 
+ 00031254  0x000085b0 setarg  0x000007ab 
+ 00031255  0x000085b1 fetcht  0x00000001 , 0x000007ab 
+ 00031256  0x000085b3 store  0x00000002 , 0x00000908 
+ 00031257  0x000085b4 storet  0x00000001 , 0x0000090a 
+ 00031258  0x000085b5 fetch  0x00000001 , 0x00000873 
+ 00031259  0x000085b6 isub  0x00000002 , 0x0000003e 
+ 00031260  0x000085b7 nbranch  0x00007a23 , 0x00000002 
+ 00031261  0x000085b9 fetch  0x00000001 , 0x0000090a 
+ 00031262  0x000085bb iforce  0x00000012 
+ 00031263  0x000085bc fetch  0x00000002 , 0x00000908 
+ 00031264  0x000085bd add  0x0000003f , 0x00000001 , 0x0000003f 
+ 00031265  0x000085be iforce  0x00000011 
+ 00031266  0x000085bf branch  0x00007b8b 
+ 00031267  0x000085c1 fetch  0x00000001 , 0x00000873 
+ 00031268  0x000085c2 branch  0x00007a1e 
+ 00031269  0x000085c5 fetch  0x00000001 , 0x00008c01 
+ 00031270  0x000085c6 ncall  0x00007a29 , 0x00000034 
+ 00031271  0x000085c7 jam  0x00000000 , 0x00000911 
+ 00031272  0x000085c8 rtn 
+ 00031273  0x000085ca fetch  0x00000001 , 0x00008c01 
+ 00031274  0x000085cb set1  0x00000007 , 0x0000003f 
+ 00031275  0x000085cc store  0x00000001 , 0x00008c01 
+ 00031276  0x000085cd rtn 
+ 00031277  0x000085d0 setarg  0x000007be 
+ 00031278  0x000085d1 fetcht  0x00000001 , 0x000007be 
+ 00031279  0x000085d2 branch  0x00007a18 
+ 00031280  0x000085d5 fetch  0x00000001 , 0x0000086f 
+ 00031281  0x000085d6 sub  0x0000003f , 0x00000003 , 0x0000003e 
+ 00031282  0x000085d7 nbranch  0x000079e4 , 0x00000002 
+ 00031283  0x000085d8 fetch  0x00000001 , 0x0000086f 
+ 00031284  0x000085d9 arg  0x000007fa , 0x00000011 
+ 00031285  0x000085da beq  0x00000000 , 0x00007b89 
+ 00031286  0x000085db set1  0x00000023 , 0x00000000 
+ 00031287  0x000085dc arg  0x000007ff , 0x00000011 
+ 00031288  0x000085dd beq  0x00000001 , 0x00007b89 
+ 00031289  0x000085de arg  0x0000081d , 0x00000011 
+ 00031290  0x000085df beq  0x00000002 , 0x00007b89 
+ 00031291  0x000085e0 arg  0x0000083b , 0x00000011 
+ 00031292  0x000085e1 beq  0x00000003 , 0x00007b89 
+ 00031293  0x000085e2 rtn 
+ 00031294  0x000085e5 fetch  0x00000002 , 0x00000871 
+ 00031295  0x000085e6 beq  0x00000001 , 0x00007a42 
+ 00031296  0x000085e7 fetchr  0x00000011 , 0x00000002 , 0x000007a7 
+ 00031297  0x000085e8 branch  0x00007b89 
+ 00031298  0x000085ea jam  0x00000001 , 0x0000090e 
+ 00031299  0x000085eb jam  0x00000001 , 0x00000900 
+ 00031300  0x000085ec fetchr  0x00000011 , 0x00000002 , 0x000007a9 
+ 00031301  0x000085ed branch  0x00007b89 
+ 00031302  0x000085f1 fetch  0x00000001 , 0x0000086b 
+ 00031303  0x000085f2 bne  0x00000004 , 0x000079e4 
+ 00031304  0x000085f3 fetch  0x00000001 , 0x0000086d 
+ 00031305  0x000085f4 bne  0x00000081 , 0x000079e4 
+ 00031306  0x000085f5 fetch  0x00000001 , 0x0000086f 
+ 00031307  0x000085f6 bne  0x00000000 , 0x000079e4 
+ 00031308  0x000085f7 fetch  0x00000001 , 0x00000870 
+ 00031309  0x000085f8 bne  0x00000000 , 0x000079e4 
+ 00031310  0x000085f9 fetch  0x00000001 , 0x00000873 
+ 00031311  0x000085fa bne  0x00000001 , 0x000079e4 
+ 00031312  0x000085fb fetch  0x00000001 , 0x00000874 
+ 00031313  0x000085fc bne  0x00000000 , 0x000079e4 
+ 00031314  0x000085fd fetch  0x00000001 , 0x00000871 
+ 00031315  0x000085fe bne  0x00000000 , 0x000079e4 
+ 00031316  0x000085ff fetch  0x00000001 , 0x00000872 
+ 00031317  0x00008600 bne  0x00000000 , 0x000079e4 
+ 00031318  0x00008601 arg  0x00000001 , 0x00000012 
+ 00031319  0x00008602 branch  0x00007a70 
+ 00031320  0x00008606 fetch  0x00000001 , 0x0000086b 
+ 00031321  0x00008607 beq  0x00000002 , 0x000079e4 
+ 00031322  0x00008608 fetch  0x00000001 , 0x0000086f 
+ 00031323  0x00008609 bne  0x00000000 , 0x000079e4 
+ 00031324  0x0000860a fetch  0x00000001 , 0x00000870 
+ 00031325  0x0000860b bne  0x00000000 , 0x000079e4 
+ 00031326  0x0000860c fetch  0x00000001 , 0x00000873 
+ 00031327  0x0000860d bne  0x00000002 , 0x000079e4 
+ 00031328  0x0000860e fetch  0x00000001 , 0x00000874 
+ 00031329  0x0000860f bne  0x00000000 , 0x000079e4 
+ 00031330  0x00008610 fetch  0x00000001 , 0x00000872 
+ 00031331  0x00008611 bne  0x00000000 , 0x000079e4 
+ 00031332  0x00008612 fetch  0x00000001 , 0x0000086d 
+ 00031333  0x00008613 beq  0x00000080 , 0x00007a6b 
+ 00031334  0x00008614 beq  0x00000081 , 0x00007a76 
+ 00031335  0x00008615 beq  0x00000082 , 0x00007a7a 
+ 00031336  0x00008616 branch  0x000079e4 
+ 00031337  0x0000861a jam  0x00000001 , 0x00000903 
+ 00031338  0x0000861b branch  0x00007a74 
+ 00031339  0x0000861e fetch  0x00000001 , 0x00000871 
+ 00031340  0x0000861f bne  0x00000000 , 0x000079e4 
+ 00031341  0x00008620 arg  0x00000002 , 0x00000012 
+ 00031342  0x00008621 fetch  0x00000001 , 0x00000901 
+ 00031343  0x00008622 beq  0x00000001 , 0x00007a69 
+ 00031344  0x00008625 arg  0x00000865 , 0x00000011 
+ 00031345  0x00008626 branch  0x00007b8b 
+ 00031346  0x00008628 arg  0x00000867 , 0x00000011 
+ 00031347  0x00008629 branch  0x00007b8b 
+ 00031348  0x0000862b arg  0x00000869 , 0x00000011 
+ 00031349  0x0000862c branch  0x00007b8b 
+ 00031350  0x0000862f fetch  0x00000001 , 0x0000086b 
+ 00031351  0x00008630 bne  0x00000004 , 0x000079e4 
+ 00031352  0x00008631 arg  0x00000002 , 0x00000012 
+ 00031353  0x00008632 branch  0x00007a70 
+ 00031354  0x00008635 fetch  0x00000001 , 0x0000086b 
+ 00031355  0x00008636 bne  0x00000004 , 0x000079e4 
+ 00031356  0x00008637 fetch  0x00000001 , 0x00000871 
+ 00031357  0x00008638 beq  0x00000081 , 0x00007a87 
+ 00031358  0x00008639 beq  0x00000082 , 0x00007a89 
+ 00031359  0x0000863a beq  0x00000083 , 0x00007a8b 
+ 00031360  0x0000863b and_into  0x0000007f , 0x0000003f 
+ 00031361  0x0000863c beq  0x00000000 , 0x00007a83 
+ 00031362  0x0000863d branch  0x000079e4 
+ 00031363  0x00008640 fetch  0x00000001 , 0x00000904 
+ 00031364  0x00008642 arg  0x00000002 , 0x00000012 
+ 00031365  0x00008643 beq  0x00000001 , 0x00007a72 
+ 00031366  0x00008644 branch  0x00007a70 
+ 00031367  0x00008646 fetch  0x00000001 , 0x00000905 
+ 00031368  0x00008647 branch  0x00007a84 
+ 00031369  0x00008649 fetch  0x00000001 , 0x00000906 
+ 00031370  0x0000864a branch  0x00007a84 
+ 00031371  0x0000864c fetch  0x00000001 , 0x00000907 
+ 00031372  0x0000864d branch  0x00007a84 
+ 00031373  0x00008650 jam  0x00000001 , 0x000008fb 
+ 00031374  0x00008651 arg  0x000008fc , 0x00000011 
+ 00031375  0x00008652 arg  0x00000001 , 0x00000012 
+ 00031376  0x00008653 branch  0x00007b8b 
+ 00031377  0x00008656 fetch  0x00000002 , 0x0000086f 
+ 00031378  0x00008657 arg  0x000001ba , 0x00000002 
+ 00031379  0x00008658 isub  0x00000002 , 0x0000003e 
+ 00031380  0x00008659 nbranch  0x000079e4 , 0x00000005 
+ 00031381  0x0000865c fetch  0x00000001 , 0x000008f8 
+ 00031382  0x0000865d nbranch  0x00007a9f , 0x00000034 
+ 00031383  0x0000865e jam  0x00000000 , 0x000008b5 
+ 00031384  0x00008660 fetch  0x00000001 , 0x00000873 
+ 00031385  0x00008661 iforce  0x00000012 
+ 00031386  0x00008662 arg  0x000008b5 , 0x00000011 
+ 00031387  0x00008663 call  0x00007b8b 
+ 00031388  0x00008665 arg  0x000008b5 , 0x00000005 
+ 00031389  0x00008666 arg  0x00000040 , 0x00000039 
+ 00031390  0x00008667 branch  0x00007ca3 
+ 00031391  0x00008669 jam  0x00000000 , 0x000008f8 
+ 00031392  0x0000866a jam  0x00000001 , 0x000008b5 
+ 00031393  0x0000866b branch  0x00007a98 
+ 00031394  0x0000866e fetch  0x00000001 , 0x00000873 
+ 00031395  0x0000866f bne  0x00000001 , 0x000079e4 
+ 00031396  0x00008670 jam  0x00000001 , 0x000008fd 
+ 00031397  0x00008671 arg  0x00000001 , 0x00000012 
+ 00031398  0x00008672 fetch  0x00000001 , 0x000008ff 
+ 00031399  0x00008673 beq  0x00000000 , 0x00007aaa 
+ 00031400  0x00008674 beq  0x00000001 , 0x00007aab 
+ 00031401  0x00008675 branch  0x00007a70 
+ 00031402  0x00008677 branch  0x00007a72 
+ 00031403  0x00008679 branch  0x00007a70 
+ 00031404  0x0000867f fetch  0x00000001 , 0x0000086b 
+ 00031405  0x00008680 bne  0x00000004 , 0x000079e4 
+ 00031406  0x00008681 fetch  0x00000001 , 0x00000873 
+ 00031407  0x00008682 bne  0x00000000 , 0x000079e4 
+ 00031408  0x00008683 fetch  0x00000001 , 0x00000874 
+ 00031409  0x00008684 bne  0x00000000 , 0x000079e4 
+ 00031410  0x00008685 fetch  0x00000001 , 0x00000870 
+ 00031411  0x00008686 bne  0x00000000 , 0x000079e4 
+ 00031412  0x00008687 fetch  0x00000001 , 0x00000872 
+ 00031413  0x00008688 bne  0x00000000 , 0x000079e4 
+ 00031414  0x00008689 fetch  0x00000001 , 0x0000086d 
+ 00031415  0x0000868a beq  0x00000000 , 0x00007abb 
+ 00031416  0x0000868b beq  0x00000001 , 0x00007ac8 
+ 00031417  0x0000868c beq  0x00000002 , 0x00007ac9 
+ 00031418  0x0000868d branch  0x000079e4 
+ 00031419  0x00008690 fetch  0x00000001 , 0x0000086f 
+ 00031420  0x00008691 bne  0x00000001 , 0x000079e4 
+ 00031421  0x00008692 fetch  0x00000001 , 0x00008c00 
+ 00031422  0x00008693 set0  0x00000007 , 0x0000003f 
+ 00031423  0x00008694 store  0x00000001 , 0x00008c00 
+ 00031424  0x00008695 jam  0x00000000 , 0x00000901 
+ 00031425  0x00008696 jam  0x00000001 , 0x00000902 
+ 00031426  0x00008697 fetch  0x00000001 , 0x00000903 
+ 00031427  0x00008698 branch  0x000079e9 , 0x00000034 
+ 00031428  0x00008699 jam  0x00000000 , 0x00000903 
+ 00031429  0x0000869a jam  0x00000000 , 0x00000902 
+ 00031430  0x0000869b jam  0x00000002 , 0x00000900 
+ 00031431  0x0000869c branch  0x000079e9 
+ 00031432  0x0000869f branch  0x000079e4 
+ 00031433  0x000086a2 fetch  0x00000001 , 0x0000086f 
+ 00031434  0x000086a3 bne  0x00000000 , 0x000079e4 
+ 00031435  0x000086a4 fetch  0x00000001 , 0x00000871 
+ 00031436  0x000086a5 beq  0x00000081 , 0x00007ad4 
+ 00031437  0x000086a6 beq  0x00000082 , 0x00007ad7 
+ 00031438  0x000086a7 beq  0x00000083 , 0x00007ad9 
+ 00031439  0x000086a8 and_into  0x0000007f , 0x0000003f 
+ 00031440  0x000086a9 beq  0x00000000 , 0x00007ad2 
+ 00031441  0x000086aa branch  0x000079e4 
+ 00031442  0x000086ad jam  0x00000000 , 0x00000904 
+ 00031443  0x000086ae branch  0x000079e9 
+ 00031444  0x000086b0 jam  0x00000000 , 0x00000905 
+ 00031445  0x000086b2 jam  0x00000001 , 0x00000912 
+ 00031446  0x000086b3 branch  0x000079e9 
+ 00031447  0x000086b5 jam  0x00000000 , 0x00000906 
+ 00031448  0x000086b6 branch  0x00007ad5 
+ 00031449  0x000086b8 jam  0x00000000 , 0x00000907 
+ 00031450  0x000086b9 branch  0x00007ad5 
+ 00031451  0x000086bd fetch  0x00000001 , 0x00000873 
+ 00031452  0x000086be bne  0x00000000 , 0x000079e4 
+ 00031453  0x000086bf fetch  0x00000001 , 0x00000874 
+ 00031454  0x000086c0 bne  0x00000000 , 0x000079e4 
+ 00031455  0x000086c1 fetch  0x00000001 , 0x0000086d 
+ 00031456  0x000086c2 beq  0x00000000 , 0x00007ae4 
+ 00031457  0x000086c3 beq  0x00000001 , 0x00007af2 
+ 00031458  0x000086c4 beq  0x00000002 , 0x00007af3 
+ 00031459  0x000086c5 branch  0x000079e4 
+ 00031460  0x000086c8 fetch  0x00000001 , 0x0000086f 
+ 00031461  0x000086c9 bne  0x00000001 , 0x000079e4 
+ 00031462  0x000086ca call  0x000048b1 
+ 00031463  0x000086cb fetch  0x00000001 , 0x00008c00 
+ 00031464  0x000086cc set1  0x00000007 , 0x0000003f 
+ 00031465  0x000086cd store  0x00000001 , 0x00008c00 
+ 00031466  0x000086ce jam  0x00000001 , 0x00000901 
+ 00031467  0x000086cf jam  0x00000003 , 0x00000900 
+ 00031468  0x000086d0 jam  0x00000000 , 0x000008f9 
+ 00031469  0x000086d1 call  0x000079e9 
+ 00031470  0x000086d3 call  0x00007cee 
+ 00031471  0x000086d4 setarg  0x00001388 
+ 00031472  0x000086d5 arg  0x0000000f , 0x00000007 
+ 00031473  0x000086d6 branch  0x00007ce1 
+ 00031474  0x000086d9 branch  0x000079e4 
+ 00031475  0x000086dc fetch  0x00000001 , 0x0000086f 
+ 00031476  0x000086dd bne  0x00000000 , 0x000079e4 
+ 00031477  0x000086de fetch  0x00000001 , 0x00000870 
+ 00031478  0x000086df bne  0x00000000 , 0x000079e4 
+ 00031479  0x000086e0 fetch  0x00000001 , 0x00000871 
+ 00031480  0x000086e1 beq  0x00000081 , 0x00007b00 
+ 00031481  0x000086e2 beq  0x00000082 , 0x00007b02 
+ 00031482  0x000086e3 beq  0x00000083 , 0x00007b04 
+ 00031483  0x000086e4 and_into  0x0000007f , 0x0000003f 
+ 00031484  0x000086e5 beq  0x00000000 , 0x00007afe 
+ 00031485  0x000086e6 branch  0x000079e4 
+ 00031486  0x000086e9 jam  0x00000001 , 0x00000904 
+ 00031487  0x000086ea branch  0x000079e9 
+ 00031488  0x000086ec jam  0x00000001 , 0x00000905 
+ 00031489  0x000086ed branch  0x000079e9 
+ 00031490  0x000086ef jam  0x00000001 , 0x00000906 
+ 00031491  0x000086f0 branch  0x000079e9 
+ 00031492  0x000086f2 jam  0x00000001 , 0x00000907 
+ 00031493  0x000086f3 branch  0x000079e9 
+ 00031494  0x000086f7 fetch  0x00000001 , 0x0000086d 
+ 00031495  0x000086f8 bne  0x00000000 , 0x000079e4 
+ 00031496  0x000086f9 fetch  0x00000001 , 0x00000871 
+ 00031497  0x000086fa bne  0x00000000 , 0x000079e4 
+ 00031498  0x000086fb fetch  0x00000001 , 0x00000872 
+ 00031499  0x000086fc bne  0x00000000 , 0x000079e4 
+ 00031500  0x000086fd fetch  0x00000001 , 0x00000873 
+ 00031501  0x000086fe bne  0x00000000 , 0x000079e4 
+ 00031502  0x000086ff fetch  0x00000001 , 0x00000874 
+ 00031503  0x00008700 bne  0x00000000 , 0x000079e4 
+ 00031504  0x00008701 fetch  0x00000001 , 0x00000870 
+ 00031505  0x00008702 bne  0x00000000 , 0x000079e4 
+ 00031506  0x00008703 fetch  0x00000001 , 0x0000086f 
+ 00031507  0x00008704 and_into  0x00000080 , 0x0000003f 
+ 00031508  0x00008705 bne  0x00000000 , 0x000079e4 
+ 00031509  0x00008706 fetch  0x00000001 , 0x0000086f 
+ 00031510  0x00008707 bne  0x00000000 , 0x00007b1d 
+ 00031511  0x00008709 jam  0x00000002 , 0x0000086b 
+ 00031512  0x0000870b fetch  0x00000001 , 0x0000086f 
+ 00031513  0x0000870c store  0x00000001 , 0x00008c01 
+ 00031514  0x0000870d call  0x000079e9 
+ 00031515  0x0000870e jam  0x00000001 , 0x00000911 
+ 00031516  0x0000870f rtn 
+ 00031517  0x00008711 jam  0x00000003 , 0x0000086b 
+ 00031518  0x00008712 branch  0x00007b18 
+ 00031519  0x00008716 fetch  0x00000001 , 0x0000086b 
+ 00031520  0x00008717 beq  0x00000002 , 0x000079e4 
+ 00031521  0x00008718 fetch  0x00000001 , 0x0000086d 
+ 00031522  0x00008719 bne  0x00000000 , 0x000079e4 
+ 00031523  0x0000871a fetch  0x00000001 , 0x00000871 
+ 00031524  0x0000871b bne  0x00000000 , 0x000079e4 
+ 00031525  0x0000871c fetch  0x00000001 , 0x00000872 
+ 00031526  0x0000871d bne  0x00000000 , 0x000079e4 
+ 00031527  0x0000871e fetch  0x00000001 , 0x00000873 
+ 00031528  0x0000871f bne  0x00000000 , 0x000079e4 
+ 00031529  0x00008720 fetch  0x00000001 , 0x00000874 
+ 00031530  0x00008721 bne  0x00000000 , 0x000079e4 
+ 00031531  0x00008722 fetch  0x00000001 , 0x00000870 
+ 00031532  0x00008723 bne  0x00000000 , 0x000079e4 
+ 00031533  0x00008724 fetch  0x00000001 , 0x0000086f 
+ 00031534  0x00008725 sub  0x0000003f , 0x00000001 , 0x0000003e 
+ 00031535  0x00008726 nbranch  0x000079e4 , 0x00000002 
+ 00031536  0x00008727 fetch  0x00000001 , 0x0000086b 
+ 00031537  0x00008728 beq  0x00000003 , 0x00007b34 
+ 00031538  0x00008729 beq  0x00000004 , 0x00007b34 
+ 00031539  0x0000872a branch  0x000079e4 
+ 00031540  0x0000872e fetch  0x00000001 , 0x0000086f 
+ 00031541  0x0000872f beq  0x00000000 , 0x00007b38 
+ 00031542  0x00008730 jam  0x00000004 , 0x0000086b 
+ 00031543  0x00008731 branch  0x000079e9 
+ 00031544  0x00008733 jam  0x00000003 , 0x0000086b 
+ 00031545  0x00008734 branch  0x000079e9 
+ 00031546  0x00008738 fetch  0x00000001 , 0x0000086b 
+ 00031547  0x00008739 bne  0x00000004 , 0x000079e4 
+ 00031548  0x0000873a fetch  0x00000001 , 0x0000086d 
+ 00031549  0x0000873b bne  0x00000001 , 0x000079e4 
+ 00031550  0x0000873c fetch  0x00000001 , 0x0000086f 
+ 00031551  0x0000873d bne  0x00000000 , 0x000079e4 
+ 00031552  0x0000873e fetch  0x00000001 , 0x00000870 
+ 00031553  0x0000873f bne  0x00000000 , 0x000079e4 
+ 00031554  0x00008740 fetch  0x00000001 , 0x00000873 
+ 00031555  0x00008741 bne  0x00000000 , 0x000079e4 
+ 00031556  0x00008742 fetch  0x00000001 , 0x00000874 
+ 00031557  0x00008743 bne  0x00000000 , 0x000079e4 
+ 00031558  0x00008744 fetch  0x00000001 , 0x00000871 
+ 00031559  0x00008745 bne  0x00000000 , 0x000079e4 
+ 00031560  0x00008746 fetch  0x00000001 , 0x00000872 
+ 00031561  0x00008747 bne  0x00000000 , 0x000079e4 
+ 00031562  0x00008748 branch  0x000079e9 
+ 00031563  0x0000874c bpatchx  0x00000003 , 0x00004020 
+ 00031564  0x0000874d jam  0x00000001 , 0x000008fb 
+ 00031565  0x0000874e fetch  0x00000001 , 0x00000870 
+ 00031566  0x0000874f store  0x00000001 , 0x000008fc 
+ 00031567  0x00008750 fetch  0x00000001 , 0x00000871 
+ 00031568  0x00008751 sub  0x0000003f , 0x00000001 , 0x0000003e 
+ 00031569  0x00008752 call  0x00007b59 , 0x00000005 
+ 00031570  0x00008753 fetch  0x00000001 , 0x00000900 
+ 00031571  0x00008754 bne  0x00000004 , 0x000079e9 
+ 00031572  0x00008755 jam  0x00000002 , 0x00000900 
+ 00031573  0x00008756 call  0x000079e9 
+ 00031574  0x00008757 nop  0x00007530 
+ 00031575  0x00008758 nop  0x00007530 
+ 00031576  0x00008759 rtn 
+ 00031577  0x0000875b jam  0x00000001 , 0x0000090e 
+ 00031578  0x0000875c jam  0x00000000 , 0x00000902 
+ 00031579  0x0000875d jam  0x00000004 , 0x00000900 
+ 00031580  0x0000875e rtn 
+ 00031581  0x00008762 nop  0x00003a98 
+ 00031582  0x00008763 arg  0x00000875 , 0x00000005 
+ 00031583  0x00008764 call  0x00007993 
+ 00031584  0x00008765 jam  0x00000001 , 0x000008f7 
+ 00031585  0x00008766 call  0x00007b6e 
+ 00031586  0x00008767 fetch  0x00000002 , 0x0000086f 
+ 00031587  0x00008768 store  0x00000002 , 0x000008f5 
+ 00031588  0x00008769 call  0x000079e9 
+ 00031589  0x0000876a fetch  0x00000001 , 0x000043cb 
+ 00031590  0x0000876b rtnne  0x00000004 
+ 00031591  0x0000876c fetch  0x00000001 , 0x000008f9 
+ 00031592  0x0000876d rtn  0x00000034 
+ 00031593  0x0000876e fetch  0x00000001 , 0x00000875 
+ 00031594  0x00008770 store  0x00000001 , 0x00004621 
+ 00031595  0x00008771 jam  0x00000000 , 0x000008f9 
+ 00031596  0x00008772 jam  0x00000003 , 0x00004611 
+ 00031597  0x00008773 rtn 
+ 00031598  0x00008777 fetch  0x00000002 , 0x0000086f 
+ 00031599  0x00008778 arg  0x00000200 , 0x00000002 
+ 00031600  0x00008779 isub  0x00000002 , 0x0000003e 
+ 00031601  0x0000877a nrtn  0x00000005 
+ 00031602  0x0000877b fetch  0x00000002 , 0x00000871 
+ 00031603  0x0000877c arg  0x00000000 , 0x00000002 
+ 00031604  0x0000877d isub  0x00000002 , 0x0000003e 
+ 00031605  0x0000877e nrtn  0x00000005 
+ 00031606  0x0000877f fetch  0x00000002 , 0x00000873 
+ 00031607  0x00008780 arg  0x00000001 , 0x00000002 
+ 00031608  0x00008781 isub  0x00000002 , 0x0000003e 
+ 00031609  0x00008782 nrtn  0x00000005 
+ 00031610  0x00008783 jam  0x00000001 , 0x000008f9 
+ 00031611  0x00008784 rtn 
+ 00031612  0x00008788 fetch  0x00000001 , 0x00000873 
+ 00031613  0x00008789 bne  0x00000000 , 0x000079e4 
+ 00031614  0x0000878a fetch  0x00000001 , 0x0000086f 
+ 00031615  0x0000878b beq  0x00000000 , 0x00007b82 
+ 00031616  0x0000878c beq  0x00000001 , 0x00007b85 
+ 00031617  0x0000878d branch  0x000079e4 
+ 00031618  0x0000878f jam  0x00000000 , 0x000008fe 
+ 00031619  0x00008790 jam  0x00000001 , 0x000008ff 
+ 00031620  0x00008791 branch  0x000079e9 
+ 00031621  0x00008793 jam  0x00000001 , 0x000008fa 
+ 00031622  0x00008794 jam  0x00000001 , 0x000008fe 
+ 00031623  0x00008795 jam  0x00000000 , 0x000008ff 
+ 00031624  0x00008796 branch  0x000079e9 
+ 00031625  0x0000879a ifetchr  0x00000012 , 0x00000001 , 0x00000011 
+ 00031626  0x0000879b increase  0x00000001 , 0x00000011 
+ 00031627  0x0000879e bpatchx  0x00000004 , 0x00004020 
+ 00031628  0x0000879f set1  0x0000000e , 0x00000000 
+ 00031629  0x000087a0 bmark0  0x00000023 , 0x00007b90 
+ 00031630  0x000087a1 increase  0x00000001 , 0x00000012 
+ 00031631  0x000087a2 lshift  0x00000012 , 0x00000012 
+ 00031632  0x000087a4 storer  0x00000011 , 0x00000002 , 0x000007a4 
+ 00031633  0x000087a5 storer  0x00000012 , 0x00000001 , 0x000007a6 
+ 00031634  0x000087a6 branch  0x00007b96 
+ 00031635  0x000087a7 rtn 
+ 00031636  0x000087aa arg  0x00000000 , 0x00000007 
+ 00031637  0x000087ab branch  0x00007bd7 
+ 00031638  0x000087b1 bpatchx  0x00000005 , 0x00004020 
+ 00031639  0x000087b2 fetch  0x00000001 , 0x00008c25 
+ 00031640  0x000087b3 rtnbit1  0x00000000 
+ 00031641  0x000087b4 fetch  0x00000001 , 0x000007a6 
+ 00031642  0x000087b5 rtn  0x00000034 
+ 00031643  0x000087b6 copy  0x0000003f , 0x00000039 
+ 00031644  0x000087b7 iforce  0x00000002 
+ 00031645  0x000087b8 fetch  0x00000002 , 0x00000873 
+ 00031646  0x000087b9 sub  0x0000003f , 0x00000040 , 0x0000003e 
+ 00031647  0x000087ba branch  0x00007ba4 , 0x00000002 
+ 00031648  0x000087bb sub  0x00000039 , 0x00000040 , 0x0000003e 
+ 00031649  0x000087bc branch  0x00007ba8 , 0x00000002 
+ 00031650  0x000087bd force  0x00000040 , 0x00000039 
+ 00031651  0x000087be branch  0x00007ba8 
+ 00031652  0x000087c0 isub  0x00000039 , 0x0000003e 
+ 00031653  0x000087c1 branch  0x00007ba8 , 0x00000002 
+ 00031654  0x000087c2 iforce  0x00000039 
+ 00031655  0x000087c3 store  0x00000001 , 0x000007a6 
+ 00031656  0x000087c5 fetch  0x00000001 , 0x000007a6 
+ 00031657  0x000087c6 isub  0x00000039 , 0x0000003f 
+ 00031658  0x000087c7 store  0x00000001 , 0x000007a6 
+ 00031659  0x000087c8 add  0x00000039 , 0xffffffff , 0x0000003f 
+ 00031660  0x000087c9 store  0x00000001 , 0x0000070e 
+ 00031661  0x000087ca bmark0  0x00000023 , 0x00007bba 
+ 00031662  0x000087cb rshift  0x0000003f , 0x0000003f 
+ 00031663  0x000087cc add  0x00000039 , 0xffffffff , 0x0000003f 
+ 00031664  0x000087cd store  0x00000001 , 0x0000070e 
+ 00031665  0x000087ce bmark0  0x0000000e , 0x00007bba 
+ 00031666  0x000087cf set0  0x0000000e , 0x00000000 
+ 00031667  0x000087d0 istoret  0x00000001 , 0x00000005 
+ 00031668  0x000087d1 setarg  0x00000003 
+ 00031669  0x000087d2 istore  0x00000001 , 0x00000005 
+ 00031670  0x000087d3 increase  0xffffffff , 0x00000039 
+ 00031671  0x000087d4 copy  0x00000039 , 0x0000003f 
+ 00031672  0x000087d5 nbranch  0x00007bba , 0x00000005 
+ 00031673  0x000087d6 increase  0x00000001 , 0x00000039 
+ 00031674  0x000087d8 fetch  0x00000002 , 0x000007a4 
+ 00031675  0x000087d9 copy  0x0000003f , 0x00000006 
+ 00031676  0x000087db ifetch  0x00000001 , 0x00000006 
+ 00031677  0x000087dc istore  0x00000001 , 0x00000005 
+ 00031678  0x000087dd bmark0  0x00000023 , 0x00007bc1 
+ 00031679  0x000087de setarg  0x00000000 
+ 00031680  0x000087df istore  0x00000001 , 0x00000005 
+ 00031681  0x000087e1 loop  0x00007bbc 
+ 00031682  0x000087e2 copy  0x00000006 , 0x0000003f 
+ 00031683  0x000087e3 store  0x00000002 , 0x000007a4 
+ 00031684  0x000087e4 setarg  0x0000070e 
+ 00031685  0x000087e5 store  0x00000002 , 0x00008c08 
+ 00031686  0x000087e6 arg  0x00000000 , 0x00000007 
+ 00031687  0x000087e7 call  0x00007bd7 
+ 00031688  0x000087e8 fetch  0x00000001 , 0x000007a6 
+ 00031689  0x000087e9 nrtn  0x00000034 
+ 00031690  0x000087ea jam  0x00000002 , 0x00008c1b 
+ 00031691  0x000087eb fetch  0x00000001 , 0x00000900 
+ 00031692  0x000087ec rtnne  0x00000001 
+ 00031693  0x000087ed jam  0x00000002 , 0x00000900 
+ 00031694  0x000087ee rtn 
+ 00031695  0x000087f3 arg  0x0000074f , 0x00000011 
+ 00031696  0x000087f4 arg  0x00000001 , 0x00000007 
+ 00031697  0x000087f5 storer  0x00000011 , 0x00000002 , 0x00008c0a 
+ 00031698  0x000087f7 add  0x00000039 , 0xffffffff , 0x0000003f 
+ 00031699  0x000087f8 istore  0x00000001 , 0x00000011 
+ 00031700  0x000087fa ifetch  0x00000001 , 0x00000006 
+ 00031701  0x000087fb istore  0x00000001 , 0x00000005 
+ 00031702  0x000087fc loop  0x00007bd4 
+ 00031703  0x000087fe setarg  0x00000000 
+ 00031704  0x000087ff qset1  0x0000003f 
+ 00031705  0x00008800 store  0x00000001 , 0x00008c18 
+ 00031706  0x00008801 rtn 
+ 00031707  0x00008804 arg  0x00000002 , 0x00000007 
+ 00031708  0x00008805 arg  0x00000759 , 0x00000011 
+ 00031709  0x00008806 storer  0x00000011 , 0x00000002 , 0x00008c0c 
+ 00031710  0x00008807 branch  0x00007bd2 
+ 00031711  0x0000880a bpatchx  0x00000006 , 0x00004020 
+ 00031712  0x0000880b fetch  0x00000001 , 0x0000090d 
+ 00031713  0x0000880c rtn  0x00000034 
+ 00031714  0x0000880d fetch  0x00000001 , 0x00008c25 
+ 00031715  0x0000880e and_into  0x0000000f , 0x0000003f 
+ 00031716  0x0000880f nbranch  0x00007c30 , 0x00000034 
+ 00031717  0x00008810 fetch  0x00000001 , 0x0000090e 
+ 00031718  0x00008811 branch  0x00007c06 , 0x00000034 
+ 00031719  0x00008812 fetch  0x00000001 , 0x00000900 
+ 00031720  0x00008813 beq  0x00000003 , 0x00007c40 
+ 00031721  0x00008814 bne  0x00000002 , 0x00007c06 
+ 00031722  0x00008815 fetch  0x00000001 , 0x00000902 
+ 00031723  0x00008816 nbranch  0x00007c06 , 0x00000034 
+ 00031724  0x00008817 call  0x00007bee 
+ 00031725  0x00008818 branch  0x00007bf9 
+ 00031726  0x0000881b fetch  0x00000001 , 0x00008c25 
+ 00031727  0x0000881c rtnbit1  0x00000001 
+ 00031728  0x0000881d fetch  0x00000001 , 0x0000090d 
+ 00031729  0x0000881e rtnbit0  0x00000001 
+ 00031730  0x0000881f fetch  0x00000001 , 0x0000090d 
+ 00031731  0x00008820 set0  0x00000001 , 0x0000003f 
+ 00031732  0x00008821 store  0x00000001 , 0x0000090d 
+ 00031733  0x00008822 fetch  0x00000001 , 0x0000090b 
+ 00031734  0x00008823 rtn  0x00000034 
+ 00031735  0x00008824 beq  0x00000010 , 0x00007c28 
+ 00031736  0x00008825 branch  0x0000235a 
+ 00031737  0x00008828 fetch  0x00000001 , 0x00008c25 
+ 00031738  0x00008829 rtnbit1  0x00000002 
+ 00031739  0x0000882a fetch  0x00000001 , 0x0000090d 
+ 00031740  0x0000882b rtnbit0  0x00000002 
+ 00031741  0x0000882c fetch  0x00000001 , 0x0000090d 
+ 00031742  0x0000882d set0  0x00000002 , 0x0000003f 
+ 00031743  0x0000882e store  0x00000001 , 0x0000090d 
+ 00031744  0x0000882f fetch  0x00000001 , 0x0000090c 
+ 00031745  0x00008830 rtn  0x00000034 
+ 00031746  0x00008831 beq  0x00000020 , 0x00007c09 
+ 00031747  0x00008832 beq  0x00000021 , 0x00007c24 
+ 00031748  0x00008833 beq  0x00000022 , 0x00007c2c 
+ 00031749  0x00008834 branch  0x0000235a 
+ 00031750  0x00008838 arg  0x00000913 , 0x00000005 
+ 00031751  0x00008839 arg  0x00000040 , 0x00000039 
+ 00031752  0x0000883a branch  0x00007ca3 
+ 00031753  0x0000883d fetch  0x00000001 , 0x000008fb 
+ 00031754  0x0000883e fetcht  0x00000001 , 0x000008fd 
+ 00031755  0x0000883f iand  0x00000002 , 0x0000003f 
+ 00031756  0x00008840 branch  0x00007c20 , 0x00000034 
+ 00031757  0x00008841 fetcht  0x00000001 , 0x000008fe 
+ 00031758  0x00008842 iadd  0x00000002 , 0x0000003f 
+ 00031759  0x00008843 beq  0x00000001 , 0x00007c11 
+ 00031760  0x00008844 branch  0x00007c20 
+ 00031761  0x00008847 jam  0x00000000 , 0x0000090c 
+ 00031762  0x00008849 fetch  0x00000001 , 0x00000914 
+ 00031763  0x0000884a beq  0x00000002 , 0x00007c21 
+ 00031764  0x0000884b beq  0x00000003 , 0x00007c21 
+ 00031765  0x0000884c fetch  0x00000001 , 0x00000914 
+ 00031766  0x0000884d store  0x00000001 , 0x00000913 
+ 00031767  0x0000884e fetch  0x00000001 , 0x00000915 
+ 00031768  0x0000884f istore  0x00000001 , 0x00000005 
+ 00031769  0x00008850 fetch  0x00000001 , 0x00000917 
+ 00031770  0x00008851 istore  0x00000001 , 0x00000005 
+ 00031771  0x00008852 fetch  0x00000001 , 0x00000919 
+ 00031772  0x00008853 istore  0x00000001 , 0x00000005 
+ 00031773  0x00008854 arg  0x00000004 , 0x00000039 
+ 00031774  0x00008855 arg  0x00000913 , 0x00000006 
+ 00031775  0x00008856 branch  0x00007bdb 
+ 00031776  0x00008859 jam  0x00000000 , 0x0000090c 
+ 00031777  0x0000885b arg  0x00000008 , 0x00000039 
+ 00031778  0x0000885c arg  0x00000913 , 0x00000006 
+ 00031779  0x0000885d branch  0x00007bdb 
+ 00031780  0x00008860 jam  0x00000000 , 0x0000090c 
+ 00031781  0x00008861 arg  0x00000003 , 0x00000039 
+ 00031782  0x00008862 arg  0x00000933 , 0x00000006 
+ 00031783  0x00008863 branch  0x00007bdb 
+ 00031784  0x00008866 jam  0x00000000 , 0x0000090b 
+ 00031785  0x00008867 arg  0x00000008 , 0x00000039 
+ 00031786  0x00008868 arg  0x00000923 , 0x00000006 
+ 00031787  0x00008869 branch  0x00007bcf 
+ 00031788  0x0000886c jam  0x00000000 , 0x0000090c 
+ 00031789  0x0000886d arg  0x00000002 , 0x00000039 
+ 00031790  0x0000886e arg  0x00000943 , 0x00000006 
+ 00031791  0x0000886f branch  0x00007bdb 
+ 00031792  0x00008872 fetch  0x00000001 , 0x00000900 
+ 00031793  0x00008873 beq  0x00000002 , 0x00007c33 
+ 00031794  0x00008874 rtn 
+ 00031795  0x00008876 fetch  0x00000001 , 0x00008c00 
+ 00031796  0x00008877 set1  0x00000007 , 0x0000003f 
+ 00031797  0x00008878 store  0x00000001 , 0x00008c00 
+ 00031798  0x00008879 jam  0x00000001 , 0x00000910 
+ 00031799  0x0000887a rtn 
+ 00031800  0x0000887d fetch  0x00000001 , 0x00000900 
+ 00031801  0x0000887e rtneq  0x00000003 
+ 00031802  0x0000887f beq  0x00000002 , 0x00007c3c 
+ 00031803  0x00008880 rtn 
+ 00031804  0x00008882 fetch  0x00000001 , 0x00000910 
+ 00031805  0x00008883 rtn  0x00000034 
+ 00031806  0x00008884 jam  0x00000001 , 0x0000090f 
+ 00031807  0x00008885 branch  0x00007c43 
+ 00031808  0x00008888 arg  0x0000000f , 0x00000007 
+ 00031809  0x00008889 call  0x00007cef 
+ 00031810  0x0000888a nrtn  0x00000034 
+ 00031811  0x0000888c fetch  0x00000001 , 0x00008c00 
+ 00031812  0x0000888d rtnbit0  0x00000007 
+ 00031813  0x0000888e jam  0x000000fc , 0x00008c00 
+ 00031814  0x0000888f nop  0x00007530 
+ 00031815  0x00008890 jam  0x0000003c , 0x00008c00 
+ 00031816  0x00008891 rtn 
+ 00031817  0x00008899 storer  0x00000005 , 0x00000002 , 0x00000691 
+ 00031818  0x0000889a storet  0x00000008 , 0x00000678 
+ 00031819  0x0000889b storer  0x0000000b , 0x00000004 , 0x00000680 
+ 00031820  0x0000889c call  0x00007c51 
+ 00031821  0x0000889d storer  0x00000006 , 0x00000002 , 0x0000068f 
+ 00031822  0x0000889e storer  0x00000039 , 0x00000002 , 0x0000069b 
+ 00031823  0x0000889f storer  0x00000007 , 0x00000002 , 0x00000699 
+ 00031824  0x000088a0 rtn 
+ 00031825  0x000088a3 storer  0x00000011 , 0x00000004 , 0x00000684 
+ 00031826  0x000088a4 storer  0x00000012 , 0x00000004 , 0x00000688 
+ 00031827  0x000088a5 storer  0x00000013 , 0x00000003 , 0x0000068c 
+ 00031828  0x000088a6 rtn 
+ 00031829  0x000088a9 bpatchx  0x00000007 , 0x00004020 
+ 00031830  0x000088aa fetch  0x00000002 , 0x00000691 
+ 00031831  0x000088ab iforce  0x00000005 
+ 00031832  0x000088ac fetcht  0x00000008 , 0x00000678 
+ 00031833  0x000088ad fetchr  0x0000000b , 0x00000004 , 0x00000680 
+ 00031834  0x000088ae call  0x00007c60 
+ 00031835  0x000088af fetchr  0x00000039 , 0x00000002 , 0x0000069b 
+ 00031836  0x000088b0 fetchr  0x00000007 , 0x00000002 , 0x00000699 
+ 00031837  0x000088b1 fetch  0x00000002 , 0x0000068f 
+ 00031838  0x000088b2 iforce  0x00000006 
+ 00031839  0x000088b3 rtn 
+ 00031840  0x000088b6 fetchr  0x00000011 , 0x00000004 , 0x00000684 
+ 00031841  0x000088b7 fetchr  0x00000012 , 0x00000004 , 0x00000688 
+ 00031842  0x000088b8 fetchr  0x00000013 , 0x00000003 , 0x0000068c 
+ 00031843  0x000088b9 rtn 
+ 00031844  0x000088bc fetch  0x00000002 , 0x00000691 
+ 00031845  0x000088bd copy  0x0000003f , 0x00000005 
+ 00031846  0x000088be rtn 
+ 00031847  0x000088c0 fetch  0x00000002 , 0x0000068f 
+ 00031848  0x000088c1 copy  0x0000003f , 0x00000006 
+ 00031849  0x000088c2 rtn 
+ 00031850  0x000088c5 copy  0x00000005 , 0x0000003f 
+ 00031851  0x000088c6 store  0x00000002 , 0x00000691 
+ 00031852  0x000088c7 rtn 
+ 00031853  0x000088c9 copy  0x00000006 , 0x0000003f 
+ 00031854  0x000088ca store  0x00000002 , 0x0000068f 
+ 00031855  0x000088cb rtn 
+ 00031856  0x000088d0 copy  0x00000005 , 0x0000003f 
+ 00031857  0x000088d1 store  0x00000002 , 0x00000691 
+ 00031858  0x000088d2 copy  0x00000006 , 0x0000003f 
+ 00031859  0x000088d3 store  0x00000002 , 0x0000068f 
+ 00031860  0x000088d4 rtn 
+ 00031861  0x000088d7 fetch  0x00000002 , 0x00000691 
+ 00031862  0x000088d8 copy  0x0000003f , 0x00000005 
+ 00031863  0x000088d9 fetch  0x00000002 , 0x0000068f 
+ 00031864  0x000088da copy  0x0000003f , 0x00000006 
+ 00031865  0x000088db rtn 
+ 00031866  0x000088e1 isub  0x00000002 , 0x00000011 
+ 00031867  0x000088e2 rtn  0x00000002 
+ 00031868  0x000088e3 arg  0x00000100 , 0x00000011 
+ 00031869  0x000088e4 iadd  0x00000011 , 0x0000003f 
+ 00031870  0x000088e5 isub  0x00000002 , 0x00000011 
+ 00031871  0x000088e6 rtn 
+ 00031872  0x000088e9 call  0x00007c8d 
+ 00031873  0x000088eb call  0x00007c8d 
+ 00031874  0x000088ec branch  0x00007c8d 
+ 00031875  0x000088f0 call  0x00007c89 
+ 00031876  0x000088f2 ifetch  0x00000001 , 0x00000006 
+ 00031877  0x000088f3 istore  0x00000001 , 0x00000005 
+ 00031878  0x000088f5 ifetch  0x00000003 , 0x00000006 
+ 00031879  0x000088f6 istore  0x00000003 , 0x00000005 
+ 00031880  0x000088f7 rtn 
+ 00031881  0x000088f9 ifetch  0x00000008 , 0x00000006 
+ 00031882  0x000088fa istore  0x00000008 , 0x00000005 
+ 00031883  0x000088fb rtn 
+ 00031884  0x000088fe call  0x00007c8f 
+ 00031885  0x00008900 call  0x00007c89 
+ 00031886  0x00008902 call  0x00007c89 
+ 00031887  0x00008904 call  0x00007c89 
+ 00031888  0x00008905 branch  0x00007c89 
+ 00031889  0x00008908 increase  0xffffffff , 0x0000003f 
+ 00031890  0x00008909 nop  0x00000026 
+ 00031891  0x0000890a nbranch  0x00007c91 , 0x00000034 
+ 00031892  0x0000890b rtn 
+ 00031893  0x0000890f arg  0x0000000a , 0x00000039 
+ 00031894  0x00008911 nop  0x00002ee0 
+ 00031895  0x00008912 loop  0x00007c96 
+ 00031896  0x00008913 rtn 
+ 00031897  0x00008917 call  0x00007c9a 
+ 00031898  0x00008919 call  0x00007c9b 
+ 00031899  0x0000891b force  0x00000004 , 0x00000039 
+ 00031900  0x0000891c branch  0x00007ca3 
+ 00031901  0x0000891f force  0x00000020 , 0x00000039 
+ 00031902  0x00008920 branch  0x00007ca3 
+ 00031903  0x00008922 force  0x00000040 , 0x00000039 
+ 00031904  0x00008923 branch  0x00007ca3 
+ 00031905  0x00008926 deposit  0x00000039 
+ 00031906  0x00008927 rtn  0x00000034 
+ 00031907  0x00008929 force  0x00000000 , 0x0000003f 
+ 00031908  0x0000892a lstore  0x00000005 
+ 00031909  0x0000892b rtn 
+ 00031910  0x0000892e arg  0x00000020 , 0x00000039 
+ 00031911  0x0000892f arg  0x000006a1 , 0x00000005 
+ 00031912  0x00008930 branch  0x00007ca1 
+ 00031913  0x00008933 ifetch  0x00000004 , 0x00000013 
+ 00031914  0x00008934 ifetcht  0x00000004 , 0x00000011 
+ 00031915  0x00008935 ixor  0x00000002 , 0x0000003f 
+ 00031916  0x00008936 istore  0x00000004 , 0x00000005 
+ 00031917  0x00008937 increase  0x00000004 , 0x00000011 
+ 00031918  0x00008938 increase  0x00000004 , 0x00000013 
+ 00031919  0x00008939 loop  0x00007ca9 
+ 00031920  0x0000893a rtn 
+ 00031921  0x0000893f bpatchx  0x00000008 , 0x00004021 
+ 00031922  0x00008940 copy  0x00000039 , 0x0000003f 
+ 00031923  0x00008941 sub  0x0000003f , 0x00000001 , 0x0000003e 
+ 00031924  0x00008942 rtn  0x00000002 
+ 00031925  0x00008943 iadd  0x00000011 , 0x00000012 
+ 00031926  0x00008944 increase  0xffffffff , 0x00000012 
+ 00031927  0x00008945 rshift  0x00000039 , 0x00000039 
+ 00031928  0x00008947 ifetcht  0x00000001 , 0x00000011 
+ 00031929  0x00008948 ifetch  0x00000001 , 0x00000012 
+ 00031930  0x00008949 istore  0x00000001 , 0x00000011 
+ 00031931  0x0000894a istoret  0x00000001 , 0x00000012 
+ 00031932  0x0000894b increase  0xffffffff , 0x00000012 
+ 00031933  0x0000894c increase  0x00000001 , 0x00000011 
+ 00031934  0x0000894d loop  0x00007cb8 
+ 00031935  0x0000894e rtn 
+ 00031936  0x00008952 rshift32  0x0000003f , 0x00000002 
+ 00031937  0x00008953 call  0x00007cc6 
+ 00031938  0x00008954 byteswap  0x00000002 , 0x00000002 
+ 00031939  0x00008955 lshift16  0x0000003f , 0x0000003f 
+ 00031940  0x00008956 ior  0x00000002 , 0x0000003f 
+ 00031941  0x00008957 rtn 
+ 00031942  0x0000895c rshift16  0x0000003f , 0x00000006 
+ 00031943  0x0000895d byteswap  0x00000006 , 0x00000006 
+ 00031944  0x0000895e byteswap  0x0000003f , 0x0000003f 
+ 00031945  0x0000895f lshift16  0x0000003f , 0x0000003f 
+ 00031946  0x00008960 ior  0x00000006 , 0x0000003f 
+ 00031947  0x00008961 rtn 
+ 00031948  0x00008965 bpatchx  0x00000009 , 0x00004021 
+ 00031949  0x00008966 deposit  0x00000039 
+ 00031950  0x00008967 rtn  0x00000034 
+ 00031951  0x00008969 increase  0xfffffff8 , 0x00000039 
+ 00031952  0x0000896a call  0x00007c89 , 0x00000002 
+ 00031953  0x0000896b rtn  0x00000005 
+ 00031954  0x0000896c branch  0x00007ccf , 0x00000002 
+ 00031955  0x0000896d increase  0x00000008 , 0x00000039 
+ 00031956  0x0000896f increase  0xfffffffc , 0x00000039 
+ 00031957  0x00008970 call  0x00007c84 , 0x00000002 
+ 00031958  0x00008971 rtn  0x00000005 
+ 00031959  0x00008972 branch  0x00007cd4 , 0x00000002 
+ 00031960  0x00008973 increase  0x00000004 , 0x00000039 
+ 00031961  0x00008974 branch  0x00007cda 
+ 00031962  0x00008977 deposit  0x00000039 
+ 00031963  0x00008978 rtn  0x00000034 
+ 00031964  0x0000897a ifetch  0x00000001 , 0x00000006 
+ 00031965  0x0000897b istore  0x00000001 , 0x00000005 
+ 00031966  0x0000897c loop  0x00007cdc 
+ 00031967  0x0000897d rtn 
+ 00031968  0x00008980 setarg  0x00000000 
+ 00031969  0x00008984 store  0x00000002 , 0x00000670 
+ 00031970  0x00008985 bpatchx  0x0000000a , 0x00004021 
+ 00031971  0x00008986 call  0x00007cef 
+ 00031972  0x00008987 fetcht  0x00000002 , 0x00000670 
+ 00031973  0x00008988 arg  0x000040f4 , 0x00000005 
+ 00031974  0x0000898a lshift  0x00000007 , 0x0000003f 
+ 00031975  0x0000898b iadd  0x00000005 , 0x00000005 
+ 00031976  0x0000898c istoret  0x00000002 , 0x00000005 
+ 00031977  0x0000898d rtn 
+ 00031978  0x00008990 arg  0x00000800 , 0x0000000b 
+ 00031979  0x00008991 lshift16  0x0000000b , 0x0000000b 
+ 00031980  0x00008992 iadd  0x0000000b , 0x0000003f 
+ 00031981  0x00008993 rtn 
+ 00031982  0x00008997 arg  0x00000000 , 0x00000007 
+ 00031983  0x00008999 bpatchx  0x0000000b , 0x00004021 
+ 00031984  0x0000899a fetcht  0x00000004 , 0x00004095 
+ 00031985  0x0000899b rshift  0x00000022 , 0x0000003f 
+ 00031986  0x0000899c store  0x00000004 , 0x00004095 
+ 00031987  0x0000899d isub  0x00000002 , 0x0000003e 
+ 00031988  0x0000899e ncall  0x00007cea , 0x00000002 
+ 00031989  0x0000899f isub  0x00000002 , 0x0000000b 
+ 00031990  0x000089a0 copy  0x0000000b , 0x00000002 
+ 00031991  0x000089a1 arg  0x000040f4 , 0x00000006 
+ 00031992  0x000089a2 copy  0x00000006 , 0x00000005 
+ 00031993  0x000089a3 arg  0x00000010 , 0x00000039 
+ 00031994  0x000089a5 ifetch  0x00000002 , 0x00000006 
+ 00031995  0x000089a6 isub  0x00000002 , 0x0000003f 
+ 00031996  0x000089a7 branch  0x00007cfe , 0x00000002 
+ 00031997  0x000089a8 force  0x00000000 , 0x0000003f 
+ 00031998  0x000089aa istore  0x00000002 , 0x00000005 
+ 00031999  0x000089ab loop  0x00007cfa 
+ 00032000  0x000089ac arg  0x000040f4 , 0x00000006 
+ 00032001  0x000089ad lshift  0x00000007 , 0x0000003f 
+ 00032002  0x000089ae iadd  0x00000006 , 0x00000006 
+ 00032003  0x000089af ifetch  0x00000002 , 0x00000006 
+ 00032004  0x000089b0 rtn 
+ 00032005  0x000089b6 iadd  0x00000002 , 0x00000002 
+ 00032006  0x000089b7 copy  0x00000002 , 0x00000039 
+ 00032007  0x000089b8 fetch  0x00000002 , 0x00000044 
+ 00032008  0x000089b9 isub  0x00000039 , 0x0000003f 
+ 00032009  0x000089ba rtn  0x00000002 
+ 00032010  0x000089bb sub  0x0000003f , 0x00000000 , 0x0000003f 
+ 00032011  0x000089bc rshift16  0x00000002 , 0x00000002 
+ 00032012  0x000089bd increase  0x00000001 , 0x00000002 
+ 00032013  0x000089be lshift16  0x00000002 , 0x00000002 
+ 00032014  0x000089bf ior  0x00000002 , 0x00000002 
+ 00032015  0x000089c0 rtn 
+ 00032016  0x000089c3 call  0x00007d12 
+ 00032017  0x000089c4 branch  0x00007d1f 
+ 00032018  0x000089c8 disable  0x00000028 
+ 00032019  0x000089c9 isub  0x00000002 , 0x0000003f 
+ 00032020  0x000089ca branch  0x00007d17 , 0x00000002 
+ 00032021  0x000089cb enable  0x00000028 
+ 00032022  0x000089cc sub  0x0000003f , 0x00000000 , 0x0000003f 
+ 00032023  0x000089ce rtnbit0  0x0000000f 
+ 00032024  0x000089cf copy  0x0000003f , 0x00000014 
+ 00032025  0x000089d0 arg  0x00010000 , 0x00000002 
+ 00032026  0x000089d1 fetch  0x00000002 , 0x00000044 
+ 00032027  0x000089d2 isub  0x00000002 , 0x0000003f 
+ 00032028  0x000089d3 iadd  0x00000014 , 0x0000003f 
+ 00032029  0x000089d4 set0  0x00000040 , 0x0000003f 
+ 00032030  0x000089d5 rtn 
+ 00032031  0x000089da fetcht  0x00000002 , 0x00000044 
+ 00032032  0x000089db iforce  0x00000006 
+ 00032033  0x000089dc rshift16  0x0000003f , 0x0000003f 
+ 00032034  0x000089dd imul32  0x00000002 , 0x0000003f 
+ 00032035  0x000089de iadd  0x00000006 , 0x0000003f 
+ 00032036  0x000089df rtn 
+ 00032037  0x000089e3 lshift8  0x0000003f , 0x0000003f 
+ 00032038  0x000089e4 lshift4  0x0000003f , 0x0000003f 
+ 00032039  0x000089e5 fetcht  0x00000003 , 0x000040bd 
+ 00032040  0x000089e6 idiv  0x00000002 
+ 00032041  0x000089e7 call  0x00007d62 
+ 00032042  0x000089e8 quotient  0x00000002 
+ 00032043  0x000089e9 rtn 
+ 00032044  0x000089ed fetcht  0x00000002 , 0x00000044 
+ 00032045  0x000089ee idiv  0x00000002 
+ 00032046  0x000089ef call  0x00007d5f 
+ 00032047  0x000089f0 lshift16  0x0000003f , 0x0000003f 
+ 00032048  0x000089f1 remainder  0x00000002 
+ 00032049  0x000089f2 ior  0x00000002 , 0x00000002 
+ 00032050  0x000089f3 rtn 
+ 00032051  0x000089fb arg  0x00000000 , 0x00000002 
+ 00032052  0x000089fd copy  0x00000002 , 0x00000014 
+ 00032053  0x000089fe ifetch  0x00000001 , 0x00000003 
+ 00032054  0x000089ff call  0x00007d3f 
+ 00032055  0x00008a00 copy  0x00000014 , 0x00000002 
+ 00032056  0x00008a01 call  0x00007d70 
+ 00032057  0x00008a02 arg  0x0000000a , 0x00000012 
+ 00032058  0x00008a03 imul32  0x00000012 , 0x0000003f 
+ 00032059  0x00008a04 iadd  0x00000002 , 0x0000003f 
+ 00032060  0x00008a05 copy  0x0000003f , 0x00000002 
+ 00032061  0x00008a06 loop  0x00007d34 
+ 00032062  0x00008a07 rtn 
+ 00032063  0x00008a0c arg  0x0000003a , 0x00000002 
+ 00032064  0x00008a0d isub  0x00000002 , 0x0000003e 
+ 00032065  0x00008a0e nbranch  0x00007d48 , 0x00000002 
+ 00032066  0x00008a0f arg  0x00000061 , 0x00000002 
+ 00032067  0x00008a10 isub  0x00000002 , 0x0000003e 
+ 00032068  0x00008a11 branch  0x00007d4b , 0x00000002 
+ 00032069  0x00008a12 arg  0x00000037 , 0x00000002 
+ 00032070  0x00008a13 isub  0x00000002 , 0x0000003f 
+ 00032071  0x00008a14 rtn 
+ 00032072  0x00008a16 arg  0x00000030 , 0x00000002 
+ 00032073  0x00008a17 isub  0x00000002 , 0x0000003f 
+ 00032074  0x00008a18 rtn 
+ 00032075  0x00008a1a arg  0x00000057 , 0x00000002 
+ 00032076  0x00008a1b isub  0x00000002 , 0x0000003f 
+ 00032077  0x00008a1c rtn 
+ 00032078  0x00008a20 sub  0x00000039 , 0x00000000 , 0x0000003e 
+ 00032079  0x00008a21 rtn  0x00000005 
+ 00032080  0x00008a23 rshift  0x0000003f , 0x0000003f 
+ 00032081  0x00008a24 loop  0x00007d50 
+ 00032082  0x00008a25 rtn 
+ 00032083  0x00008a29 force  0x00000001 , 0x0000003f 
+ 00032084  0x00008a2a sub  0x00000039 , 0x00000000 , 0x0000003e 
+ 00032085  0x00008a2b rtn  0x00000005 
+ 00032086  0x00008a2d lshift  0x0000003f , 0x0000003f 
+ 00032087  0x00008a2e loop  0x00007d56 
+ 00032088  0x00008a2f rtn 
+ 00032089  0x00008a34 setarg  0x00000000 
+ 00032090  0x00008a35 copy  0x00000039 , 0x00000011 
+ 00032091  0x00008a37 ifetcht  0x00000002 , 0x00000006 
+ 00032092  0x00008a38 iadd  0x00000002 , 0x0000003f 
+ 00032093  0x00008a39 loop  0x00007d5b 
+ 00032094  0x00008a3a idiv  0x00000011 
+ 00032095  0x00008a3c call  0x00007d62 
+ 00032096  0x00008a3d quotient  0x0000003f 
+ 00032097  0x00008a3e rtn 
+ 00032098  0x00008a41 rtn  0x00000035 
+ 00032099  0x00008a42 branch  0x00007d62 
+ 00032100  0x00008a4e ifetch  0x00000001 , 0x00000011 
+ 00032101  0x00008a4f ifetcht  0x00000001 , 0x00000012 
+ 00032102  0x00008a50 isub  0x00000002 , 0x0000003e 
+ 00032103  0x00008a51 nrtn  0x00000005 
+ 00032104  0x00008a52 increase  0x00000001 , 0x00000011 
+ 00032105  0x00008a53 increase  0x00000001 , 0x00000012 
+ 00032106  0x00008a54 loop  0x00007d64 
+ 00032107  0x00008a55 branch  0x00007db8 
+ 00032108  0x00008a5a isub  0x00000002 , 0x0000003e 
+ 00032109  0x00008a5b nrtn  0x00000002 
+ 00032110  0x00008a5c deposit  0x00000002 
+ 00032111  0x00008a5d rtn 
+ 00032112  0x00008a60 iadd  0x00000002 , 0x0000003f 
+ 00032113  0x00008a61 isub  0x00000002 , 0x00000002 
+ 00032114  0x00008a62 isub  0x00000002 , 0x0000003f 
+ 00032115  0x00008a63 rtn 
+ 00032116  0x00008a66 arg  0x00000000 , 0x00000005 
+ 00032117  0x00008a67 branch  0x00007d77 
+ 00032118  0x00008a6a arg  0x00004000 , 0x00000005 
+ 00032119  0x00008a6c arg  0x00001000 , 0x00000039 
+ 00032120  0x00008a6d branch  0x00007ca3 
+ 00032121  0x00008a71 rtn  0x00000034 
+ 00032122  0x00008a72 copy  0x0000003f , 0x0000003d 
+ 00032123  0x00008a76 call  0x000070d7 
+ 00032124  0x00008a79 jam  0x00000001 , 0x00008203 
+ 00032125  0x00008a7a rtn 
+ 00032126  0x00008a7d store  0x00000002 , 0x00008205 
+ 00032127  0x00008a7e fetch  0x00000001 , 0x00008203 
+ 00032128  0x00008a7f set1  0x00000004 , 0x0000003f 
+ 00032129  0x00008a80 store  0x00000001 , 0x00008203 
+ 00032130  0x00008a81 rtn 
+ 00032131  0x00008a83 store  0x00000002 , 0x00008207 
+ 00032132  0x00008a84 fetch  0x00000001 , 0x00008203 
+ 00032133  0x00008a85 set1  0x00000006 , 0x0000003f 
+ 00032134  0x00008a86 store  0x00000001 , 0x00008203 
+ 00032135  0x00008a87 rtn 
+ 00032136  0x00008a8a store  0x00000002 , 0x00008205 
+ 00032137  0x00008a8b jam  0x00000030 , 0x00008203 
+ 00032138  0x00008a8c rtn 
+ 00032139  0x00008a95 bpatchx  0x0000000c , 0x00004021 
+ 00032140  0x00008a96 ifetcht  0x00000008 , 0x00000011 
+ 00032141  0x00008a97 and  0x00000002 , 0x000000ff , 0x0000003f 
+ 00032142  0x00008a98 nbranch  0x00007d91 , 0x00000034 
+ 00032143  0x00008a99 rshift8  0x00000002 , 0x0000003f 
+ 00032144  0x00008a9a istore  0x00000008 , 0x00000011 
+ 00032145  0x00008a9c increase  0x00000007 , 0x00000011 
+ 00032146  0x00008a9d ifetch  0x00000001 , 0x00000011 
+ 00032147  0x00008a9e nbranch  0x0000235a , 0x00000034 
+ 00032148  0x00008a9f fetch  0x00000001 , 0x0000066f 
+ 00032149  0x00008aa0 istore  0x00000001 , 0x00000011 
+ 00032150  0x00008aa1 rtn 
+ 00032151  0x00008aa7 bpatchx  0x0000000d , 0x00004021 
+ 00032152  0x00008aa8 arg  0x00000008 , 0x00000039 
+ 00032153  0x00008aa9 ifetch  0x00000008 , 0x00000011 
+ 00032154  0x00008aaa rtn  0x00000034 
+ 00032155  0x00008aac ifetch  0x00000001 , 0x00000011 
+ 00032156  0x00008aad nbranch  0x00007da0 , 0x00000034 
+ 00032157  0x00008aae increase  0x00000001 , 0x00000011 
+ 00032158  0x00008aaf loop  0x00007d9b 
+ 00032159  0x00008ab0 branch  0x0000235a 
+ 00032160  0x00008ab2 arg  0x00000000 , 0x00000002 
+ 00032161  0x00008ab3 istoret  0x00000001 , 0x00000011 
+ 00032162  0x00008ab4 rtn 
+ 00032163  0x00008aba ifetch  0x00000008 , 0x00000011 
+ 00032164  0x00008abb rtn 
+ 00032165  0x00008ac1 ifetch  0x00000001 , 0x00000011 
+ 00032166  0x00008ac2 rtn 
+ 00032167  0x00008ac6 ifetch  0x00000002 , 0x00000011 
+ 00032168  0x00008ac7 rtn 
+ 00032169  0x00008acc arg  0x00000000 , 0x00000002 
+ 00032170  0x00008ace fetch  0x00000001 , 0x00000006 
+ 00032171  0x00008acf loop  0x00007daa , 0x00000034 
+ 00032172  0x00008ad0 increase  0x00000001 , 0x00000002 
+ 00032173  0x00008ad1 loop  0x00007daa 
+ 00032174  0x00008ad2 copy  0x00000002 , 0x0000003f 
+ 00032175  0x00008ad3 rtn 
+ 00032176  0x00008ad7 isub  0x00000002 , 0x0000003e 
+ 00032177  0x00008ad8 nrtn  0x00000002 
+ 00032178  0x00008ada copy  0x00000002 , 0x0000003f 
+ 00032179  0x00008adb rtn 
+ 00032180  0x00008adf force  0xffffffff , 0x0000003e 
+ 00032181  0x00008ae0 rtn 
+ 00032182  0x00008ae3 force  0x00000001 , 0x0000003e 
+ 00032183  0x00008ae4 rtn 
+ 00032184  0x00008ae6 force  0x00000000 , 0x0000003e 
+ 00032185  0x00008ae7 rtn 
+ 00032186  0x00008aea enable  0x00000028 
+ 00032187  0x00008aeb rtn 
+ 00032188  0x00008aee disable  0x00000028 
+ 00032189  0x00008aef rtn 
+ 00032190  0x00008af2 enable  0x0000002c 
+ 00032191  0x00008af3 rtn 
+ 00032192  0x00008af6 disable  0x0000002c 
+ 00032193  0x00008af7 rtn 
+ 00032194  0x00008afa enable  0x00000031 
+ 00032195  0x00008afb rtn 
+ 00032196  0x00008afe disable  0x00000001 
+ 00032197  0x00008aff rtn 
+ 00032198  0x00008b02 enable  0x00000001 
+ 00032199  0x00008b03 rtn 
+ 00032200  0x00008b06 setarg  0x00000001 
+ 00032201  0x00008b07 rtn 
+ 00032202  0x00008b0b setarg  0x00000000 
+ 00032203  0x00008b0c rtn 
+ 00032204  0x00008b11 sub  0x00000039 , 0x00000000 , 0x0000003e 
+ 00032205  0x00008b12 rtn  0x00000005 
+ 00032206  0x00008b14 ifetcht  0x00000001 , 0x00000006 
+ 00032207  0x00008b15 iadd  0x00000002 , 0x0000003f 
+ 00032208  0x00008b16 loop  0x00007dce 
+ 00032209  0x00008b17 rtn 
+ 00032210  0x00008b1b copy  0x00000039 , 0x0000003f 
+ 00032211  0x00008b1c rtn  0x00000034 
+ 00032212  0x00008b1d copy  0x00000006 , 0x0000003f 
+ 00032213  0x00008b1e iadd  0x00000039 , 0x0000003f 
+ 00032214  0x00008b1f increase  0xffffffff , 0x0000003f 
+ 00032215  0x00008b20 copy  0x0000003f , 0x00000006 
+ 00032216  0x00008b22 ifetch  0x00000001 , 0x00000006 
+ 00032217  0x00008b23 increase  0xfffffffe , 0x00000006 
+ 00032218  0x00008b24 istore  0x00000001 , 0x00000005 
+ 00032219  0x00008b25 loop  0x00007dd8 
+ 00032220  0x00008b26 rtn 
+ 00032221  0x00008b2a lshift16  0x0000003f , 0x0000003f 
+ 00032222  0x00008b2c rshift2  0x0000003f , 0x0000003f 
+ 00032223  0x00008b2d rtn 
+ 00032224  0x00008b30 lshift8  0x0000003f , 0x0000003f 
+ 00032225  0x00008b31 branch  0x00007dde 
+ 00032226  0x00008b35 setarg  0x00000000 
+ 00032227  0x00008b36 store  0x00000008 , 0x00000016 
+ 00032228  0x00008b37 set1  0x00000019 , 0x0000003f 
+ 00032229  0x00008b38 istore  0x00000004 , 0x00000005 
+ 00032230  0x00008b39 rtn 
+ 00032231  0x00008b3d arg  0x00000010 , 0x00000039 
+ 00032232  0x00008b3f random  0x0000003f 
+ 00032233  0x00008b40 istore  0x00000001 , 0x00000005 
+ 00032234  0x00008b41 loop  0x00007de8 
+ 00032235  0x00008b42 rtn 
Index: output/bt_program23.list
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/output/bt_program23.list	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/output/bt_program23.list	(working copy)
@@ -0,0 +1,29415 @@
+              include "bt_format "
+              org 0x0000
+0x0 000034 bbit1 8 ,pf_patch_ext 
+0x1 000035 beq patch00_0 ,p_soft_reset 
+0x2 000036 beq patch00_2 ,p_main_loop 
+0x3 000037 beq patch02_1 ,p_set_sync_on 
+0x4 000038 beq patch02_4 ,p_set_lemode 
+0x5 000039 beq patch02_5 ,p_rf_rx_enable 
+0x6 000040 beq patch03_0 ,p_txon 
+0x7 000041 beq patch03_1 ,p_set_tx_power 
+0x8 000042 beq patch03_2 ,p_initialize_radio_cont 
+0x9 000043 beq patch04_5 ,p_lpm_sleep 
+0xa 000044 beq patch04_7 ,p_lpm_adjust_clk 
+0xb 000045 beq patch14_3 ,p_shutter_dy_key_press 
+0xc 000046 beq patch14_5 ,p_shutter_dy_shutter_key_release 
+0xd 000047 beq patch14_6 ,p_shutter_dy_keyscan_key_check_long_press 
+0xe 000048 beq patch14_7 ,p_shutter_dy_keyscan_key_process_next 
+0xf 000049 beq patch15_2 ,p_shutter_dy_le_parse_att 
+0x10 000050 beq patch16_1 ,p_shutter_dy_init 
+0x11 000051 beq patch18_4 ,p_otp_write 
+0x12 000052 beq patch18_5 ,p_otp_read_data 
+0x13 000053 beq patch1b_2 ,p_sadc_calibration 
+0x14 000054 beq patch1b_3 ,p_adc_init_data 
+0x15 000055 beq patch1b_4 ,p_enable_adc 
+0x16 000056 beq patch1b_5 ,p_vdd_calculate_by_mode 
+0x17 000057 branch assert 
+:      000059 pf_patch_ext:
+0x18 000060 beq patch24_4 ,p_le_receive_rxon 
+0x19 000061 beq patch24_5 ,p_le_rx_dec 
+0x1a 000062 beq patch24_6 ,p_le_rx_nopayload 
+0x1b 000063 beq patch27_1 ,p_le_parse 
+0x1c 000064 beq patch29_5 ,p_le_init_adv 
+0x1d 000065 rtneq patch3f_7 
+0x1e 000066 branch assert 
+:      000069 p_otp_write:
+0x1f 000071 call otp_enable_chgpump65 
+0x20 000072 call otp_set_addr 
+0x21 000073 call otp_reset 
+:      000074 p_otp_program:
+0x22 000075 ifetcht 1 ,rega 
+0x23 000076 increase 1 ,rega 
+0x24 000077 force 0 ,queue 
+:      000078 p_otp_program_bit:
+0x25 000079 set0 mark_otp_write ,mark 
+:      000080 p_otp_program_bit2:
+0x26 000081 qisolate0 temp 
+0x27 000082 branch p_otp_skip_0 ,true 
+0x28 000083 fetch 1 ,core_otp_din 
+0x29 000084 set1 6 ,pdata 
+0x2a 000085 set1 7 ,pdata 
+0x2b 000086 store 1 ,core_otp_din 
+0x2c 000087 jam 0x02 ,core_otp_ctrl 
+0x2d 000088 jam 0x82 ,core_otp_ctrl 
+0x2e 000089 set0 7 ,pdata 
+0x2f 000090 store 1 ,core_otp_din 
+0x30 000091 jam 0x8a ,core_otp_ctrl 
+0x31 000092 nop 11 
+0x32 000093 jam 0xca ,core_otp_ctrl 
+0x33 000094 nop 33 
+0x34 000095 jam 0x4a ,core_otp_ctrl 
+0x35 000096 nop 44 
+0x36 000097 jam 0xca ,core_otp_ctrl 
+0x37 000098 nop 22 
+0x38 000099 jam 0x8a ,core_otp_ctrl 
+0x39 000100 nop 33 
+0x3a 000101 jam 0x82 ,core_otp_ctrl 
+0x3b 000102 nop 1 
+0x3c 000103 jam 0x92 ,core_otp_ctrl 
+0x3d 000104 nop 10 
+0x3e 000105 jam 0xb2 ,core_otp_ctrl 
+0x3f 000106 fetch 1 ,core_otp_rdata 
+0x40 000107 jam 0x92 ,core_otp_ctrl 
+0x41 000108 nop 1 
+0x42 000109 jam 0x82 ,core_otp_ctrl 
+0x43 000110 nop 1 
+0x44 000111 qisolate0 pdata 
+0x45 000112 branch p_otp_program_bit ,true 
+0x46 000113 bmark1 mark_otp_write ,p_otp_skip_0 
+0x47 000114 set1 mark_otp_write ,mark 
+0x48 000115 branch p_otp_program_bit2 
+:      000117 p_otp_skip_0:
+0x49 000118 fetch 2 ,core_otp_addr 
+0x4a 000119 increase 1 ,pdata 
+0x4b 000120 store 2 ,core_otp_addr 
+0x4c 000121 increase 1 ,queue 
+0x4d 000122 compare 8 ,queue ,0xf 
+0x4e 000123 nbranch p_otp_program_bit ,true 
+0x4f 000124 loop p_otp_program 
+0x50 000125 branch otp_disable_chgpump 
+:      000127 p_soft_reset:
+0x51 000128 nbranch soft_reset + 1 ,wake 
+0x52 000129 until null ,lpo_edge 
+0x53 000130 until null ,lpo_edge 
+0x54 000131 branch soft_reset + 1 
+:      000133 p_le_receive_rxon:
+0x55 000135 call le_prep 
+0x56 000136 bmark0 mark_ble_lr ,p_le_receive_nolr 
+0x57 000137 pulse dewhiten_code_calc 
+0x58 000138 nop 30 
+0x59 000139 call le_prep 
+0x5a 000140 lshift3 timeup ,timeup 
+:      000141 p_le_receive_nolr:
+0x5b 000142 disable match 
+0x5c 000143 enable decode_fec0 
+0x5d 000144 enable is_rx 
+0x5e 000145 disable is_tx 
+0x5f 000146 copy timeup ,stop_watch 
+0x60 000147 correlate null ,timeout 
+0x61 000148 branch p_le_receive_on_attempt ,attempt 
+0x62 000149 copy clke ,temp 
+0x63 000150 storet 6 ,mem_sync_clke 
+:      000151 p_le_receive_on_attempt:
+0x64 000152 nbranch le_unsync_end ,sync 
+0x65 000153 enable swfine 
+0x66 000154 fetch 1 ,mem_le_tx_ifs_defference 
+0x67 000155 arg param_20ms_init ,temp 
+0x68 000156 iadd temp ,temp 
+0x69 000157 fetch 1 ,mem_system_clk 
+0x6a 000158 imul32 temp ,stop_watch 
+0x6b 000159 call rf_debug_rx_sync_line 
+0x6c 000160 branch le_receive_skip ,attempt 
+0x6d 000161 call p_calc_clke_all_modem 
+0x6e 000162 fetch 1 ,mem_le_state 
+0x6f 000163 bbit0 lestate_got_first_packet ,le_receive_skip 
+0x70 000164 call lpm_adjust_clk ,wake 
+0x71 000165 branch le_receive_skip 
+:      000167 p_calc_clke_all_modem:
+0x72 000168 fetcht 6 ,mem_sync_clke 
+0x73 000169 copy clke ,pdata 
+0x74 000170 call clk_diff 
+0x75 000171 copy pdata ,temp 
+0x76 000173 call calc_clke_all_modem 
+0x77 000174 copy clke ,rege 
+0x78 000175 copy clke_rt ,pdata 
+0x79 000176 iadd temp ,pdata 
+0x7a 000178 copy pdata ,clke_rt 
+0x7b 000179 rtn 
+:      000181 p_lpm_adjust_clk:
+0x7c 000183 bmark0 mark_context ,lpm_clear_counter 
+0x7d 000184 fetcht 4 ,mem_sleep_counter_all 
+0x7e 000185 arg 0x600 ,pdata 
+0x7f 000186 isub temp ,null 
+0x80 000187 rtn positive 
+0x81 000188 copy temp ,rega 
+0x82 000189 fetcht 6 ,mem_sync_clke 
+0x83 000190 deposit rege 
+0x84 000191 call clk_diff_rt 
+0x85 000194 copy rega ,temp 
+0x86 000195 branch lpm_adjust_clk + 6 
+:      000197 p_shutter_dy_keyscan_key_check_long_press:
+0x87 000198 copy queue ,pdata 
+0x88 000199 beq shutter_like_key_num ,shutter_dy_link_key_long_press 
+0x89 000200 beq shutter_left_key_num ,shutter_dy_loop_send_volume_dec_page 
+0x8a 000201 beq shutter_right_key_num ,shutter_dy_loop_send_volume_inc_page 
+0x8b 000202 beq shutter_fun_key_num ,p_shutter_key_fun_long_press 
+0x8c 000203 beq shutter_fun1_key_num ,p_shutter_key_fun1_long_press 
+0x8d 000204 beq shutter_fun2_key_num ,p_shutter_key_fun2_long_press 
+0x8e 000205 beq shutter_fun3_key_num ,p_shutter_key_fun3_long_press 
+0x8f 000206 branch shutter_dy_key_long_press_set_key_normal 
+:      000208 p_shutter_key_fun_long_press:
+0x90 000209 jam 1 ,mem_shutter_dy_fouse_time 
+0x91 000210 jam fouseup ,mem_shutter_fouse_select 
+0x92 000211 rtn 
+:      000212 p_shutter_key_fun1_long_press:
+0x93 000213 jam 1 ,mem_shutter_dy_fouse_time 
+0x94 000214 jam fousedown ,mem_shutter_fouse_select 
+0x95 000215 rtn 
+:      000216 p_shutter_key_fun2_long_press:
+0x96 000217 rtn 
+:      000219 p_shutter_key_fun3_long_press:
+0x97 000220 rtn 
+:      000223 p_shutter_dy_keyscan_key_process_next:
+0x98 000224 fetch 1 ,mem_move_mode_set 
+0x99 000225 beq move_single_key ,shutter_dy_skip_check_combine_key 
+0x9a 000226 call shutter_dy_check_combine_key_release 
+0x9b 000227 call p_shutter_dy_check_combine_key 
+0x9c 000228 rtn user 
+0x9d 000229 branch shutter_dy_skip_check_combine_key 
+:      000231 p_shutter_dy_check_combine_key:
+0x9e 000232 arg 0 ,queue 
+:      000233 p_shutter_dy_check_combine_key_loop:
+0x9f 000234 arg mem_combine_key0 ,regb 
+0xa0 000235 arg 2 ,pdata 
+0xa1 000236 imul32 queue ,pdata 
+0xa2 000237 iadd regb ,regb 
+0xa3 000238 ifetch 2 ,regb 
+0xa4 000240 rtn blank 
+0xa5 000241 fetcht 2 ,mem_key_value_temp 
+0xa6 000242 ixor temp ,null 
+0xa7 000243 branch p_shutter_dy_check_combine_key_parse ,zero 
+0xa8 000244 increase 1 ,queue 
+0xa9 000245 branch p_shutter_dy_check_combine_key_loop 
+:      000247 p_shutter_dy_check_combine_key_parse:
+0xaa 000248 store 2 ,mem_combine_key_state0 
+0xab 000249 call app_led_on 
+0xac 000250 arg mem_combine_key0_press ,regc 
+0xad 000251 arg max_queue_num_combinekey ,pdata 
+0xae 000252 imul32 queue ,pdata 
+0xaf 000253 iadd regc ,regc 
+0xb0 000254 branch shutter_dy_combine_key_enableuser 
+:      000256 p_shutter_dy_check_combine_key_release:
+0xb1 000257 fetch 2 ,mem_combine_key_state0 
+0xb2 000258 rtn blank 
+0xb3 000259 fetcht 2 ,mem_key_value_temp 
+0xb4 000260 sub temp ,0 ,null 
+0xb5 000261 branch p_shutter_dy_check_combine_key_release_all ,zero 
+0xb6 000262 branch p_shutter_dy_check_combine_key_release + 5 
+:      000264 p_shutter_dy_check_combine_key_release_all:
+0xb7 000265 jam 1 ,mem_shutter_long_key_released_flag 
+0xb8 000266 call app_led_off 
+0xb9 000267 arg mem_combine_key_release ,regc 
+0xba 000268 setarg 0 
+0xbb 000269 store 2 ,mem_combine_key_state0 
+0xbc 000270 jam 50 ,mem_shutter_1s_timer 
+0xbd 000271 call shutter_dy_combine_key_enableuser 
+0xbe 000272 fetch 1 ,mem_shutter_key_num 
+0xbf 000273 mul32 pdata ,shutter_key_conf_sate_bytes ,loopcnt 
+0xc0 000274 arg mem_shutter_nv_data ,contw 
+0xc1 000275 branch clear_mem 
+:      000277 p_shutter_dy_key_press:
+0xc2 000278 fetch 1 ,mem_shutter_link_loop_flag 
+0xc3 000279 nbranch p_shutter_dy_key_value_filter ,blank 
+:      000280 p_shutter_dy_key_press_next:
+0xc4 000281 jam 1 ,mem_shutter_key_pressed 
+0xc5 000282 call app_led_on 
+0xc6 000283 call p_shutter_dy_key_press_clk 
+0xc7 000284 call shutter_dy_jude_queue_size 
+0xc8 000285 branch shutter_dy_over_clear ,positive 
+0xc9 000286 copy queue ,pdata 
+0xca 000287 store 1 ,mem_last_press_key_value 
+0xcb 000289 rtn 
+:      000291 p_shutter_dy_key_value_filter:
+0xcc 000292 copy queue ,pdata 
+0xcd 000293 rtnne shutter_like_key_num 
+0xce 000294 branch p_shutter_dy_key_press_next 
+:      000296 p_shutter_dy_key_press_clk:
+0xcf 000297 arg shutter_key_conf_sate_bytes ,pdata 
+0xd0 000298 imul32 queue ,pdata 
+0xd1 000299 arg mem_shutter_nv_data ,regc 
+0xd2 000300 branch shutter_dy_key_press_clk + 3 
+:      000302 p_le_rx_dec:
+0xd3 000303 call le_check_retransmit 
+0xd4 000304 fetchr rega ,1 ,mem_le_rxbuf_data_length 
+0xd5 000305 increase -4 ,rega 
+0xd6 000306 nbranch le_crc_fail_consecutive ,positive 
+0xd7 000307 branch le_rx_dec + 6 
+:      000309 p_le_rx_nopayload:
+0xd8 000310 parse demod ,bucket ,24 
+0xd9 000311 rshift32 pdata ,pdata 
+0xda 000312 rshift16 pdata ,pdata 
+0xdb 000313 istore 3 ,contw 
+0xdc 000314 enable swfine 
+0xdd 000315 call le_set_until_tx_timer 
+0xde 000316 branch le_crc_fail ,crc_failed 
+0xdf 000317 bmark0 mark_ble_encryption ,le_rx_match 
+0xe0 000318 fetch 1 ,mem_le_rxbuf_data_length 
+0xe1 000319 branch le_rx_match ,blank 
+0xe2 000320 increase -4 ,pdata 
+0xe3 000321 store 1 ,mem_le_rxbuf_data_length 
+0xe4 000322 call wait_ccm_done 
+0xe5 000323 fetch 1 ,core_misc_status 
+0xe6 000324 bbit0 7 ,le_crc_fail_consecutive 
+0xe7 000325 force regidx_result ,regext_index 
+0xe8 000326 storer regext ,4 ,mem_le_peer_mic 
+0xe9 000327 branch le_rx_match 
+:      000329 p_shutter_dy_le_parse_att:
+0xea 000330 copy rega ,contr 
+0xeb 000331 ifetch 3 ,contr 
+0xec 000332 store 3 ,mem_le_att_opcode 
+0xed 000333 beq attop_find_by_type_value_response ,shutter_dy_le_parse_att_find_by_type_value_rsp 
+0xee 000334 beq attop_error_response ,p_shutter_dy_le_parse_error_rsp 
+0xef 000335 branch shutter_dy_le_parse_att + 6 
+:      000337 p_shutter_dy_le_parse_error_rsp:
+0xf0 000338 increase -2 ,contr 
+0xf1 000339 ifetch 1 ,contr 
+0xf2 000340 beq attop_find_by_type_value_request ,p_shutter_dy_not_iphone_read_conf 
+0xf3 000341 rtn 
+:      000343 p_shutter_dy_not_iphone_read_conf:
+0xf4 000344 branch p_shutter_dy_remote_not_iphone 
+:      000346 p_shutter_dy_remote_not_iphone:
+0xf5 000347 jam 1 ,mem_shutter_back_count 
+0xf6 000348 jam 0 ,mem_iphone_flag 
+0xf7 000349 jam 0 ,mem_last_shutter_le_iphone_flag 
+0xf8 000350 jam 10 ,mem_send_data_delay 
+0xf9 000351 rtn 
+:      000353 p_shutter_dy_shutter_key_release:
+0xfa 000354 call shutter_dy_key_release_led 
+:      000355 p_shutter_dy_shutter_key_release_time:
+0xfb 000356 arg shutter_key_conf_sate_bytes ,pdata 
+0xfc 000357 imul32 queue ,pdata 
+0xfd 000358 arg mem_shutter_nv_data ,regc 
+0xfe 000359 iadd regc ,regc 
+0xff 000360 ifetcht 4 ,regc 
+0x100 000361 sub temp ,0 ,null 
+0x101 000362 rtn zero 
+0x102 000363 copy clkn_bt ,pdata 
+0x103 000364 isub temp ,temp 
+0x104 000365 ncall ui_timer_timeout ,positive 
+0x105 000366 add regc ,key_state_longpress_offset ,contr 
+0x106 000367 ifetch 1 ,contr 
+0x107 000368 nbranch p_shutter_dy_push_queue_long_release ,blank 
+0x108 000369 branch shutter_dy_shutter_key_release_time + 13 
+:      000371 p_shutter_dy_push_queue_long_release:
+0x109 000372 jam 1 ,mem_shutter_long_key_released_flag 
+0x10a 000373 call shutter_clear_dy_key_state 
+0x10b 000374 call shutter_dy_clear_volume_timer 
+0x10c 000375 copy queue ,pdata 
+0x10d 000376 beq shutter_fun_key_num ,p_fouse_up_long_release 
+0x10e 000377 beq shutter_fun1_key_num ,p_fouse_down_long_release 
+0x10f 000378 arg mem_key0_long_release ,regc 
+0x110 000379 arg max_queue_num_long_release ,pdata 
+0x111 000380 branch shutter_dy_push_queue_press_or_release 
+:      000382 p_fouse_up_long_release:
+0x112 000383 call p_shutter_fouse_release_clear 
+0x113 000384 call p_shutter_dy_fouseup_init 
+0x114 000385 arg mem_fouse_up_long_release ,regc 
+0x115 000386 branch push_buffer_in_queue 
+:      000388 p_fouse_down_long_release:
+0x116 000389 call p_shutter_fouse_release_clear 
+0x117 000390 call p_shutter_dy_fousedown_init 
+0x118 000391 arg mem_fouse_down_long_release ,regc 
+0x119 000392 branch push_buffer_in_queue 
+:      000394 p_shutter_fouse_release_clear:
+0x11a 000395 jam 0 ,mem_shutter_dy_fouse_time 
+0x11b 000396 jam 0 ,mem_shutter_fouse_select 
+0x11c 000397 rtn 
+:      000399 p_main_loop:
+0x11d 000400 call sp_calc_sequence_256 
+0x11e 000401 call sp_calc_sequence_256_check 
+0x11f 000402 call le_advertising_dispatch 
+0x120 000403 call idle_dispatch 
+0x121 000404 call app_process_idle 
+0x122 000405 call connection_dispatch 
+0x123 000406 call g24_dispatch 
+0x124 000407 call lpm_dispatch 
+0x125 000408 branch p_main_loop 
+:      000411 p_set_sync_on:
+0x126 000412 jam 0x60 ,0x8a0f 
+0x127 000413 jam 0xaa ,0x8a10 
+0x128 000414 jam 0x7a ,0x8a12 
+0x129 000415 jam 0x00 ,0x8a25 
+0x12a 000416 jam 0x00 ,0x8a26 
+0x12b 000417 nop 60 
+0x12c 000418 jam 0x20 ,0x8a20 
+0x12d 000419 jam 0xf5 ,0x8a23 
+0x12e 000420 jam 0x12 ,0x8a24 
+0x12f 000421 jam 0x10 ,0x8a24 
+0x130 000422 nop 60 
+0x131 000423 jam 0x60 ,0x8a12 
+0x132 000424 jam 0xdd ,0x8a23 
+0x133 000425 rtn 
+:      000427 p_set_ck2rfp11:
+0x134 000428 until null ,lpo_edge 
+0x135 000429 jam 0x58 ,0x813c 
+0x136 000430 until null ,lpo_edge 
+0x137 000431 rtn 
+:      000433 p_initialize_radio_cont:
+0x138 000434 jam 0 ,mem_le_testtype 
+0x139 000435 jam 0 ,mem_cmd_le_create_conn 
+0x13a 000436 until null ,lpo_edge 
+0x13b 000438 jam 0x0d ,0x8946 
+0x13c 000439 jam 0x10 ,0x896f 
+0x13d 000441 jam 0x40 ,core_rx_cfg0 
+0x13e 000442 jam 0xcd ,0x8a13 
+0x13f 000443 jam 0x10 ,0x8a06 
+0x140 000444 jam 0x4a ,0x8a84 
+0x141 000445 jam 0x40 ,0x8a85 
+0x142 000446 jam 0xfe ,0x8a16 
+0x143 000447 call p_set_otp_config 
+0x144 000449 fetch 1 ,mem_wdt_always_work 
+0x145 000450 call wdt_set_disable ,blank 
+0x146 000451 ncall p_set_ck2rfp11 ,wake 
+0x147 000452 until null ,lpo_edge 
+0x148 000453 jam 0x5f ,0x813b 
+0x149 000454 fetch 1 ,mem_fcomp_div 
+0x14a 000455 beq xtal_16m ,p_initialize_radio_16m 
+0x14b 000456 fetch 1 ,mem_ring_ibias_trim 
+0x14c 000457 or_into 0x04 ,pdata 
+0x14d 000458 store 1 ,0x8a02 
+0x14e 000459 jam 0x01 ,0x890f 
+0x14f 000460 jam 0x24 ,0x8a80 
+0x150 000461 jam 0x62 ,0x8a81 
+0x151 000462 setarg 0xe61212 
+0x152 000463 store 3 ,0x8a73 
+:      000464 p_initialize_radio2:
+0x153 000465 jam 0x60 ,0x8a86 
+0x154 000466 jam 0x3b ,0x8a8b 
+0x155 000467 call p_dpll_on 
+0x156 000468 jam 0 ,core_config 
+0x157 000469 jam clksel_dpll ,core_clksel 
+0x158 000470 setarg 0x557474 
+0x159 000471 store 3 ,0x8968 
+0x15a 000472 jam 0x6e ,0x8960 
+0x15b 000473 call p_rx_dcoc 
+0x15c 000474 call p_rfpll_aac_ghpc 
+0x15d 000475 call p_set_xtal_cap 
+0x15e 000476 jam system_clk_12m ,mem_system_clk 
+0x15f 000477 call sadc_calibration 
+0x160 000478 branch p_dpll_ring_ibias_calc 
+:      000480 p_set_xtal_cap:
+0x161 000481 rtn wake 
+0x162 000482 until null ,lpo_edge 
+0x163 000483 fetch 1 ,mem_xtal_c_sel 
+0x164 000484 store 1 ,core_xtal_cap 
+0x165 000485 until null ,lpo_edge 
+0x166 000486 rtn 
+:      000488 p_dpll_on:
+0x167 000489 fetch 1 ,mem_fcomp_div 
+0x168 000490 beq xtal_24m ,p_dpll_on_24m 
+0x169 000491 fetch 1 ,mem_ring_ibias_trim 
+0x16a 000492 or_into 0x06 ,pdata 
+0x16b 000493 store 1 ,0x8a02 
+0x16c 000494 jam 0xe0 ,0x8a05 
+:      000495 p_dpll_on_24m:
+0x16d 000496 jam 0xd8 ,0x8a00 
+0x16e 000497 nop 60 
+0x16f 000498 jam 0xa0 ,0x8a01 
+0x170 000499 jam 0xdf ,0x8a00 
+0x171 000500 jam 0xfa ,0x8a01 
+0x172 000501 nop 20 
+0x173 000502 jam 0x9f ,0x8a00 
+0x174 000503 rtn 
+:      000505 p_initialize_radio_16m:
+0x175 000506 fetch 1 ,mem_ring_ibias_trim 
+0x176 000507 or_into 0x06 ,pdata 
+0x177 000508 store 1 ,0x8a02 
+0x178 000509 jam 0x00 ,0x890f 
+0x179 000510 jam 0x23 ,0x8a80 
+0x17a 000511 jam 0xb0 ,0x8a81 
+0x17b 000512 setarg 0xe40909 
+0x17c 000513 store 3 ,0x8a73 
+0x17d 000514 jam 0x2a ,0x8a76 
+0x17e 000515 jam 0x04 ,0x8902 
+0x17f 000516 branch p_initialize_radio2 
+:      000518 p_set_tx_power:
+0x180 000519 fetch 1 ,mem_tx_power 
+0x181 000520 beq tx_power_10db ,p_set_tx_power_10db 
+0x182 000521 branch set_tx_power + 2 
+:      000523 p_set_tx_power_10db:
+0x183 000524 jam 0x25 ,0x8a14 
+0x184 000525 setarg 0xa93f3f 
+0x185 000526 store 3 ,0x8a60 
+0x186 000527 jam 0x1f ,0x8a63 
+0x187 000528 rtn 
+:      000530 p_set_otp_config:
+0x188 000531 branch p_set_otp_config_wake ,wake 
+0x189 000532 fetch 4 ,mem_otp_core_ldo 
+0x18a 000533 rtn blank 
+0x18b 000534 until null ,lpo_edge 
+0x18c 000535 fetch 1 ,0x8136 
+0x18d 000536 and pdata ,0xf0 ,pdata 
+0x18e 000537 fetcht 1 ,mem_otp_core_ldo 
+0x18f 000538 ior temp ,pdata 
+0x190 000539 store 1 ,0x8136 
+0x191 000540 until null ,lpo_edge 
+0x192 000542 fetch 1 ,0x8138 
+0x193 000543 and pdata ,0x7 ,pdata 
+0x194 000544 fetcht 1 ,mem_otp_verf_bg 
+0x195 000545 lshift3 temp ,temp 
+0x196 000546 ior temp ,pdata 
+0x197 000547 store 1 ,0x8138 
+0x198 000548 until null ,lpo_edge 
+:      000550 p_set_otp_config2:
+0x199 000551 fetch 1 ,0x8acb 
+0x19a 000552 and pdata ,0xf0 ,pdata 
+0x19b 000553 fetcht 1 ,mem_otp_charge_pump 
+0x19c 000554 storet 1 ,mem_otp_charge_pump_x 
+0x19d 000555 ior temp ,pdata 
+0x19e 000556 store 1 ,0x8acb 
+0x19f 000558 fetch 1 ,mem_otp_dpll_ibais 
+0x1a0 000559 store 1 ,mem_otp_dpll_ibais_x 
+0x1a1 000560 isolate1 3 ,pdata 
+0x1a2 000561 fetch 1 ,0x8a06 
+0x1a3 000562 setflag true ,7 ,pdata 
+0x1a4 000563 store 1 ,0x8a06 
+0x1a5 000565 fetch 1 ,mem_otp_dpll_ibais 
+0x1a6 000566 and pdata ,7 ,temp 
+0x1a7 000567 lshift4 temp ,temp 
+0x1a8 000568 lshift temp ,temp 
+0x1a9 000569 storet 1 ,mem_ring_ibias_trim 
+0x1aa 000570 fetch 1 ,0x8a02 
+0x1ab 000571 and pdata ,0x1f ,pdata 
+0x1ac 000572 ior temp ,pdata 
+0x1ad 000573 store 1 ,0x8a02 
+0x1ae 000574 rtn 
+:      000576 p_set_otp_config_wake:
+0x1af 000577 fetch 2 ,mem_otp_charge_pump_x 
+0x1b0 000578 rtn blank 
+0x1b1 000579 store 2 ,mem_otp_charge_pump 
+0x1b2 000580 branch p_set_otp_config2 
+:      000582 p_rf_rx_enable:
+0x1b3 000584 call rf_debug_rx_gpio_high 
+0x1b4 000585 call rf_rx_agc_set 
+0x1b5 000586 force 8 ,radio_ctrl 
+0x1b6 000587 force 0 ,radio_ctrl 
+0x1b7 000589 setarg 0x0aaada 
+0x1b8 000590 store 3 ,0x8a0f 
+0x1b9 000591 jam 0x40 ,0x8a25 
+0x1ba 000592 jam 0x10 ,0x8a26 
+0x1bb 000593 nop 60 
+0x1bc 000594 jam 0xfb ,0x8a01 
+0x1bd 000595 jam 0xff ,0x8a25 
+0x1be 000596 jam 0x30 ,0x8a26 
+0x1bf 000597 jam 0xfe ,0x8a16 
+0x1c0 000598 branch rf_rx_enable + 14 
+:      000600 p_txon:
+0x1c1 000602 setarg 0x0aaa7e 
+0x1c2 000603 store 3 ,0x8a0f 
+0x1c3 000604 nop 60 
+0x1c4 000605 jam 0x00 ,0x8a25 
+0x1c5 000606 jam 0x0d ,0x8a26 
+0x1c6 000607 jam 0xf6 ,0x8a16 
+0x1c7 000608 branch txon + 7 
+:      000610 p_otp_read_data:
+0x1c8 000611 call enable_otp_read 
+0x1c9 000612 call otp_read_data + 1 
+0x1ca 000613 branch otp_disable_chgpump 
+:      000615 p_shutter_dy_key_conf:
+0x1cb 000616 fetch 1 ,mem_shutter_key_num_conf 
+0x1cc 000617 copy pdata ,loopcnt 
+0x1cd 000618 store 1 ,mem_shutter_key_num 
+0x1ce 000619 setarg mem_shutter_key_num 
+0x1cf 000620 store 2 ,mem_keyscan_ptr 
+0x1d0 000621 arg mem_shutter_dy_key_conf ,contr 
+0x1d1 000622 arg mem_shutter_key_conf0 ,contw 
+0x1d2 000623 branch memcpy 
+:      000625 p_shutter_dy_init:
+0x1d3 000626 call enable_authrom 
+0x1d4 000627 rtn wake 
+0x1d5 000628 call app_param_init 
+0x1d6 000629 call p_shutter_adc_config_init 
+0x1d7 000630 jam 0 ,mem_lpm_mode 
+0x1d8 000631 call p_shutter_dy_key_conf 
+0x1d9 000632 call shutter_dy_adv_conf 
+0x1da 000633 setarg 0x0001 
+0x1db 000634 store 2 ,mem_ble_shutter_reconn_timeout 
+0x1dc 000635 jam 0x0a ,mem_lpm_overhead 
+0x1dd 000637 setarg p_shutter_dy_process_idle 
+0x1de 000638 store 2 ,mem_cb_idle_process 
+0x1df 000640 setarg p_shutter_dy_process_bb_event 
+0x1e0 000641 store 2 ,mem_cb_bb_event_process 
+0x1e1 000643 setarg p_ble_shutter_receive_data 
+0x1e2 000644 store 2 ,mem_cb_att_write 
+0x1e3 000646 setarg shutter_le_scale_lpm_lock 
+0x1e4 000647 store 2 ,mem_cb_check_wakelock 
+0x1e5 000649 setarg p_shutter_le_before_hibernate 
+0x1e6 000650 store 2 ,mem_cb_before_hibernate 
+0x1e7 000652 setarg shutter_process_lpm_before 
+0x1e8 000653 store 2 ,mem_cb_before_lpm 
+0x1e9 000655 setarg p_shutter_dy_le_bb_event_timer 
+0x1ea 000656 store 2 ,mem_cb_event_timer 
+0x1eb 000658 setarg shutter_dy_key_change 
+0x1ec 000659 store 2 ,mem_cb_shutter_keycan 
+0x1ed 000661 setarg shutter_soft_swtich_power_on 
+0x1ee 000662 store 2 ,mem_shutter_soft_switch_poweron_callback_function 
+0x1ef 000664 setarg shutter_soft_swtich_power_off 
+0x1f0 000665 store 2 ,mem_shutter_soft_switch_poweroff_callback_function 
+0x1f1 000667 call shutter_common_init + 8 
+0x1f2 000669 fetch 2 ,mem_shutter_le_pairing_handle 
+0x1f3 000670 store 2 ,mem_le_pairing_handle 
+0x1f4 000671 fetch 8 ,mem_ble_shutter_interval_min_new 
+0x1f5 000672 store 8 ,mem_ble_shutter_interval_min 
+0x1f6 000676 branch shutter_power_switch 
+:      000690 p_shutter_le_before_hibernate:
+0x1f7 000691 call gpio_set_before_lpm 
+0x1f8 000692 jam ui_button_gpio_disable ,mem_ui_button_gpio 
+0x1f9 000693 call p_set_key_gpio_before_hiernate 
+0x1fa 000694 call keyscan_process_lpm_before 
+0x1fb 000695 branch disable_authrom 
+:      000697 p_set_key_gpio_before_hiernate:
+0x1fc 000698 fetch 1 ,mem_shutter_hard_soft_switch_case_temp 
+0x1fd 000699 rtn blank 
+0x1fe 000700 fetch 1 ,mem_shutter_key_num_conf 
+0x1ff 000701 copy pdata ,loopcnt 
+0x200 000702 arg mem_shutter_key_conf0 ,rega 
+:      000703 p_set_key_gpio_loop:
+0x201 000704 ifetch 1 ,rega 
+0x202 000705 fetcht 1 ,mem_shutter_soft_switch_button_gpio_temp 
+0x203 000706 isub temp ,null 
+0x204 000707 branch p_set_key_gpio_loop_end ,zero 
+0x205 000708 copy pdata ,temp 
+0x206 000709 call p_shutter_gpio_config_input_pd 
+:      000710 p_set_key_gpio_loop_end:
+0x207 000711 increase 1 ,rega 
+0x208 000712 loop p_set_key_gpio_loop 
+0x209 000713 rtn 
+:      000715 p_shutter_gpio_config_input_pd:
+0x20a 000716 set1 gpio_active_bit ,temp 
+0x20b 000717 branch gpio_config_input 
+:      000719 p_shutter_dy_le_bb_event_timer:
+0x20c 000720 call p_shutter_adc_read_timer 
+0x20d 000721 call p_shutter_like_key_press_event_timer 
+0x20e 000722 call shutter_dy_link_key_loop_timer 
+0x20f 000723 call shutter_dy_long_key_volume_timer 
+0x210 000724 call p_shutter_check_sleep_timer 
+0x211 000725 branch shutter_dy_check_power_off_timer 
+:      000727 p_shutter_like_key_press_event_timer:
+0x212 000728 arg mem_shutter_like_key_press_time ,regc 
+0x213 000729 arg p_shutter_like_key_press_event_timeout ,regb 
+0x214 000730 branch timer_single_step 
+:      000732 p_shutter_like_key_press_event_timeout:
+0x215 000733 fetch 1 ,mem_shutter_photo_click_count 
+0x216 000734 jam 0 ,mem_shutter_photo_click_count 
+0x217 000735 beq 1 ,p_shutter_like_key_press 
+0x218 000736 beq 2 ,p_shutter_like_key_press_event_double 
+0x219 000737 rtn 
+:      000739 p_shutter_like_key_press:
+0x21a 000740 arg mem_key1_release_new ,regc 
+0x21b 000741 branch push_buffer_in_queue 
+:      000743 p_shutter_like_key_press_event_double:
+0x21c 000744 call p_shutter_like_key_press_event_double_ptr 
+0x21d 000745 branch push_buffer_in_queue 
+:      000747 p_shutter_like_key_press_event_double_ptr:
+0x21e 000748 arg mem_shutter_mode_step_android ,regc 
+0x21f 000749 call shutter_dy_check_iphone 
+0x220 000750 rtn blank 
+0x221 000751 arg mem_shutter_mode_step_ios ,regc 
+0x222 000752 rtn 
+:      000754 p_shutter_check_sleep_timer:
+0x223 000755 arg mem_shutter_sleep_timer ,regc 
+0x224 000756 arg p_shutter_sleep_timeout ,regb 
+0x225 000757 branch timer_single_step_2b 
+:      000758 p_shutter_sleep_timeout:
+0x226 000759 jam ss_state_power_off ,mem_shutter_soft_switch_power_state 
+0x227 000760 call app_led_off 
+0x228 000761 call shutter_disconnect_current_connection 
+0x229 000762 branch shutter_wait_power_off 
+:      000764 p_shutter_dy_process_bb_event:
+0x22a 000765 copy regc ,pdata 
+0x22b 000766 beq bt_evt_le_parse_conn_papa_update_rsp ,p_ble_shutter_process_parse_connect_parameter_update_response 
+0x22c 000767 beq bt_evt_le_pairing_success ,p_ble_shutter_pairing_success 
+0x22d 000768 beq bt_evt_le_disconnected ,p_ble_shutter_dy_process_baseband_disconnect 
+0x22e 000769 beq bt_evt_le_connected ,p_ble_shutter_dy_process_baseband_connect 
+0x22f 000770 branch shutter_dy_process_bb_event + 1 
+:      000772 p_ble_shutter_dy_process_baseband_connect:
+0x230 000773 branch ble_shutter_dy_process_baseband_connect 
+:      000775 p_ble_shutter_dy_process_baseband_disconnect:
+0x231 000776 fetch 2 ,mem_ble_shutter_discovery_timeout 
+0x232 000777 store 2 ,mem_shutter_sleep_timer 
+0x233 000778 branch ble_shutter_dy_process_baseband_disconnect 
+:      000780 p_ble_shutter_pairing_success:
+0x234 000781 jam 1 ,mem_shutter_pairing_success 
+0x235 000782 rtn 
+:      000784 p_ble_shutter_process_parse_connect_parameter_update_response:
+0x236 000785 fetch 2 ,mem_le_l2cap_signaling_conn_param_update_rsp_result 
+0x237 000786 rtneq ble_signaling_connect_parameter_update_accepted 
+0x238 000787 fetch 8 ,mem_ble_shutter_interval_min_new 
+0x239 000788 rtn blank 
+0x23a 000789 call shutter_dy_check_iphone 
+0x23b 000790 nbranch p_parameter_updata_response_ios ,blank 
+0x23c 000791 fetch 8 ,mem_ble_shutter_dy_interval_min_new 
+0x23d 000792 store 8 ,mem_le_interval_min 
+0x23e 000793 branch le_l2cap_tx_update_req 
+:      000795 p_ble_shutter_receive_data:
+0x23f 000796 fetch 2 ,mem_le_att_handle 
+0x240 000797 beq gatt_keyboard_write_handle_new ,p_ble_shutter_process_reconnect_complete 
+0x241 000798 rtn 
+:      000800 p_ble_shutter_process_reconnect_complete:
+0x242 000801 call queue_init 
+0x243 000802 jam 1 ,mem_ble_shutter_enable_notify 
+0x244 000803 call shutter_dy_check_iphone 
+0x245 000804 call app_lpm_mult_enable 
+0x246 000805 nbranch p_parameter_updata_response_ios ,blank 
+0x247 000806 fetch 8 ,mem_ble_shutter_dy_interval_min_new 
+0x248 000807 store 8 ,mem_le_interval_min 
+0x249 000808 branch le_l2cap_tx_update_req 
+:      000810 p_parameter_updata_response_ios:
+0x24a 000811 fetch 8 ,mem_ble_shutter_dy_interval_min_ios 
+0x24b 000812 store 8 ,mem_le_interval_min 
+0x24c 000813 branch le_l2cap_tx_update_req 
+:      000815 p_shutter_dy_process_idle:
+0x24d 000816 call p_shutter_dy_shutter_send_data_to_master 
+0x24e 000817 arg key_scan_timer ,queue 
+0x24f 000818 call timer_check 
+0x250 000819 nrtn blank 
+0x251 000820 setarg 0x20 
+0x252 000821 arg key_scan_timer ,queue 
+0x253 000822 call timer_init 
+0x254 000823 disable user 
+0x255 000824 call keyscan_process_lpm_before 
+0x256 000825 call p_shutter_dy_keyscan_key_process 
+0x257 000826 branch p_key_evt_ui_timer_check 
+:      000828 p_shutter_dy_shutter_send_data_to_master:
+0x258 000829 fetch 2 ,mem_ui_state_map 
+0x259 000830 bbit1 ui_state_ble_connected ,p_shutter_dy_pop_queue_to_ble_data 
+0x25a 000831 arg mem_queue_curr_num ,contw 
+0x25b 000832 arg 35 ,loopcnt 
+0x25c 000833 branch clear_mem 
+:      000835 p_shutter_dy_pop_queue_to_ble_data:
+0x25d 000836 call le_fifo_check_nearly_full 
+0x25e 000837 nrtn blank 
+0x25f 000838 call queue_empty 
+0x260 000839 rtn blank 
+0x261 000840 fetcht 4 ,mem_key_send_clk 
+0x262 000841 copy clkn_bt ,pdata 
+0x263 000842 isub temp ,temp 
+0x264 000843 rtn zero 
+0x265 000844 nbranch p_shutter_dy_pop_queue_to_ble_data2 ,positive 
+0x266 000845 fetch 1 ,mem_send_data_delay 
+0x267 000846 isub temp ,null 
+0x268 000847 rtn positive 
+:      000848 p_shutter_dy_pop_queue_to_ble_data2:
+0x269 000849 copy clkn_bt ,pdata 
+0x26a 000850 store 4 ,mem_key_send_clk 
+0x26b 000851 call queue_pop_one_byte 
+0x26c 000852 nrtn user 
+0x26d 000853 pincrease -1 
+0x26e 000854 mul32 pdata ,13 ,pdata 
+0x26f 000855 arg mem_shutter_mousekey_value_list ,temp 
+0x270 000856 iadd temp ,contr 
+0x271 000857 branch le_send_notify_from_list 
+:      000859 p_shutter_dy_keyscan_key_process:
+0x272 000860 fetch 2 ,mem_key_value_xmem 
+0x273 000861 store 2 ,mem_key_value_retention 
+0x274 000862 call shutter_dy_keyscan_key_process_next 
+0x275 000863 fetch 2 ,mem_key_value_retention 
+0x276 000864 store 2 ,mem_key_value_xmem 
+0x277 000866 arg 0 ,queue 
+0x278 000867 fetch 1 ,mem_shutter_key_num 
+0x279 000868 copy pdata ,loopcnt 
+0x27a 000869 arg mem_shutter_nv_data ,regc 
+:      000870 p_shutter_dy_keyscan_key_check_release_loop:
+0x27b 000871 copy loopcnt ,pdata 
+0x27c 000872 store 2 ,mem_temp 
+0x27d 000873 copy regc ,pdata 
+0x27e 000874 store 2 ,mem_regc 
+0x27f 000875 copy queue ,pdata 
+0x280 000876 store 2 ,mem_temp + 2 
+0x281 000877 call p_shutter_dy_keyscan_key_check_release 
+0x282 000879 fetch 2 ,mem_regc 
+0x283 000880 copy pdata ,regc 
+0x284 000881 fetch 2 ,mem_temp + 2 
+0x285 000882 copy pdata ,queue 
+0x286 000883 call shutter_dy_keyscan_key_check_long_press 
+0x287 000885 fetch 2 ,mem_temp + 2 
+0x288 000886 add pdata ,1 ,queue 
+0x289 000887 fetch 2 ,mem_regc 
+0x28a 000888 add pdata ,shutter_key_conf_sate_bytes ,regc 
+0x28b 000889 fetch 2 ,mem_temp 
+0x28c 000890 copy pdata ,loopcnt 
+0x28d 000891 loop p_shutter_dy_keyscan_key_check_release_loop 
+0x28e 000892 rtn 
+:      000894 p_shutter_dy_keyscan_key_check_release:
+0x28f 000895 add regc ,key_state_release_clk_offset ,regb 
+0x290 000896 ifetch key_state_release_clk_length ,regb 
+0x291 000897 rtn blank 
+0x292 000898 copy pdata ,temp 
+0x293 000899 copy clkn_bt ,pdata 
+0x294 000900 isub temp ,temp 
+0x295 000901 ncall ui_timer_timeout ,positive 
+0x296 000902 setarg 1000 
+0x297 000903 isub temp ,null 
+0x298 000904 branch p_shutter_dy_push_queue_release 
+:      000905 p_shutter_dy_push_queue_release:
+0x299 000906 add regc ,4 ,contr 
+0x29a 000907 ifetch 1 ,contr 
+0x29b 000908 branch p_shutter_dy_push_queue_release1 
+:      000910 p_shutter_dy_push_queue_release1:
+0x29c 000911 call shutter_clear_dy_key_state 
+:      000912 p_shutter_dy_push_queue_release1_next:
+0x29d 000913 call shutter_dy_jude_queue_size 
+0x29e 000914 branch shutter_dy_over_clear ,positive 
+0x29f 000915 call p_shutter_dy_le_get_release_ptr 
+0x2a0 000916 copy queue ,pdata 
+0x2a1 000917 beq shutter_fun_key_num ,p_shutter_fun_key_release 
+0x2a2 000918 beq shutter_fun1_key_num ,p_shutter_fun1_key_release 
+0x2a3 000919 beq shutter_fun2_key_num ,p_shutter_fun2_key_release 
+0x2a4 000920 beq shutter_like_key_num ,p_shutter_fun3_key_release 
+0x2a5 000921 branch shutter_dy_push_queue_release1_next + 4 
+:      000923 p_shutter_fun_key_release:
+0x2a6 000924 arg mem_fouse_up_press ,regc 
+0x2a7 000925 branch push_buffer_in_queue 
+:      000927 p_shutter_fun1_key_release:
+0x2a8 000928 arg mem_fouse_down_press ,regc 
+0x2a9 000929 branch push_buffer_in_queue 
+:      000931 p_shutter_fun2_key_release:
+0x2aa 000932 call p_shutter_mode_step_ptr 
+0x2ab 000933 branch push_buffer_in_queue 
+:      000935 p_shutter_mode_step_ptr:
+0x2ac 000936 arg mem_shutter_mode_step_android ,regc 
+0x2ad 000937 call shutter_dy_check_iphone 
+0x2ae 000938 rtn blank 
+0x2af 000939 arg mem_shutter_mode_step_ios ,regc 
+0x2b0 000941 rtn 
+:      000943 p_shutter_fun3_key_release:
+0x2b1 000944 jam 5 ,mem_shutter_like_key_press_time 
+0x2b2 000945 fetch 1 ,mem_shutter_photo_click_count 
+0x2b3 000946 rtneq 2 
+0x2b4 000947 increase 1 ,pdata 
+0x2b5 000948 store 1 ,mem_shutter_photo_click_count 
+0x2b6 000949 rtn 
+:      000951 p_shutter_dy_le_get_release_ptr:
+:      000952 p_shutter_dy_le_get_release_ptr_set:
+0x2b7 000953 arg mem_key0_release_new ,regc 
+0x2b8 000954 jam 90 ,mem_send_data_delay 
+0x2b9 000955 call shutter_dy_check_iphone 
+0x2ba 000956 rtn blank 
+0x2bb 000957 arg mem_key0_release_new_i ,regc 
+0x2bc 000958 copy queue ,pdata 
+0x2bd 000959 jam 20 ,mem_send_data_delay 
+0x2be 000960 rtn 
+:      000963 p_rx_dcoc:
+0x2bf 000965 rtn wake 
+0x2c0 000966 call set_sync_on 
+0x2c1 000967 arg 39 ,temp 
+0x2c2 000968 call set_freq_rx 
+0x2c3 000969 call rf_rx_enable 
+0x2c4 000970 jam 0x7f ,0x8a25 
+0x2c5 000971 jam 0x1a ,0x8a30 
+0x2c6 000972 jam 0x78 ,0x8a31 
+0x2c7 000973 jam 0xb2 ,0x8a8f 
+0x2c8 000974 jam 0 ,0x8ac2 
+0x2c9 000975 jam 0 ,0x8ac3 
+0x2ca 000976 arg 6 ,queue 
+0x2cb 000977 call p_rx_dcoc_avg 
+0x2cc 000978 isolate1 13 ,rega 
+0x2cd 000979 call qset_start 
+0x2ce 000980 isolate1 13 ,regb 
+0x2cf 000981 call qset_p 
+0x2d0 000982 arg 5 ,queue 
+:      000983 p_rx_dcoc_loop2:
+0x2d1 000984 call qset1_p 
+0x2d2 000985 call qset_p 
+0x2d3 000986 call p_rx_dcoc_avg 
+0x2d4 000987 arg 0x8ac2 ,contw 
+0x2d5 000988 rshift4 rega ,pdata 
+0x2d6 000989 call qsetxor 
+0x2d7 000990 rshift4 regb ,pdata 
+0x2d8 000991 call qsetxor 
+0x2d9 000992 increase -1 ,queue 
+0x2da 000993 branch p_rx_dcoc_loop2 ,positive 
+0x2db 000994 branch rx_dcoc_loop2 + 10 
+:      000996 p_rx_dcoc_avg:
+0x2dc 000997 nop 60 
+0x2dd 000998 setarg mem_dcoc_buf 
+0x2de 000999 store 2 ,0x8982 
+0x2df 001000 setarg mem_dcoc_buf_end 
+0x2e0 001001 store 2 ,0x8984 
+0x2e1 001002 jam 0x9 ,0x8981 
+0x2e2 001003 jam 0x3 ,0x8981 
+0x2e3 001004 jam 0x6 ,0x8980 
+0x2e4 001005 nop 60 
+0x2e5 001006 arg 0 ,rega 
+0x2e6 001007 arg 0 ,regb 
+0x2e7 001008 arg 16 ,loopcnt 
+0x2e8 001009 arg mem_dcoc_buf ,contr 
+0x2e9 001010 branch rx_dcoc_loop 
+:      001012 p_rfpll_aac_ghpc:
+0x2ea 001013 rtn wake 
+0x2eb 001014 branch rfpll_aac_ghpc + 1 
+:      001016 p_dpll_ring_ibias_calc:
+0x2ec 001017 rtn 
+:      001019 p_sadc_calibration:
+0x2ed 001020 rtn wake 
+0x2ee 001021 jam 0x77 ,core_gpadc_ctrl 
+0x2ef 001022 jam 0xc9 ,core_gpadc_cfg0 
+0x2f0 001023 jam 0x01 ,core_gpadc_cfg3 
+0x2f1 001024 fetch 1 ,mem_adc_clkdiv 
+0x2f2 001025 store 1 ,core_sadc_clkdiv 
+0x2f3 001026 nop 3000 
+0x2f4 001027 call p_sadc_read 
+0x2f5 001028 jam 0xc1 ,core_gpadc_cfg0 
+0x2f6 001029 fetchr regb ,1 ,mem_spi_write_addr 
+0x2f7 001030 arg 8 ,loopcnt 
+0x2f8 001031 call sadc_cal_read + 1 
+0x2f9 001032 fetch 1 ,mem_spi_write_addr 
+0x2fa 001033 store 1 ,mem_adc_cal_c7 
+0x2fb 001034 storer regb ,1 ,mem_spi_write_addr 
+0x2fc 001035 rtn 
+:      001037 p_sadc_read:
+0x2fd 001038 jam 0x03 ,core_sadc_ctrl 
+:      001039 p_sadc_read_wait:
+0x2fe 001040 fetch 1 ,core_perf_status 
+0x2ff 001041 bbit0 saradc_done ,p_sadc_read_wait 
+0x300 001042 fetcht 2 ,core_sadc_data 
+0x301 001043 storet 2 ,mem_adc_current_value 
+0x302 001044 jam 0x00 ,core_sadc_ctrl 
+0x303 001045 rtn 
+:      001049 p_set_lemode:
+0x304 001050 jam 0x11 ,0x8a82 
+0x305 001051 jam 0x12 ,0x8a8d 
+0x306 001052 jam 0x0a ,0x8a8e 
+0x307 001053 fetch 1 ,mem_fcomp_div 
+0x308 001054 beq xtal_16m ,p_set_lemode_2m_16m 
+0x309 001055 setarg 0x5762 
+0x30a 001056 store 2 ,0x8907 
+:      001057 p_set_lemode_2m:
+0x30b 001058 jam 3 ,0x8901 
+0x30c 001059 jam 3 ,0x8930 
+0x30d 001060 rtnmark1 mark_ble_2m 
+0x30e 001061 jam 1 ,0x8901 
+0x30f 001062 jam 0x07 ,0x8a82 
+0x310 001063 jam 0x44 ,0x8a8d 
+0x311 001064 jam 0x0a ,0x8a8e 
+0x312 001065 fetch 1 ,mem_fcomp_div 
+0x313 001066 beq xtal_16m ,p_set_lemode_1m_16m 
+0x314 001067 setarg 0x2bb1 
+0x315 001068 store 2 ,0x8907 
+:      001069 p_set_lemode_1m:
+0x316 001070 rtnmark0 mark_ble_lr 
+0x317 001071 jam 0x24 ,0x8930 
+0x318 001072 jam 5 ,0x8901 
+0x319 001073 rtn 
+:      001075 p_set_lemode_1m_16m:
+0x31a 001076 setarg 0x4189 
+0x31b 001077 store 2 ,0x8907 
+0x31c 001078 branch p_set_lemode_1m 
+:      001080 p_set_lemode_2m_16m:
+0x31d 001081 setarg 0x8312 
+0x31e 001082 store 2 ,0x8907 
+0x31f 001083 branch p_set_lemode_2m 
+:      001085 p_le_parse:
+0x320 001086 fetch 1 ,mem_le_packet_llid 
+0x321 001087 rtneq llid_reserved 
+0x322 001088 beq llid_le_ll ,le_parse_ll 
+0x323 001089 branch le_parse_l2cap 
+:      001091 p_le_init_adv:
+0x324 001092 set0 mark_ble_crc_fail ,mark 
+0x325 001093 branch le_init_adv + 1 
+:      001095 p_lpm_sleep:
+0x326 001097 fetch 2 ,mem_cb_before_lpm_sleep 
+0x327 001098 call callback_func 
+:      001099 p_lpm_sleep_skip_cb_function:
+0x328 001100 fetch 4 ,mem_sleep_counter_all 
+0x329 001101 iadd temp ,pdata 
+0x32a 001102 store 4 ,mem_sleep_counter_all 
+0x32b 001103 call p_lpm_save_context 
+0x32c 001104 fetch 1 ,mem_lpm_hv_sel 
+0x32d 001105 set1 lpm_doze_en_bit ,pdata 
+0x32e 001106 call lpm_write_sel_hv 
+0x32f 001107 ncall lpm_preon_counter ,wake 
+0x330 001108 until null ,lpo_edge 
+0x331 001109 copy clkn ,pdata 
+0x332 001110 store 6 ,mem_sleep_clkn 
+0x333 001112 fetch 3 ,mem_lpm_isogate 
+0x334 001113 fetchr rega ,1 ,mem_lpm_ldo_sel 
+0x335 001114 arg 3 ,loopcnt 
+0x336 001115 branch lpm_sleep_loop 
+:      001117 p_lpm_save_context:
+0x337 001118 storer mark ,8 ,mem_saved_mark 
+0x338 001119 arg core_gpio_conf ,contr 
+0x339 001120 arg mem_saved_gpio ,contw 
+0x33a 001121 call memcpy16 
+0x33b 001122 arg core_gpio_conf_hi ,contr 
+0x33c 001123 call memcpy8 
+0x33d 001124 fetch 1 ,core_spid_ctrl 
+0x33e 001125 store 1 ,mem_saved_spidctrl 
+0x33f 001126 copy temp ,regb 
+:      001127 p_lpm_write_gpio_wakeup:
+0x340 001128 arg 12 ,loopcnt 
+0x341 001129 arg mem_gpio_wakeup_cfg ,rega 
+0x342 001130 arg core_gpio_wakeup_cfg ,regc 
+0x343 001131 until null ,lpo_edge 
+:      001132 p_lpm_write_gpio_loop:
+0x344 001133 ifetch 1 ,rega 
+0x345 001134 ifetcht 1 ,regc 
+0x346 001135 isub temp ,null 
+0x347 001136 branch p_lpm_write_gpio_loop_next ,zero 
+0x348 001137 istore 1 ,regc 
+0x349 001138 until null ,lpo_edge 
+:      001139 p_lpm_write_gpio_loop_next:
+0x34a 001140 increase 1 ,rega 
+0x34b 001141 increase 1 ,regc 
+0x34c 001142 loop p_lpm_write_gpio_loop 
+0x34d 001143 copy regb ,temp 
+0x34e 001144 rtn 
+:      001147 p_key_evt_ui_timer_check:
+0x34f 001148 arg 0 ,rega 
+0x350 001149 fetcht 4 ,mem_shutter_key_evt_btclk 
+0x351 001150 copy clkn_bt ,regb 
+0x352 001151 copy regb ,pdata 
+0x353 001152 isub temp ,null 
+0x354 001153 ncall ui_timer_timeout ,positive 
+:      001154 p_key_evt_ui_timer_check_loop:
+0x355 001155 copy regb ,pdata 
+0x356 001156 increase 64 ,temp 
+0x357 001157 isub temp ,null 
+0x358 001158 nbranch p_key_evt_ui_timer_check_end ,positive 
+0x359 001159 increase 1 ,rega 
+0x35a 001160 and rega ,0x0f ,pdata 
+0x35b 001161 nbranch p_key_evt_ui_timer_check_loop ,blank 
+0x35c 001162 arg 0 ,rega 
+0x35d 001163 call p_key_evt_ui_timer_check_send_evt 
+:      001164 p_key_evt_ui_timer_init:
+0x35e 001165 copy clkn_bt ,pdata 
+0x35f 001166 store 4 ,mem_shutter_key_evt_btclk 
+0x360 001167 rtn 
+:      001168 p_key_evt_ui_timer_check_end:
+0x361 001169 copy rega ,pdata 
+0x362 001170 rtn blank 
+0x363 001171 increase -64 ,temp 
+0x364 001172 set0 28 ,temp 
+0x365 001173 storet 4 ,mem_shutter_key_evt_btclk 
+:      001174 p_key_evt_ui_timer_check_send_evt:
+0x366 001175 store 1 ,mem_shutter_key_evt_timer_count 
+:      001176 p_key_evt_50ms_loop:
+0x367 001177 fetch 1 ,mem_shutter_key_evt_timer_count 
+0x368 001178 rtn blank 
+0x369 001179 increase -1 ,pdata 
+0x36a 001180 store 1 ,mem_shutter_key_evt_timer_count 
+0x36b 001181 call p_shutter_long_fouse_timer 
+0x36c 001182 branch p_key_evt_50ms_loop 
+:      001184 p_shutter_long_fouse_timer:
+0x36d 001185 arg mem_shutter_dy_fouse_time ,regc 
+0x36e 001186 arg p_shutter_dy_fouse_timeout ,regb 
+0x36f 001187 branch timer_single_step 
+:      001189 p_shutter_dy_fouse_timeout:
+0x370 001190 fetch 1 ,mem_shutter_fouse_select 
+0x371 001191 beq fouseup ,p_shutter_dy_fouseup_event 
+0x372 001192 beq fousedown ,p_shutter_dy_fousedown_event 
+0x373 001193 rtn 
+:      001195 p_shutter_dy_fouseup_event:
+0x374 001196 call shutter_dy_check_iphone 
+0x375 001197 nbranch p_shutter_dy_fouseup_event_ios ,blank 
+0x376 001198 jam 8 ,mem_send_data_delay 
+0x377 001199 jam 1 ,mem_shutter_dy_fouse_time 
+0x378 001200 fetch 1 ,mem_shutter_dy_fouse_count 
+0x379 001201 increase 2 ,pdata 
+0x37a 001202 store 1 ,mem_shutter_dy_fouse_count 
+0x37b 001203 sub pdata ,90 ,null 
+0x37c 001204 call p_shutter_dy_fouseup_init ,zero 
+0x37d 001205 arg mem_fouse_up_long_press ,regc 
+0x37e 001206 call p_shutter_dy_find_value_list_position 
+0x37f 001207 ifetch 2 ,pdata 
+0x380 001208 add pdata ,10 ,pdata 
+0x381 001209 istore 2 ,rega 
+0x382 001210 branch push_buffer_in_queue 
+:      001212 p_shutter_dy_fouseup_event_ios:
+0x383 001213 call p_shutter_dy_fouse_time_ios 
+0x384 001214 fetch 1 ,mem_shutter_dy_fouse_count 
+0x385 001215 increase 1 ,pdata 
+0x386 001216 store 1 ,mem_shutter_dy_fouse_count 
+0x387 001217 sub pdata ,90 ,null 
+0x388 001218 call p_shutter_dy_fouseup_init ,zero 
+0x389 001219 arg mem_fouse_up_long_press ,regc 
+0x38a 001220 call p_shutter_dy_find_value_list_position 
+0x38b 001221 ifetch 2 ,pdata 
+0x38c 001222 add pdata ,18 ,pdata 
+0x38d 001223 istore 2 ,rega 
+0x38e 001224 branch push_buffer_in_queue 
+:      001226 p_shutter_dy_fouseup_init:
+0x38f 001227 jam 0 ,mem_shutter_dy_fouse_count 
+0x390 001228 arg mem_fouse_up_long_release ,regc 
+0x391 001229 call push_buffer_in_queue 
+0x392 001230 arg mem_fouse_up_long_press ,regc 
+0x393 001231 call p_shutter_dy_find_value_list_position 
+0x394 001232 setarg 0x0650 
+0x395 001233 istore 2 ,rega 
+0x396 001234 rtn 
+:      001236 p_shutter_dy_fousedown_event:
+0x397 001237 call shutter_dy_check_iphone 
+0x398 001238 nbranch p_shutter_dy_fousedown_event_ios ,blank 
+0x399 001239 jam 8 ,mem_send_data_delay 
+0x39a 001240 jam 1 ,mem_shutter_dy_fouse_time 
+0x39b 001241 fetch 1 ,mem_shutter_dy_fouse_count 
+0x39c 001242 increase 2 ,pdata 
+0x39d 001243 store 1 ,mem_shutter_dy_fouse_count 
+0x39e 001244 sub pdata ,90 ,null 
+0x39f 001245 call p_shutter_dy_fousedown_init ,zero 
+0x3a0 001246 arg mem_fouse_down_long_press ,regc 
+0x3a1 001247 call p_shutter_dy_find_value_list_position 
+0x3a2 001248 ifetch 2 ,pdata 
+0x3a3 001249 increase -10 ,pdata 
+0x3a4 001250 istore 2 ,rega 
+0x3a5 001251 branch push_buffer_in_queue 
+:      001253 p_shutter_dy_fousedown_event_ios:
+0x3a6 001254 call p_shutter_dy_fouse_time_ios 
+0x3a7 001255 fetch 1 ,mem_shutter_dy_fouse_count 
+0x3a8 001256 increase 1 ,pdata 
+0x3a9 001257 store 1 ,mem_shutter_dy_fouse_count 
+0x3aa 001258 sub pdata ,90 ,null 
+0x3ab 001259 call p_shutter_dy_fousedown_init ,zero 
+0x3ac 001260 arg mem_fouse_down_long_press ,regc 
+0x3ad 001261 call p_shutter_dy_find_value_list_position 
+0x3ae 001262 ifetch 2 ,pdata 
+0x3af 001263 increase -18 ,pdata 
+0x3b0 001264 istore 2 ,rega 
+0x3b1 001265 branch push_buffer_in_queue 
+:      001268 p_shutter_dy_fousedown_init:
+0x3b2 001269 jam 0 ,mem_shutter_dy_fouse_count 
+0x3b3 001270 arg mem_fouse_down_long_release ,regc 
+0x3b4 001271 call push_buffer_in_queue 
+0x3b5 001272 arg mem_fouse_down_long_press ,regc 
+0x3b6 001273 call p_shutter_dy_find_value_list_position 
+0x3b7 001274 setarg 0x0a00 
+0x3b8 001275 istore 2 ,rega 
+0x3b9 001276 rtn 
+:      001278 p_shutter_dy_find_value_list_position:
+0x3ba 001279 arg mem_shutter_mousekey_value_list ,temp 
+0x3bb 001280 ifetch 1 ,regc 
+0x3bc 001281 increase -1 ,pdata 
+0x3bd 001282 mul32 pdata ,13 ,pdata 
+0x3be 001283 iadd temp ,pdata 
+0x3bf 001284 increase 6 ,pdata 
+0x3c0 001285 copy pdata ,rega 
+0x3c1 001286 rtn 
+:      001287 p_shutter_dy_fouse_time_ios:
+0x3c2 001288 jam 1 ,mem_send_data_delay 
+0x3c3 001289 jam 3 ,mem_shutter_dy_fouse_time 
+0x3c4 001290 rtn 
+:      001293 p_shutter_adc_config_init:
+0x3c5 001294 jam 1 ,mem_shutter_start_adc_flag 
+0x3c6 001295 rtn 
+:      001297 p_shutter_adc_read_interval:
+0x3c7 001298 fetch 1 ,mem_shutter_adc_read_timer 
+0x3c8 001299 increase 1 ,pdata 
+0x3c9 001300 store 1 ,mem_shutter_adc_read_timer 
+0x3ca 001301 fetcht 1 ,mem_shutter_adc_read_time_init 
+0x3cb 001302 isub temp ,null 
+0x3cc 001303 rtn 
+:      001305 p_shutter_adc_read_timer:
+:      001306 p_shutter_adc_read_start:
+0x3cd 001307 fetch 1 ,mem_shutter_start_adc_flag 
+0x3ce 001308 rtn blank 
+0x3cf 001309 call p_shutter_adc_read_interval 
+:      001310 p_shutter_adc_read_start_next:
+0x3d0 001311 nrtn positive 
+0x3d1 001312 jam 0 ,mem_shutter_adc_read_timer 
+0x3d2 001313 jam adc_config_hvin ,mem_adc_config_flag 
+0x3d3 001314 call adc_clear_no_power_flag 
+0x3d4 001315 call adc_clear_low_power_flag 
+0x3d5 001316 call p_enable_adc 
+0x3d6 001317 call p_vdd_calculate_by_mode 
+0x3d7 001318 store 2 ,mem_shutter_vdd_now_vol 
+:      001319 p_shutter_adc_data_process:
+0x3d8 001320 arg mem_shutter_vdd_calculate_set ,rega 
+0x3d9 001321 call p_shutter_bat_percent_lowpower_out 
+0x3da 001322 fetch 1 ,mem_adc_power_flag 
+0x3db 001323 bbit1 1 ,p_shutter_low_voltage_power_down 
+0x3dc 001324 bbit0 0 ,p_shutter_adc_no_low_voltage 
+0x3dd 001325 jam 1 ,mem_shutter_adc_last_low_voltage_flag 
+0x3de 001326 branch p_shutter_adc_low_voltage 
+:      001328 p_shutter_bat_percent_lowpower_out:
+0x3df 001329 ifetch 8 ,rega 
+0x3e0 001330 store 8 ,mem_pdatatemp 
+:      001331 p_shutter_bat_percent_lowpower_out_battery:
+0x3e1 001332 call adc_clear_no_power_flag 
+0x3e2 001333 call adc_clear_low_power_flag 
+0x3e3 001334 fetch 2 ,mem_pdatatemp + 6 
+0x3e4 001335 fetcht 2 ,mem_pdatatemp + 2 
+0x3e5 001336 isub temp ,null 
+0x3e6 001337 ncall adc_set_no_power_flag ,positive 
+0x3e7 001339 fetcht 2 ,mem_pdatatemp + 4 
+0x3e8 001340 isub temp ,null 
+0x3e9 001341 ncall adc_set_low_power_flag ,positive 
+:      001342 p_shutter_adc_bat_level_set:
+0x3ea 001343 fetch 2 ,mem_pdatatemp + 6 
+0x3eb 001344 fetcht 2 ,mem_pdatatemp 
+0x3ec 001345 isub temp ,null 
+0x3ed 001346 branch p_shutter_adc_bat_level_100_percent ,positive 
+0x3ee 001347 fetcht 2 ,mem_pdatatemp + 2 
+0x3ef 001348 isub temp ,pdata 
+0x3f0 001349 nbranch p_shutter_adc_bat_level_0_percent ,positive 
+0x3f1 001350 branch p_shutter_adc_bat_level_0_percent ,blank 
+0x3f2 001351 mul32 pdata ,100 ,rega 
+0x3f3 001352 fetch 2 ,mem_pdatatemp 
+0x3f4 001353 fetcht 2 ,mem_pdatatemp + 2 
+0x3f5 001354 isub temp ,temp 
+0x3f6 001355 copy rega ,pdata 
+0x3f7 001356 idiv temp 
+0x3f8 001357 call get_div_result 
+0x3f9 001358 store 1 ,mem_shutter_battery_level_percentage 
+0x3fa 001359 rtn 
+:      001361 p_shutter_adc_bat_level_100_percent:
+0x3fb 001362 jam 100 ,mem_shutter_battery_level_percentage 
+0x3fc 001363 rtn 
+:      001364 p_shutter_adc_bat_level_0_percent:
+0x3fd 001365 jam 0 ,mem_shutter_battery_level_percentage 
+0x3fe 001366 rtn 
+:      001368 p_shutter_low_voltage_power_down:
+0x3ff 001369 call app_led_off 
+0x400 001370 branch app_enter_hibernate 
+:      001372 p_shutter_adc_low_voltage:
+0x401 001373 jam 1 ,mem_shutter_enable_low_voltage_flag 
+0x402 001374 rtn 
+:      001376 p_shutter_adc_no_low_voltage:
+0x403 001377 jam 0 ,mem_shutter_enable_low_voltage_flag 
+0x404 001378 fetch 1 ,mem_shutter_adc_last_low_voltage_flag 
+0x405 001379 rtn blank 
+0x406 001380 call app_led_off 
+0x407 001381 jam 0 ,mem_shutter_adc_last_low_voltage_flag 
+0x408 001382 rtn 
+:      001385 p_adc_init_data:
+0x409 001386 fetch 8 ,mem_otp_adc 
+0x40a 001387 branch adc_init_cal_data_default ,blank 
+0x40b 001388 store 8 ,mem_reference_inter1p8v_2v_adc_io_data 
+0x40c 001389 call enable_otp_read 
+0x40d 001390 call loadcode_check_otp_lock 
+0x40e 001391 arg otp_offset_adc_param_l_c0 ,pdata 
+0x40f 001392 iadd regb ,regb 
+0x410 001393 arg 10 ,loopcnt 
+0x411 001394 arg mem_otp_temp ,rega 
+0x412 001395 call otp_read_data 
+0x413 001396 call disable_otp 
+0x414 001397 fetch 8 ,mem_otp_temp 
+0x415 001398 rtn blank 
+0x416 001399 store 8 ,mem_adc_reference3v_gpio1v_ft_data 
+0x417 001400 ifetch 2 ,contr 
+0x418 001401 istore 2 ,contw 
+0x419 001403 rtn 
+:      001405 p_sadc_cal_write:
+0x41a 001406 fetch 1 ,core_sadc_ctrl 
+0x41b 001407 set1 1 ,pdata 
+0x41c 001408 store 1 ,core_sadc_ctrl 
+0x41d 001409 fetchr regb ,1 ,mem_spi_write_addr 
+0x41e 001410 fetch 1 ,mem_adc_cal_c7 
+0x41f 001411 store 1 ,mem_spi_write_addr 
+0x420 001412 arg 8 ,loopcnt 
+0x421 001413 call sadc_cal_write + 4 
+0x422 001414 storer regb ,1 ,mem_spi_write_addr 
+0x423 001415 fetch 1 ,core_gpadc_cfg2 
+0x424 001416 set0 4 ,pdata 
+0x425 001417 store 1 ,core_gpadc_cfg2 
+0x426 001418 rtn 
+:      001422 p_vdd_calculate_by_mode:
+:      001424 p_vdd_reference_inter3v_calculate:
+0x427 001425 fetch 1 ,mem_adc_config_flag 
+0x428 001426 beq adc_config_hvin ,p_vdd_reference_inter3v_calculate_by_mode_vdcdc 
+0x429 001427 beq adc_config_gpio ,p_vdd_reference_inter3v_calculate_by_mode_gpio 
+0x42a 001428 rtn 
+:      001430 p_vdd_reference_inter3v_calculate_by_mode_vdcdc:
+0x42b 001431 setarg 1000 
+0x42c 001432 store 2 ,mem_reference_voltage 
+0x42d 001433 fetcht 2 ,mem_adc_reference3v_vdcdc3p6v_ft_data 
+0x42e 001434 fetch 2 ,mem_adc_reference3v_vdcdc4p6v_ft_data 
+0x42f 001435 arg 3600 ,regc 
+0x430 001436 call vdd_calculate 
+0x431 001437 branch p_mul1v_div1v_to_cal 
+:      001439 p_vdd_reference_inter3v_calculate_by_mode_gpio:
+0x432 001440 setarg 1000 
+0x433 001441 store 2 ,mem_reference_voltage 
+0x434 001442 fetcht 2 ,mem_adc_reference3v_gpio1v_ft_data 
+0x435 001443 fetch 2 ,mem_adc_reference3v_gpio2v_ft_data 
+0x436 001444 arg 1000 ,regc 
+0x437 001445 call vdd_calculate 
+:      001446 p_mul1v_div1v_to_cal:
+0x438 001447 fetcht 2 ,mem_adc_reference3v_inter1v_ft_data 
+0x439 001448 imul32 temp ,pdata 
+0x43a 001449 fetcht 2 ,mem_adc_reference3v_inter1v_now_data 
+0x43b 001450 idiv temp 
+0x43c 001451 branch get_div_result 
+:      001453 p_enable_adc_init_config:
+0x43d 001454 call p_sadc_cal_write 
+0x43e 001455 fetch 1 ,core_gpadc_cfg1 
+0x43f 001456 set0 7 ,pdata 
+0x440 001457 store 1 ,core_gpadc_cfg1 
+0x441 001458 jam 0x77 ,core_gpadc_ctrl 
+0x442 001459 jam 0xc1 ,core_gpadc_cfg0 
+0x443 001460 jam 0x61 ,core_vtest_ctrl0 
+0x444 001461 jam 0x00 ,core_gpadc_cfg3 
+0x445 001462 rtn 
+:      001464 p_enable_adc:
+:      001466 p_enable_adc_reference_source_inter3v:
+0x446 001467 call p_enable_adc_init_config 
+0x447 001468 call sadc_channel 
+0x448 001469 fetch 1 ,mem_adc_clkdiv 
+0x449 001470 store 1 ,core_sadc_clkdiv 
+0x44a 001471 call sadc_read 
+0x44b 001472 jam 0x60 ,core_vtest_ctrl0 
+0x44c 001473 jam 0x00 ,core_sadc_clkdiv 
+:      001476 p_read_adc_inter1v:
+0x44d 001477 call p_enable_adc_init_config 
+0x44e 001478 fetch 1 ,mem_adc_clkdiv 
+0x44f 001479 store 1 ,core_sadc_clkdiv 
+0x450 001480 jam 0x50 ,core_gpadc_cfg3 
+0x451 001481 jam 0xc0 ,core_vtest_ctrl1 
+0x452 001483 arg 0xb ,regext_index 
+0x453 001484 fetchr regext ,2 ,mem_adc_current_value 
+0x454 001486 jam 0x03 ,core_sadc_ctrl 
+0x455 001487 call p_sar_adc_read_wait 
+0x456 001488 fetcht 2 ,core_sadc_data 
+0x457 001489 storet 2 ,mem_adc_reference3v_inter1v_now_data 
+0x458 001490 call sadc_read_wait + 4 
+0x459 001492 arg 0xb ,regext_index 
+0x45a 001493 storer regext ,2 ,mem_adc_current_value 
+0x45b 001495 jam 0x60 ,core_vtest_ctrl0 
+0x45c 001496 jam 0x00 ,core_sadc_clkdiv 
+0x45d 001497 jam 0x00 ,core_sadc_ctrl 
+0x45e 001498 rtn 
+:      001500 p_sar_adc_read_wait:
+0x45f 001501 fetch 1 ,core_perf_status 
+0x460 001502 bbit0 saradc_done ,p_sar_adc_read_wait 
+0x461 001503 rtn 
+              org 0x2000
+:      001513 start:
+0x2000 001514 call lpmstate 
+:      001516 soft_reset:
+0x2001 001517 bpatch patch00_0 ,mem_patch00 
+0x2002 001518 clear_stack 
+0x2003 001520 call app_param_init 
+0x2004 001521 call initialize_radio 
+0x2005 001522 call iic_init_360khz 
+0x2006 001523 call init_param 
+0x2007 001524 call l2cap_init 
+0x2008 001525 bpatch patch00_1 ,mem_patch00 
+0x2009 001526 call ui_init 
+0x200a 001527 call app_init 
+0x200b 001528 call publickey_init 
+0x200c 001530 call lpm_recover_clk ,wake 
+:      001531 main_loop:
+0x200d 001532 bpatch patch00_2 ,mem_patch00 
+0x200e 001533 call sp_calc_sequence_256 
+0x200f 001534 call sp_calc_sequence_256_check 
+0x2010 001535 call le_advertising_dispatch 
+0x2011 001536 call idle_dispatch 
+0x2012 001537 call app_process_idle 
+0x2013 001538 call connection_dispatch 
+0x2014 001539 call g24_dispatch 
+0x2015 001540 call lpm_dispatch 
+0x2016 001541 call kscan_dispatch 
+0x2017 001542 branch main_loop 
+:      001544 connection_dispatch:
+0x2018 001545 call connection_incontext 
+0x2019 001546 rtnmark0 mark_context 
+0x201a 001547 set0 mark_context ,mark 
+0x201b 001548 call context_save 
+0x201c 001549 branch le_disable 
+:      001551 connection_incontext:
+0x201d 001552 bpatch patch00_3 ,mem_patch00 
+0x201e 001553 call context_search_insniff 
+0x201f 001554 nbranch connection_nosniff ,zero 
+0x2020 001555 call context_load 
+0x2021 001556 add rega ,coffset_mode ,contr 
+0x2022 001557 ifetch 1 ,contr 
+0x2023 001558 bbit1 mode_le ,le_conn_dispatch 
+0x2024 001561 rtn 
+:      001563 connection_nosniff:
+0x2025 001564 jam 0 ,mem_current_context 
+0x2026 001565 call context_get_next 
+0x2027 001566 copy loopcnt ,null 
+0x2028 001567 rtn zero 
+0x2029 001568 branch assert 
+:      001575 idle_dispatch:
+0x202a 001576 fetch 1 ,mem_hci_cmd 
+0x202b 001577 rtn blank 
+0x202c 001578 beq hci_cmd_le_create_conn ,idle_le_create_conn 
+0x202d 001579 call context_search_conn_handle 
+0x202e 001580 rtn zero 
+0x202f 001581 call context_search_plap 
+0x2030 001582 rtn zero 
+:      001583 idle_exit:
+0x2031 001584 jam 0 ,mem_hci_cmd 
+0x2032 001585 rtn 
+:      001587 idle_le_create_conn:
+0x2033 001588 jam hci_cmd_le_create_conn ,mem_cmd_le_create_conn 
+0x2034 001589 jam 0 ,mem_hci_cmd 
+0x2035 001590 rtn 
+:      001594 context_load:
+0x2036 001595 bpatch patch00_4 ,mem_patch00 
+0x2037 001596 set1 mark_context ,mark 
+0x2038 001597 deposit rega 
+0x2039 001598 store 2 ,mem_context_ptr 
+0x203a 001599 force context_size ,loopcnt 
+0x203b 001600 arg mem_le_state ,contw 
+0x203c 001601 add rega ,coffset_mode ,contr 
+0x203d 001602 ifetch 1 ,contr 
+0x203e 001603 copy rega ,contr 
+0x203f 001604 bbit1 mode_le ,memcpy 
+0x2040 001605 rtn 
+:      001607 context_save:
+0x2041 001608 bpatch patch00_5 ,mem_patch00 
+0x2042 001609 fetch 2 ,mem_context_ptr 
+0x2043 001610 iforce contw 
+0x2044 001611 force context_size ,loopcnt 
+0x2045 001612 arg mem_le_state ,contr 
+0x2046 001613 branch memcpy 
+:      001617 context_get_next:
+0x2047 001618 arg context_num ,loopcnt 
+0x2048 001619 fetcht 1 ,mem_current_context 
+:      001620 context_get_next_loop:
+0x2049 001621 increase 1 ,temp 
+0x204a 001622 compare context_num ,temp ,0xff 
+0x204b 001623 nbranch context_get_next_cont ,true 
+0x204c 001624 arg 0 ,temp 
+:      001625 context_get_next_cont:
+0x204d 001626 storet 1 ,mem_current_context 
+0x204e 001627 mul32 temp ,context_size ,pdata 
+0x204f 001628 arg mem_context ,rega 
+0x2050 001629 iadd rega ,rega 
+0x2051 001630 ifetch 1 ,rega 
+0x2052 001631 bbit1 state_insniff ,context_get_next_sniff 
+0x2053 001632 rtnbit1 state_inconn 
+:      001633 context_get_next_sniff:
+0x2054 001634 loop context_get_next_loop 
+0x2055 001635 rtn 
+:      001637 context_new:
+0x2056 001638 bpatch patch00_6 ,mem_patch00 
+0x2057 001639 arg context_search_empty ,regc 
+0x2058 001640 call context_search 
+0x2059 001641 nrtn zero 
+0x205a 001642 deposit rega 
+0x205b 001643 store 2 ,mem_context_ptr 
+0x205c 001644 branch enable_zero 
+:      001649 context_check_idle:
+0x205d 001650 arg context_check_inconn ,regc 
+0x205e 001651 branch context_search 
+:      001656 context_search_conn_handle:
+0x205f 001657 fetcht 1 ,mem_hci_conn_handle 
+:      001658 context_search_conn_handle2:
+0x2060 001659 arg context_search_handle ,regc 
+0x2061 001660 branch context_search 
+:      001663 context_search_plap:
+0x2062 001664 bpatch patch00_7 ,mem_patch00 
+0x2063 001665 fetcht 6 ,mem_hci_plap 
+:      001666 context_search_plap2:
+0x2064 001667 arg context_search_lap ,regc 
+0x2065 001668 branch context_search 
+:      001670 context_search_insniff:
+0x2066 001671 arg context_search_sniff ,regc 
+0x2067 001672 branch context_search 
+:      001674 context_search_sniff_window:
+0x2068 001675 arg context_search_window ,regc 
+:      001676 context_search:
+0x2069 001677 bpatch patch01_0 ,mem_patch01 
+0x206a 001678 arg mem_context ,rega 
+0x206b 001679 arg context_num ,loopcnt 
+:      001680 context_search_loop:
+0x206c 001681 ifetch 1 ,rega 
+0x206d 001682 copy regc ,pc 
+:      001683 context_search_next:
+0x206e 001684 bpatch patch01_1 ,mem_patch01 
+0x206f 001685 increase context_size ,rega 
+0x2070 001686 loop context_search_loop 
+0x2071 001687 force 1 ,null 
+0x2072 001688 rtn 
+:      001690 context_search_empty:
+0x2073 001691 bbit1 state_inconn ,context_search_next 
+0x2074 001692 branch enable_zero 
+:      001694 context_search_lap:
+0x2075 001695 bbit0 state_inconn ,context_search_next 
+:      001696 context_search_lap_cont:
+0x2076 001697 add rega ,coffset_plap ,contr 
+0x2077 001698 ifetch 6 ,contr 
+0x2078 001699 isub temp ,null 
+0x2079 001700 rtn zero 
+0x207a 001701 branch context_search_next 
+:      001703 context_search_handle:
+0x207b 001704 bbit0 state_inconn ,context_search_next 
+0x207c 001705 add rega ,coffset_conn_handle ,contr 
+0x207d 001706 ifetch 1 ,contr 
+0x207e 001707 isub temp ,null 
+0x207f 001708 rtn zero 
+0x2080 001709 branch context_search_next 
+:      001711 context_search_sniff:
+0x2081 001712 bbit0 state_insniff ,context_search_next 
+:      001713 context_search_sniff_loop:
+0x2082 001714 call context_get_anchor 
+0x2083 001715 call sign_pdata_temp 
+0x2084 001716 isub temp ,pdata 
+0x2085 001717 increase 1 ,pdata 
+0x2086 001718 branch context_search_sniff_miss ,positive 
+0x2087 001719 copy contr ,regb 
+0x2088 001720 store 9 ,mem_temp 
+0x2089 001721 bpatch patch01_2 ,mem_patch01 
+0x208a 001722 fetch 1 ,mem_sc_calc 
+0x208b 001723 nbranch context_search_sniff_sc ,blank 
+0x208c 001724 fetch 9 ,mem_temp 
+0x208d 001725 copy regb ,contr 
+0x208e 001726 increase 5 ,pdata 
+0x208f 001727 branch context_search_meet1 
+:      001729 context_search_sniff_sc:
+0x2090 001730 fetch 9 ,mem_temp 
+0x2091 001731 copy regb ,contr 
+0x2092 001732 increase 20 ,pdata 
+:      001733 context_search_meet1:
+0x2093 001734 nbranch context_search_next ,positive 
+:      001735 context_search_meet:
+0x2094 001736 copy temp ,bt_clk 
+0x2095 001737 call context_next_anchor 
+0x2096 001738 branch enable_zero 
+:      001741 context_search_sniff_miss:
+0x2097 001742 iforce regb 
+0x2098 001743 add rega ,coffset_tsniff ,contr 
+0x2099 001744 ifetch 2 ,contr 
+0x209a 001745 branch context_search_meet ,blank 
+0x209b 001746 call context_next_anchor 
+0x209c 001747 branch context_search_sniff_loop 
+:      001749 sign_pdata_temp:
+0x209d 001750 rshift16 pdata ,timeup 
+0x209e 001751 rshift8 timeup ,timeup 
+0x209f 001752 branch sign_pdata_temp_p0 ,zero 
+0x20a0 001753 compare 0xf ,timeup ,0xf 
+0x20a1 001754 nrtn true 
+0x20a2 001755 rshift16 temp ,timeup 
+0x20a3 001756 rshift8 timeup ,timeup 
+0x20a4 001757 nrtn zero 
+0x20a5 001758 set1 28 ,temp 
+0x20a6 001759 rtn 
+:      001760 sign_pdata_temp_p0:
+0x20a7 001761 rshift16 temp ,timeup 
+0x20a8 001762 rshift8 timeup ,timeup 
+0x20a9 001763 compare 0xf ,timeup ,0xf 
+0x20aa 001764 nrtn true 
+0x20ab 001765 set1 28 ,pdata 
+0x20ac 001766 rtn 
+:      001768 context_check_inconn:
+0x20ad 001769 bbit0 state_inconn ,context_search_next 
+0x20ae 001770 branch enable_zero 
+:      001773 context_check_a_wack:
+0x20af 001774 bbit0 state_inconn ,context_search_next 
+0x20b0 001775 add rega ,coffset_mode ,contr 
+0x20b1 001776 ifetch 1 ,contr 
+0x20b2 001777 bbit1 mode_le ,context_search_next 
+0x20b3 001778 rtn 
+:      001780 context_get_anchor:
+0x20b4 001781 add rega ,coffset_mode ,contr 
+0x20b5 001782 ifetcht 1 ,contr 
+0x20b6 001783 deposit clkn_bt 
+0x20b7 001784 isolate1 mode_master ,temp 
+0x20b8 001785 add rega ,coffset_sniff_anchor ,contr 
+0x20b9 001786 ifetcht 4 ,contr 
+0x20ba 001787 rtn true 
+0x20bb 001788 add rega ,coffset_clk_offset ,contr 
+0x20bc 001789 ifetch 6 ,contr 
+0x20bd 001790 call calc_clke2 
+0x20be 001791 deposit clke_bt 
+0x20bf 001792 rtn 
+:      001794 context_next_anchor:
+0x20c0 001795 add rega ,coffset_tsniff ,contr 
+0x20c1 001796 add rega ,coffset_sniff_anchor ,contw 
+0x20c2 001797 ifetch 2 ,contr 
+0x20c3 001798 iadd temp ,timeup 
+0x20c4 001799 deposit timeup 
+0x20c5 001800 istore 4 ,contw 
+0x20c6 001801 branch le_context_nextevent 
+:      001804 context_search_window:
+0x20c7 001805 bbit0 state_insniff ,context_search_next 
+0x20c8 001806 call context_get_anchor 
+0x20c9 001807 iadd stop_watch ,pdata 
+0x20ca 001808 iadd stop_watch ,pdata 
+0x20cb 001809 iadd queue ,pdata 
+0x20cc 001810 isub temp ,null 
+0x20cd 001811 nbranch context_search_next ,positive 
+0x20ce 001812 branch enable_zero 
+:      001816 end_of_packet:
+0x20cf 001817 bpatch patch01_3 ,mem_patch01 
+0x20d0 001818 disable lr_s2en 
+0x20d1 001819 disable encode_fec0 
+0x20d2 001820 disable encode_fec2 
+0x20d3 001821 disable decode_fec0 
+0x20d4 001822 disable decode_fec2 
+0x20d5 001823 disable enable_crc 
+0x20d6 001824 disable encrypt 
+0x20d7 001825 disable enable_white 
+0x20d8 001826 branch shutdown_radio ,is_rx 
+0x20d9 001827 until null ,tx_clear 
+0x20da 001828 nop 100 
+0x20db 001829 branch shutdown_radio 
+:      001834 sniff_check_window:
+0x20dc 001835 bpatch patch01_4 ,mem_patch01 
+0x20dd 001836 disable swfine 
+0x20de 001837 copy temp ,stop_watch 
+0x20df 001838 call context_search_sniff_window 
+0x20e0 001839 disable user 
+0x20e1 001840 nrtn zero 
+0x20e2 001841 force 0 ,stop_watch 
+0x20e3 001842 branch enable_user 
+:      001845 calc_slot_offset:
+0x20e4 001846 bpatch patch01_5 ,mem_patch01 
+0x20e5 001847 until null ,halfslot 
+0x20e6 001848 deposit clke 
+0x20e7 001849 iforce contr 
+0x20e8 001850 rshift16 ,pdata ,pdata 
+0x20e9 001851 isub clkn_bt ,loopcnt 
+0x20ea 001852 and_into 3 ,loopcnt 
+0x20eb 001853 nbranch calc_bt_portion ,zero 
+0x20ec 001854 force 0 ,pdata 
+0x20ed 001855 branch calc_skip_bt 
+:      001856 calc_bt_portion:
+0x20ee 001857 fetcht 2 ,mem_param_rt_rthalfslot 
+0x20ef 001858 force 0 ,pdata 
+:      001859 calc_slot_offset_loop:
+0x20f0 001860 iadd temp ,pdata 
+0x20f1 001861 loop calc_slot_offset_loop 
+:      001862 calc_skip_bt:
+0x20f2 001863 iadd contr ,pdata 
+0x20f3 001864 div pdata ,12 
+0x20f4 001865 call get_div_result 
+0x20f5 001866 store 2 ,mem_slot_offset 
+0x20f6 001867 rtn 
+:      001869 calc_clke_offset:
+0x20f7 001870 bpatch patch01_6 ,mem_patch01 
+0x20f8 001871 deposit clke 
+0x20f9 001872 copy clkn ,temp 
+0x20fa 001873 isub temp ,null 
+0x20fb 001874 nsetflag positive ,44 ,pdata 
+0x20fc 001875 isub temp ,temp 
+0x20fd 001876 fetch 2 ,mem_param_rt_rthalfslot 
+0x20fe 001877 isolate0 15 ,temp 
+0x20ff 001878 branch calc_clke_pos ,true 
+0x2100 001879 copy temp ,alarm 
+0x2101 001880 arg 0x10000 ,temp 
+0x2102 001881 fetch 2 ,mem_param_rt_rthalfslot 
+0x2103 001882 isub temp ,pdata 
+0x2104 001883 iadd alarm ,temp 
+:      001885 calc_clke_pos:
+0x2105 001886 storet 6 ,mem_le_clk_offset 
+0x2106 001887 rtn 
+:      001889 calc_clke:
+0x2107 001890 disable clknt 
+0x2108 001891 fetch 6 ,mem_le_clk_offset 
+:      001892 calc_clke2:
+0x2109 001893 iadd clkn ,alarm 
+0x210a 001894 increase 10 ,alarm 
+0x210b 001895 fetch 2 ,mem_param_rt_rthalfslot 
+0x210c 001896 isub alarm ,pdata 
+0x210d 001897 isolate0 15 ,pdata 
+0x210e 001898 branch calc_clke_pos_adj ,true 
+0x210f 001899 setarg 0x10000 
+0x2110 001900 fetchr regd ,2 ,mem_param_rt_rthalfslot 
+0x2111 001901 isub regd ,pdata 
+0x2112 001902 iadd alarm ,alarm 
+:      001903 calc_clke_pos2:
+0x2113 001904 copy alarm ,clke 
+0x2114 001905 rtn 
+:      001906 calc_clke_pos_adj:
+0x2115 001907 force 0 ,null 
+0x2116 001908 branch calc_clke_pos2 
+:      001915 qsetxor:
+0x2117 001916 rshift3 pdata ,pdata 
+0x2118 001917 ifetchr rega ,1 ,contw 
+0x2119 001918 ixor rega ,pdata 
+0x211a 001919 isolate0 6 ,pdata 
+0x211b 001920 branch qset_p 
+:      001922 qset1_p:
+0x211c 001923 isolate0 0 ,null 
+:      001924 qset_start:
+0x211d 001925 arg 0x8ac2 ,contw 
+:      001926 qset_p:
+0x211e 001927 ifetch 1 ,contw 
+0x211f 001928 qsetflag true ,pdata 
+0x2120 001929 istore 1 ,contw 
+0x2121 001930 rtn 
+:      001932 rx_dcoc_avg:
+0x2122 001933 nop 60 
+:      001934 btdma:
+0x2123 001936 jam 8 ,0x8983 
+0x2124 001937 jam 9 ,0x8985 
+0x2125 001938 jam 0x9 ,0x8981 
+0x2126 001939 jam 0x3 ,0x8981 
+0x2127 001940 jam 0x6 ,0x8980 
+0x2128 001941 nop 60 
+0x2129 001942 arg 0 ,rega 
+0x212a 001943 arg 0 ,regb 
+0x212b 001944 arg 16 ,loopcnt 
+0x212c 001945 arg 0x800 ,contr 
+:      001946 rx_dcoc_loop:
+0x212d 001947 ifetch 2 ,contr 
+0x212e 001948 iadd rega ,rega 
+0x212f 001949 ifetch 2 ,contr 
+0x2130 001950 iadd regb ,regb 
+0x2131 001951 loop rx_dcoc_loop 
+0x2132 001952 rtn 
+:      001954 rx_dcoc:
+0x2133 001955 bpatch patch01_7 ,mem_patch01 
+0x2134 001956 call set_sync_on 
+0x2135 001957 arg 39 ,temp 
+0x2136 001958 call set_freq_rx 
+0x2137 001959 call rf_rx_enable 
+0x2138 001960 jam 0x7f ,0x8a25 
+0x2139 001961 jam 0x1a ,0x8a30 
+0x213a 001962 jam 0x78 ,0x8a31 
+0x213b 001963 jam 0xb2 ,0x8a8f 
+0x213c 001964 jam 0 ,0x8ac2 
+0x213d 001965 jam 0 ,0x8ac3 
+0x213e 001966 arg 6 ,queue 
+0x213f 001967 call rx_dcoc_avg 
+0x2140 001968 isolate1 13 ,rega 
+0x2141 001969 call qset_start 
+0x2142 001970 isolate1 13 ,regb 
+0x2143 001971 call qset_p 
+0x2144 001972 arg 5 ,queue 
+:      001973 rx_dcoc_loop2:
+0x2145 001974 call qset1_p 
+0x2146 001975 call qset_p 
+0x2147 001976 call rx_dcoc_avg 
+0x2148 001977 arg 0x8ac2 ,contw 
+0x2149 001978 rshift4 rega ,pdata 
+0x214a 001979 call qsetxor 
+0x214b 001980 rshift4 regb ,pdata 
+0x214c 001981 call qsetxor 
+0x214d 001982 increase -1 ,queue 
+0x214e 001983 branch rx_dcoc_loop2 ,positive 
+0x214f 001984 jam 0x52 ,0x8a8f 
+0x2150 001985 jam 2 ,0x8a30 
+0x2151 001986 jam 0 ,0x8981 
+:      001988 shutdown_radio:
+0x2152 001989 bpatch patch02_0 ,mem_patch02 
+0x2153 001990 call rf_debug_shutdown_radio_line 
+0x2154 001991 disable is_tx 
+0x2155 001992 disable is_rx 
+0x2156 001993 setarg 0x0200 
+0x2157 001994 store 4 ,0x8a23 
+0x2158 001995 jam 0xfa ,0x8a01 
+0x2159 001996 nop 12 
+0x215a 001997 jam 0 ,0x8a0f 
+0x215b 001998 jam 0x1a ,0x8a12 
+0x215c 001999 jam 0x2b ,0x8a14 
+0x215d 002000 force 8 ,radio_ctrl 
+0x215e 002001 force 0 ,radio_ctrl 
+0x215f 002003 branch gain_control 
+:      002005 set_sync_on:
+0x2160 002006 bpatch patch02_1 ,mem_patch02 
+0x2161 002007 jam 0x60 ,0x8a0f 
+0x2162 002008 jam 0xaa ,0x8a10 
+0x2163 002009 jam 0x7a ,0x8a12 
+0x2164 002010 jam 0x00 ,0x8a25 
+0x2165 002011 jam 0x00 ,0x8a26 
+0x2166 002012 nop 60 
+0x2167 002013 jam 0x20 ,0x8a20 
+0x2168 002014 jam 0xfd ,0x8a23 
+0x2169 002015 jam 0x12 ,0x8a24 
+0x216a 002016 jam 0x10 ,0x8a24 
+0x216b 002017 nop 60 
+0x216c 002018 jam 0x60 ,0x8a12 
+0x216d 002019 jam 0xdd ,0x8a23 
+0x216e 002020 rtn 
+:      002022 set_freq_rx:
+0x216f 002023 bpatch patch02_2 ,mem_patch02 
+0x2170 002024 jam 0x01 ,0x8900 
+0x2171 002025 jam 0x9d ,0x8a23 
+0x2172 002026 jam 0x02 ,0x8a24 
+0x2173 002027 nop 20 
+0x2174 002028 jam 0x65 ,0x8a70 
+0x2175 002029 jam 0x9f ,0x8a23 
+0x2176 002030 call set_lemode 
+0x2177 002031 storet 1 ,mem_last_freq 
+0x2178 002032 increase 1 ,temp 
+:      002036 aac_res_lookup:
+0x2179 002037 bpatch patch02_3 ,mem_patch02 
+0x217a 002038 rshift4 temp ,pdata 
+0x217b 002039 arg mem_aac_res_table ,contr 
+0x217c 002040 iadd contr ,contr 
+0x217d 002041 ifetch 1 ,contr 
+0x217e 002042 fetchr rega ,1 ,0x8a71 
+0x217f 002043 and_into 0xf ,rega 
+0x2180 002044 ior rega ,pdata 
+0x2181 002045 store 1 ,0x8a71 
+0x2182 002046 call calc_freq 
+0x2183 002047 nop 144 
+0x2184 002048 fetch 1 ,mem_fcomp_div 
+0x2185 002049 beq xtal_24m ,aac_res_lookup_end 
+0x2186 002050 nop 36 
+:      002051 aac_res_lookup_end:
+0x2187 002052 jam 0x80 ,0x8a20 
+0x2188 002053 rtn 
+:      002056 set_lemode_2m_16m:
+0x2189 002057 setarg 0x8312 
+0x218a 002058 store 2 ,0x8907 
+0x218b 002059 branch set_lemode_2m 
+:      002061 set_lemode_1m_16m:
+0x218c 002062 setarg 0x4189 
+0x218d 002063 store 2 ,0x8907 
+0x218e 002064 branch set_lemode_1m 
+:      002067 set_lemode:
+0x218f 002068 bpatch patch02_4 ,mem_patch02 
+0x2190 002069 jam 0x11 ,0x8a82 
+0x2191 002070 jam 0x12 ,0x8a8d 
+0x2192 002071 jam 0x0a ,0x8a8e 
+0x2193 002072 fetch 1 ,mem_fcomp_div 
+0x2194 002073 beq xtal_16m ,set_lemode_2m_16m 
+0x2195 002074 setarg 0x5762 
+0x2196 002075 store 2 ,0x8907 
+:      002076 set_lemode_2m:
+0x2197 002077 jam 3 ,0x8901 
+0x2198 002078 jam 0x84 ,0x8920 
+0x2199 002079 rtnmark1 mark_ble_2m 
+0x219a 002080 jam 1 ,0x8901 
+0x219b 002081 jam 0x80 ,0x8920 
+0x219c 002082 jam 0x07 ,0x8a82 
+0x219d 002083 jam 0x44 ,0x8a8d 
+0x219e 002084 jam 0x0a ,0x8a8e 
+0x219f 002085 fetch 1 ,mem_fcomp_div 
+0x21a0 002086 beq xtal_16m ,set_lemode_1m_16m 
+0x21a1 002087 setarg 0x2bb1 
+0x21a2 002088 store 2 ,0x8907 
+:      002089 set_lemode_1m:
+0x21a3 002090 rtnmark0 mark_ble_lr 
+0x21a4 002091 jam 5 ,0x8901 
+0x21a5 002092 rtn 
+:      002094 rf_rx_enable:
+0x21a6 002095 bpatch patch02_5 ,mem_patch02 
+0x21a7 002096 call rf_debug_rx_gpio_high 
+0x21a8 002097 call rf_rx_agc_set 
+0x21a9 002098 force 8 ,radio_ctrl 
+0x21aa 002099 force 0 ,radio_ctrl 
+0x21ab 002101 setarg 0x0aaada 
+0x21ac 002102 store 3 ,0x8a0f 
+0x21ad 002103 jam 0x40 ,0x8a25 
+0x21ae 002104 jam 0x10 ,0x8a26 
+0x21af 002105 nop 60 
+0x21b0 002106 jam 0xfb ,0x8a01 
+0x21b1 002107 jam 0xff ,0x8a25 
+0x21b2 002108 jam 0x30 ,0x8a26 
+0x21b3 002109 jam 0x5e ,0x8a16 
+0x21b4 002110 nop 20 
+0x21b5 002111 jam 0x00 ,0x8a10 
+0x21b6 002112 jam 0x08 ,0x8a11 
+0x21b7 002113 nop 120 
+0x21b8 002114 jam 0xd ,0x8900 
+0x21b9 002115 rtn 
+:      002118 rf_rx_agc_set:
+0x21ba 002119 fetch 1 ,mem_gain_fix 
+0x21bb 002120 beq 0xff ,rf_rx_enable_no_soft_agc 
+0x21bc 002121 arg mem_gain_table ,contr 
+0x21bd 002122 iadd contr ,contr 
+0x21be 002123 ifetch 1 ,contr 
+0x21bf 002124 store 1 ,core_rf_rx_gain_fix 
+0x21c0 002125 jam 0x27 ,core_rf_rx_agc_ctrl 
+:      002127 rf_rx_enable_no_soft_agc:
+0x21c1 002128 fetcht 1 ,mem_gain_second_agc_en 
+0x21c2 002129 fetch 1 ,core_rf_rx_agc_ctrl 
+0x21c3 002130 ior temp ,pdata 
+0x21c4 002131 store 1 ,core_rf_rx_agc_ctrl 
+0x21c5 002132 rtn 
+:      002135 set_freq_tx_int:
+0x21c6 002136 jam 0x03 ,0x8900 
+0x21c7 002137 jam 0x02 ,0x8a24 
+0x21c8 002138 nop 20 
+0x21c9 002139 jam 0x65 ,0x8a70 
+0x21ca 002140 jam 0xdf ,0x8a23 
+0x21cb 002141 call set_lemode 
+0x21cc 002142 call ghp_lookup 
+0x21cd 002143 storet 1 ,mem_last_freq 
+0x21ce 002144 increase 2 ,temp 
+0x21cf 002145 branch aac_res_lookup 
+:      002149 calc_freq:
+0x21d0 002150 bpatch patch02_6 ,mem_patch02 
+0x21d1 002151 setarg 2400 
+0x21d2 002152 iadd temp ,pdata 
+0x21d3 002153 copy pdata ,rega 
+0x21d4 002154 fetcht 1 ,mem_fcomp_div 
+0x21d5 002155 rshift temp ,temp 
+0x21d6 002156 idiv temp 
+0x21d7 002158 call wait_div_end 
+0x21d8 002159 quotient pdata 
+0x21d9 002160 store 2 ,0x8909 
+0x21da 002161 remainder pdata 
+0x21db 002162 lshift16 pdata ,pdata 
+0x21dc 002163 lshift8 pdata ,pdata 
+0x21dd 002164 idiv temp 
+0x21de 002165 call wait_div_end 
+0x21df 002166 quotient pdata 
+0x21e0 002167 store 3 ,0x890b 
+0x21e1 002172 storer rega ,1 ,0x8a22 
+0x21e2 002173 rshift8 rega ,rega 
+0x21e3 002174 storer rega ,1 ,0x8a21 
+0x21e4 002175 jam 0xa0 ,0x8a20 
+0x21e5 002176 jam 0xe0 ,0x8a20 
+0x21e6 002177 jam 0xa0 ,0x8a20 
+0x21e7 002178 rtn 
+:      002180 ghp_lookup:
+0x21e8 002181 add temp ,2 ,pdata 
+0x21e9 002182 rshift3 pdata ,pdata 
+0x21ea 002183 and_into -2 ,pdata 
+0x21eb 002184 arg mem_ghpc_table ,contr 
+0x21ec 002185 bmark0 mark_ble_2m ,ghp_1m 
+0x21ed 002186 increase 12 ,contr 
+:      002187 ghp_1m:
+0x21ee 002188 iadd contr ,contr 
+0x21ef 002189 ifetchr rega ,2 ,contr 
+0x21f0 002190 ifetch 2 ,contr 
+0x21f1 002191 isub rega ,pdata 
+0x21f2 002192 add temp ,2 ,contr 
+0x21f3 002193 and_into 0xf ,contr 
+0x21f4 002194 imul32 contr ,pdata 
+0x21f5 002195 rshift4 pdata ,pdata 
+0x21f6 002196 iadd rega ,pdata 
+0x21f7 002197 store 2 ,0x8905 
+0x21f8 002198 rtn 
+:      002202 set_freq_tx:
+0x21f9 002203 bpatch patch02_7 ,mem_patch02 
+0x21fa 002204 call set_freq_tx_int 
+0x21fb 002205 nop 600 
+:      002207 txon:
+0x21fc 002208 bpatch patch03_0 ,mem_patch03 
+0x21fd 002209 setarg 0x0aaa7e 
+0x21fe 002210 store 3 ,0x8a0f 
+0x21ff 002211 nop 60 
+0x2200 002212 jam 0x00 ,0x8a25 
+0x2201 002213 jam 0x0d ,0x8a26 
+0x2202 002214 jam 0x56 ,0x8a16 
+0x2203 002215 nop 30 
+0x2204 002216 jam 0x1b ,0x8a15 
+0x2205 002217 call set_tx_power 
+0x2206 002218 nop 20 
+0x2207 002219 jam 0x0f ,0x8a26 
+0x2208 002220 nop 20 
+0x2209 002221 jam 0xa8 ,0x8a10 
+0x220a 002222 jam 0x00 ,0x8a11 
+0x220b 002223 rtn 
+:      002225 set_tx_power:
+0x220c 002226 bpatch patch03_1 ,mem_patch03 
+0x220d 002227 fetch 1 ,mem_tx_power 
+0x220e 002228 beq tx_power_0db ,set_tx_power_0db 
+0x220f 002229 beq tx_power_3db ,set_tx_power_3db 
+0x2210 002230 beq tx_power_5db ,set_tx_power_5db 
+0x2211 002231 beq tx_power_7db ,set_tx_power_7db 
+0x2212 002232 beq tx_power_10db ,set_tx_power_10db 
+0x2213 002233 beq tx_power_f3db ,set_tx_power_f3db 
+0x2214 002234 beq tx_power_f5db ,set_tx_power_f5db 
+0x2215 002235 beq tx_power_f10db ,set_tx_power_f10db 
+0x2216 002236 beq tx_power_f20db ,set_tx_power_f20db 
+:      002237 set_tx_power_0db:
+0x2217 002238 jam 0x17 ,0x8a14 
+0x2218 002239 setarg 0x251a3f 
+0x2219 002240 store 3 ,0x8a60 
+:      002241 set_tx_power_8a63_28:
+0x221a 002242 jam 0x28 ,0x8a63 
+0x221b 002243 rtn 
+:      002245 set_tx_power_3db:
+0x221c 002246 jam 0x25 ,0x8a14 
+0x221d 002247 setarg 0xa91c2d 
+0x221e 002248 store 3 ,0x8a60 
+:      002249 set_tx_power_8a63_2f:
+0x221f 002250 jam 0x2f ,0x8a63 
+0x2220 002251 rtn 
+:      002253 set_tx_power_5db:
+0x2221 002254 jam 0x25 ,0x8a14 
+0x2222 002255 setarg 0xa91c3f 
+0x2223 002256 store 3 ,0x8a60 
+0x2224 002257 branch set_tx_power_8a63_2f 
+:      002259 set_tx_power_7db:
+0x2225 002260 jam 0x25 ,0x8a14 
+0x2226 002261 setarg 0xa9383f 
+0x2227 002262 store 3 ,0x8a60 
+0x2228 002263 branch set_tx_power_8a63_2f 
+:      002265 set_tx_power_10db:
+0x2229 002266 jam 0x25 ,0x8a14 
+0x222a 002267 setarg 0xa93f3f 
+0x222b 002268 store 3 ,0x8a60 
+0x222c 002269 branch set_tx_power_8a63_2f 
+:      002272 set_tx_power_f3db:
+0x222d 002273 jam 0x17 ,0x8a14 
+0x222e 002274 setarg 0x251827 
+0x222f 002275 store 3 ,0x8a60 
+0x2230 002276 branch set_tx_power_8a63_28 
+:      002278 set_tx_power_f5db:
+0x2231 002279 jam 0x17 ,0x8a14 
+0x2232 002280 setarg 0x25181c 
+0x2233 002281 store 3 ,0x8a60 
+0x2234 002282 branch set_tx_power_8a63_28 
+:      002284 set_tx_power_f10db:
+0x2235 002285 jam 0x17 ,0x8a14 
+0x2236 002286 setarg 0x25180b 
+0x2237 002287 store 3 ,0x8a60 
+0x2238 002288 branch set_tx_power_8a63_28 
+:      002290 set_tx_power_f20db:
+0x2239 002291 jam 0x17 ,0x8a14 
+0x223a 002292 setarg 0x251000 
+0x223b 002293 store 3 ,0x8a60 
+0x223c 002294 branch set_tx_power_8a63_28 
+:      002298 initialize_radio:
+0x223d 002299 jam clksel_rc ,core_clksel 
+:      002300 initialize_radio_wait:
+0x223e 002301 fetch 2 ,mem_rf_init_ptr 
+0x223f 002302 bbit0 14 ,initialize_radio_wait 
+0x2240 002303 iforce contr 
+0x2241 002304 arg 0x8a00 ,temp 
+:      002305 initialize_radio_loop:
+0x2242 002306 ifetch 1 ,contr 
+0x2243 002307 beq 0xff ,initialize_radio_cont 
+0x2244 002308 ior temp ,contw 
+0x2245 002309 ifetch 1 ,contr 
+0x2246 002310 istore 1 ,contw 
+0x2247 002311 branch initialize_radio_loop 
+:      002313 initialize_radio_cont:
+0x2248 002314 bpatch patch03_2 ,mem_patch03 
+0x2249 002315 fetch 1 ,mem_wdt_always_work 
+0x224a 002316 call wdt_set_disable ,blank 
+0x224b 002318 until null ,lpo_edge 
+0x224c 002319 jam 0x5f ,0x813b 
+0x224d 002320 fetch 1 ,mem_fcomp_div 
+0x224e 002321 beq xtal_16m ,initialize_radio_16m 
+0x224f 002322 fetch 1 ,mem_ring_ibias_trim 
+0x2250 002323 or_into 0x04 ,pdata 
+0x2251 002324 store 1 ,0x8a02 
+0x2252 002325 jam 0x01 ,0x890f 
+0x2253 002326 jam 0x24 ,0x8a80 
+0x2254 002327 jam 0x62 ,0x8a81 
+0x2255 002328 setarg 0xe61212 
+0x2256 002329 store 3 ,0x8a73 
+:      002330 initialize_radio2:
+0x2257 002332 jam 0x60 ,0x8a86 
+0x2258 002333 jam 0x3b ,0x8a8b 
+0x2259 002335 call dpll_on 
+0x225a 002336 jam 0 ,core_config 
+0x225b 002337 jam clksel_dpll ,core_clksel 
+0x225c 002338 setarg 0x557474 
+0x225d 002339 store 3 ,0x8968 
+0x225e 002340 jam 0x6e ,0x8960 
+0x225f 002341 call rx_dcoc 
+0x2260 002342 call rfpll_aac_ghpc 
+0x2261 002343 fetch 1 ,mem_xtal_c_sel 
+0x2262 002344 store 1 ,core_xtal_cap 
+0x2263 002346 jam system_clk_12m ,mem_system_clk 
+0x2264 002347 call sadc_calibration 
+0x2265 002348 branch dpll_ring_ibias_calc 
+:      002350 initialize_radio_16m:
+0x2266 002351 fetch 1 ,mem_ring_ibias_trim 
+0x2267 002352 or_into 0x06 ,pdata 
+0x2268 002353 store 1 ,0x8a02 
+0x2269 002354 jam 0x00 ,0x890f 
+0x226a 002355 jam 0x23 ,0x8a80 
+0x226b 002356 jam 0xb0 ,0x8a81 
+0x226c 002357 setarg 0xe40909 
+0x226d 002358 store 3 ,0x8a73 
+0x226e 002359 jam 0x2a ,0x8a76 
+0x226f 002360 jam 0x04 ,0x8902 
+0x2270 002361 branch initialize_radio2 
+:      002363 rfpll_aac_ghpc:
+0x2271 002364 bpatch patch03_3 ,mem_patch03 
+0x2272 002365 call set_sync_on 
+0x2273 002366 jam 3 ,0x8900 
+0x2274 002367 jam 0x1 ,0x8a70 
+0x2275 002368 arg mem_ghpc_table ,regb 
+0x2276 002369 arg mem_aac_res_table ,regd 
+0x2277 002370 call rfpll_aac_ghpc_once 
+0x2278 002371 set1 mark_ble_2m ,mark 
+0x2279 002372 call rfpll_aac_ghpc_once 
+0x227a 002373 jam 0x61 ,0x8a70 
+0x227b 002374 branch shutdown_radio 
+:      002376 rfpll_aac_ghpc_once:
+0x227c 002377 call set_lemode 
+0x227d 002378 arg 6 ,loopcnt 
+0x227e 002379 arg 0 ,regc 
+:      002380 rfpll_cal_loop:
+0x227f 002381 copy regc ,temp 
+0x2280 002382 call aac_ghpc 
+0x2281 002383 increase 2 ,regb 
+0x2282 002384 increase 1 ,regd 
+0x2283 002385 increase 16 ,regc 
+0x2284 002386 loop rfpll_cal_loop 
+0x2285 002387 rtn 
+:      002389 dpll_on:
+0x2286 002390 fetch 1 ,mem_fcomp_div 
+0x2287 002391 beq xtal_24m ,dpll_on_24m 
+0x2288 002392 fetch 1 ,mem_ring_ibias_trim 
+0x2289 002393 or_into 0x06 ,pdata 
+0x228a 002394 store 1 ,0x8a02 
+0x228b 002395 jam 0xe0 ,0x8a05 
+:      002396 dpll_on_24m:
+0x228c 002397 jam 0xc8 ,0x8a00 
+0x228d 002398 nop 60 
+0x228e 002399 jam 0xa0 ,0x8a01 
+0x228f 002400 jam 0xcf ,0x8a00 
+0x2290 002401 jam 0xfa ,0x8a01 
+0x2291 002402 nop 20 
+0x2292 002403 jam 0x8f ,0x8a00 
+0x2293 002404 rtn 
+:      002406 aac_ghpc:
+0x2294 002407 bpatch patch03_4 ,mem_patch03 
+0x2295 002408 jam 0x30 ,0x8a20 
+0x2296 002409 jam 0xdd ,0x8a23 
+0x2297 002410 call calc_freq 
+:      002411 wait_cal_done:
+0x2298 002412 fetch 1 ,0x8a7c 
+0x2299 002413 bbit0 0 ,wait_cal_done 
+0x229a 002414 jam 0x30 ,0x8a7b 
+0x229b 002415 call read_cal_result 
+0x229c 002416 iforce rega 
+0x229d 002417 jam 0x40 ,0x8a7b 
+0x229e 002418 call read_cal_result 
+0x229f 002419 isub rega ,pdata 
+0x22a0 002420 mul32 pdata ,125 ,temp 
+0x22a1 002421 setarg 0xb00000 
+0x22a2 002422 idiv temp 
+0x22a3 002423 call wait_div_end 
+0x22a4 002424 quotient pdata 
+0x22a5 002425 bmark0 mark_ble_2m ,aac_ghpc_1m 
+0x22a6 002426 lshift pdata ,pdata 
+:      002427 aac_ghpc_1m:
+0x22a7 002428 istore 2 ,regb 
+0x22a8 002429 jam 0x20 ,0x8a7b 
+0x22a9 002430 fetch 1 ,0x8a7e 
+0x22aa 002431 lshift4 pdata ,pdata 
+0x22ab 002432 istore 1 ,regd 
+0x22ac 002433 jam 0 ,0x8a7b 
+0x22ad 002434 rtn 
+:      002436 read_cal_result:
+0x22ae 002437 fetch 2 ,0x8a7d 
+0x22af 002438 byteswap pdata ,pdata 
+0x22b0 002439 fetcht 1 ,0x8a7c 
+0x22b1 002440 lshift16 temp ,temp 
+0x22b2 002441 ior temp ,pdata 
+0x22b3 002442 rtn 
+:      002445 dpll_ring_ibias_calc:
+0x22b4 002446 bpatch patch03_5 ,mem_patch03 
+0x22b5 002447 fetch 1 ,core_vtest_ctrl0 
+0x22b6 002448 set1 0 ,pdata 
+0x22b7 002449 store 1 ,core_vtest_ctrl0 
+0x22b8 002450 jam 0xf0 ,core_vtest_ctrl1 
+0x22b9 002451 fetch 1 ,core_bbpll_cfg3 
+0x22ba 002452 or_into 0x16 ,pdata 
+0x22bb 002453 store 1 ,core_bbpll_cfg3 
+0x22bc 002455 fetch 1 ,mem_adc_dma_enable 
+0x22bd 002456 store 1 ,mem_temp 
+0x22be 002457 fetch 1 ,mem_adc_channel 
+0x22bf 002458 store 1 ,mem_temp + 1 
+0x22c0 002459 jam 0 ,mem_adc_dma_enable 
+0x22c1 002460 fetch 1 ,mem_ring_ibias_calc_adc_channel 
+0x22c2 002461 store 1 ,mem_adc_channel 
+0x22c3 002462 fetcht 1 ,mem_ring_ibias_calc_adc_gpio 
+0x22c4 002463 call gpio_set_high_impedance 
+0x22c5 002465 arg 0 ,rega 
+0x22c6 002466 arg 8 ,loopcnt 
+:      002467 dpll_ring_ibias_read_adc:
+0x22c7 002468 call enable_adc 
+0x22c8 002469 fetch 2 ,mem_adc_current_value 
+0x22c9 002470 iadd rega ,rega 
+0x22ca 002471 loop dpll_ring_ibias_read_adc 
+0x22cb 002472 rshift3 rega ,rega 
+0x22cc 002473 store 2 ,mem_adc_current_value 
+0x22cd 002475 fetch 1 ,mem_temp 
+0x22ce 002476 store 1 ,mem_adc_dma_enable 
+0x22cf 002477 fetch 1 ,mem_temp + 1 
+0x22d0 002478 store 1 ,mem_adc_channel 
+0x22d1 002480 fetch 1 ,core_bbpll_cfg3 
+0x22d2 002481 and_into 0xe0 ,pdata 
+0x22d3 002482 store 1 ,core_bbpll_cfg3 
+0x22d4 002483 jam 0x00 ,core_vtest_ctrl1 
+0x22d5 002484 fetch 1 ,core_vtest_ctrl0 
+0x22d6 002485 set0 0 ,pdata 
+0x22d7 002486 store 1 ,core_vtest_ctrl0 
+0x22d8 002488 call vdd_calculate_by_mode 
+0x22d9 002489 fetcht 2 ,mem_ring_ibias_vtune_high 
+0x22da 002490 isub temp ,null 
+0x22db 002491 branch ring_ibias_trim_incrs ,positive 
+0x22dc 002492 fetcht 2 ,mem_ring_ibias_vtune_low 
+0x22dd 002493 isub temp ,null 
+0x22de 002494 rtn positive 
+:      002495 ring_ibias_trim_decrs:
+0x22df 002496 fetch 1 ,mem_ring_ibias_trim 
+0x22e0 002497 rtneq 0x00 
+0x22e1 002498 increase -32 ,pdata 
+0x22e2 002499 store 1 ,mem_ring_ibias_trim 
+0x22e3 002500 rtn 
+:      002502 ring_ibias_trim_incrs:
+0x22e4 002503 fetch 1 ,mem_ring_ibias_trim 
+0x22e5 002504 rtneq 0xe0 
+0x22e6 002505 increase 32 ,pdata 
+0x22e7 002506 store 1 ,mem_ring_ibias_trim 
+0x22e8 002507 rtn 
+:      002510 save_rssi:
+0x22e9 002511 bpatch patch03_6 ,mem_patch03 
+0x22ea 002513 fetch 1 ,modem_nb_pow 
+0x22eb 002514 isolate1 6 ,pdata 
+0x22ec 002515 setflag true ,7 ,pdata 
+0x22ed 002516 store 1 ,mem_modem_rssi 
+0x22ee 002518 fetch 1 ,modem_gain 
+0x22ef 002519 and pdata ,0x0f ,temp 
+0x22f0 002520 lshift temp ,temp 
+0x22f1 002521 rshift4 pdata ,pdata 
+0x22f2 002522 iadd temp ,temp 
+0x22f3 002523 mul32 temp ,3 ,rega 
+0x22f4 002525 fetch 1 ,mem_modem_rssi 
+0x22f5 002526 call byte_sign_extern 
+0x22f6 002527 sub pdata ,0 ,pdata 
+0x22f7 002528 iadd rega ,pdata 
+0x22f8 002529 increase -9 ,pdata 
+0x22f9 002530 and pdata ,0x1ff ,pdata 
+0x22fa 002531 isolate1 8 ,pdata 
+0x22fb 002532 nbranch save_rssi_store ,true 
+0x22fc 002533 setarg 0 
+:      002534 save_rssi_store:
+0x22fd 002535 store 1 ,mem_rssi_hex 
+0x22fe 002536 branch rssi_hex2dec 
+:      002538 byte_sign_extern:
+0x22ff 002539 isolate1 7 ,pdata 
+0x2300 002540 nrtn true 
+0x2301 002541 arg 0xff00 ,temp 
+0x2302 002542 ior temp ,pdata 
+0x2303 002543 rtn 
+:      002545 rssi_hex2dec:
+0x2304 002546 fetch 1 ,mem_rssi_hex 
+0x2305 002547 call bcd 
+0x2306 002548 store 1 ,mem_rssi 
+0x2307 002549 rtn 
+:      002551 bcd:
+0x2308 002552 and_into 0xff ,pdata 
+0x2309 002553 div pdata ,10 
+0x230a 002554 call get_div_result 
+0x230b 002555 lshift4 pdata ,pdata 
+0x230c 002556 remainder temp 
+0x230d 002557 ior temp ,pdata 
+0x230e 002558 rtn 
+:      002560 gain_control:
+0x230f 002561 bpatch patch03_7 ,mem_patch03 
+0x2310 002562 fetch 1 ,mem_gain_fix 
+0x2311 002563 rtneq 0xff 
+0x2312 002564 nbranch gain_increase ,sync 
+0x2313 002565 fetch 1 ,mem_modem_rssi 
+0x2314 002566 sub pdata ,0xf0 ,null 
+0x2315 002567 nbranch gain_descend ,positive 
+0x2316 002568 sub pdata ,0x7f ,null 
+0x2317 002569 branch gain_descend ,positive 
+0x2318 002571 fetchr rega ,1 ,core_rf_rx_gain_fix 
+0x2319 002572 fetch 1 ,mem_gain_fix 
+0x231a 002573 rtneq 0 
+0x231b 002574 arg mem_gain_table ,contr 
+0x231c 002575 iadd contr ,contr 
+0x231d 002576 ifetch 1 ,contr 
+0x231e 002577 isub rega ,null 
+0x231f 002578 nrtn zero 
+0x2320 002579 increase -2 ,contr 
+0x2321 002580 ifetcht 1 ,contr 
+0x2322 002581 rshift4 temp ,pdata 
+0x2323 002582 rshift4 rega ,regb 
+0x2324 002583 isub regb ,regb 
+0x2325 002584 and temp ,0xf ,pdata 
+0x2326 002585 and rega ,0xf ,rega 
+0x2327 002586 isub rega ,rega 
+0x2328 002587 lshift rega ,pdata 
+0x2329 002588 iadd regb ,regb 
+0x232a 002589 mul32 regb ,3 ,regb 
+0x232b 002590 fetcht 1 ,mem_modem_rssi 
+0x232c 002591 and temp ,0x80 ,pdata 
+0x232d 002592 rtn blank 
+:      002593 add_negative:
+0x232e 002594 setarg 0x100 
+0x232f 002595 isub temp ,temp 
+0x2330 002596 copy regb ,pdata 
+0x2331 002597 isub temp ,pdata 
+0x2332 002598 rtn positive 
+0x2333 002599 and pdata ,0xff ,pdata 
+0x2334 002600 rtneq 0xff 
+0x2335 002601 rtneq 0xfe 
+:      002603 gain_increase:
+0x2336 002604 fetch 1 ,mem_gain_fix 
+0x2337 002605 beq 1 ,set_rx_gain0 
+0x2338 002606 beq 2 ,set_rx_gain1 
+0x2339 002608 branch set_rx_gain0 
+:      002610 gain_descend:
+0x233a 002611 fetch 1 ,mem_gain_fix 
+0x233b 002612 beq 0 ,set_rx_gain1 
+0x233c 002613 beq 1 ,set_rx_gain2 
+:      002615 set_rx_gain2:
+0x233d 002616 jam 2 ,mem_gain_fix 
+0x233e 002617 rtn 
+:      002619 set_rx_gain0:
+0x233f 002620 jam 0 ,mem_gain_fix 
+0x2340 002621 rtn 
+:      002623 set_rx_gain1:
+0x2341 002624 jam 1 ,mem_gain_fix 
+0x2342 002625 rtn 
+:      002632 ahead_window:
+0x2343 002633 copy pdata ,temp 
+0x2344 002634 bpatch patch04_0 ,mem_patch04 
+0x2345 002635 copy temp ,pdata 
+0x2346 002636 call clk2bt 
+0x2347 002637 lshift16 bt_clk ,pdata 
+0x2348 002638 set1 44 ,pdata 
+0x2349 002639 call clk_diff 
+0x234a 002640 set0 44 ,pdata 
+0x234b 002641 call get_clk 
+0x234c 002642 call clk_diff 
+0x234d 002643 rtn user 
+0x234e 002644 call clk2rt 
+0x234f 002645 iforce stop_watch 
+0x2350 002646 until null ,timeout 
+0x2351 002647 rtn 
+:      002650 get_clk:
+0x2352 002651 copy clkn ,temp 
+0x2353 002652 rtn master 
+0x2354 002653 copy clke ,temp 
+0x2355 002654 rtn 
+:      002656 get_clkbt:
+0x2356 002657 deposit clkn_bt 
+0x2357 002658 rtn master 
+0x2358 002659 deposit clke_bt 
+0x2359 002660 rtn 
+:      002663 assert:
+0x235a 002664 bpatch patch04_1 ,mem_patch04 
+0x235b 002665 branch assert 
+:      002668 sleep:
+0x235c 002669 rtn blank 
+0x235d 002671 rshift pdata ,pdata 
+0x235e 002672 increase -3 ,pdata 
+:      002673 sleep_loop:
+0x235f 002674 increase -1 ,pdata 
+0x2360 002675 nbranch sleep_loop ,zero 
+0x2361 002676 force 0 ,pdata 
+0x2362 002677 rtn 
+:      002681 init_param:
+0x2363 002683 setarg param_tx_setup 
+0x2364 002684 store 2 ,mem_param_tx_setup 
+0x2365 002685 setarg param_rf_setup 
+0x2366 002686 store 2 ,mem_param_rf_setup 
+0x2367 002687 setarg param_conn_access 
+0x2368 002688 store 2 ,mem_param_conn_access 
+0x2369 002689 setarg param_rx_setup 
+0x236a 002690 store 2 ,mem_param_rx_setup 
+0x236b 002691 setarg param_clke_cal 
+0x236c 002692 store 2 ,mem_param_clke_cal 
+0x236d 002693 setarg param_pll_setup 
+0x236e 002694 store 2 ,mem_param_pll_setup 
+0x236f 002695 setarg param_dpll_start_delay 
+0x2370 002696 store 2 ,mem_param_dpll_start_delay 
+0x2371 002697 setarg param_rt_rthalfslot 
+0x2372 002698 store 2 ,mem_param_rt_rthalfslot 
+0x2373 002699 setarg param_clke_cal_le_1m 
+0x2374 002700 store 2 ,mem_param_clke_cal_le_1m 
+0x2375 002701 setarg param_clke_cal_le_2m 
+0x2376 002702 store 2 ,mem_param_clke_cal_le_2m 
+0x2377 002703 setarg param_clke_cal_le_coded 
+0x2378 002704 store 2 ,mem_param_clke_cal_le_coded 
+0x2379 002706 bpatch patch04_2 ,mem_patch04 
+0x237a 002707 rtn wake 
+0x237b 002708 setarg att_default_mtu 
+0x237c 002709 store 2 ,mem_le_remote_mtu 
+0x237d 002710 jam param_t_ifs_150us + param_sync_time_difference ,mem_le_tx_ifs_defference 
+0x237e 002711 setarg mem_ble_tx_buff0 
+0x237f 002712 store 2 ,mem_ble_l2cap_tx_buff0_ptr 
+0x2380 002713 setarg mem_ble_l2cap_tx_buff_size 
+0x2381 002714 store 2 ,mem_ble_l2cap_tx_buff_size_ptr 
+0x2382 002715 rshift clkn_bt ,pdata 
+0x2383 002716 store 4 ,mem_last_clkn 
+0x2384 002717 rtn 
+:      002724 lpmstate:
+0x2385 002725 setarg 0xee21 
+0x2386 002726 store 2 ,core_clkoff 
+0x2387 002727 fetchr alarm ,4 ,core_gpio_in 
+0x2388 002728 fetch 1 ,core_lpm_isogate 
+0x2389 002729 bbit0 gpio_latch ,power_up 
+0x238a 002730 enable wake 
+0x238b 002731 bbit1 cold_wake ,lpmwake 
+0x238c 002732 disable wake 
+0x238d 002733 deposit auxcnt 
+0x238e 002734 nbranch lpmwake ,blank 
+0x238f 002735 fetch 1 ,core_lpm_sysctl 
+0x2390 002736 bbit1 reload_code ,lpmwake 
+0x2391 002737 arg param_hibernate_clks ,temp 
+0x2392 002738 branch lpm_enter_sleep 
+:      002739 lpmwake:
+0x2393 002740 call lpm_poweron_retmem 
+0x2394 002741 call lpm_load_context ,wake 
+0x2395 002742 fetch 1 ,core_lpm_isogate 
+0x2396 002743 set0 gpio_latch ,pdata 
+0x2397 002744 store 1 ,core_lpm_isogate 
+0x2398 002745 nbranch boot_load ,wake 
+0x2399 002746 call clean_smem 
+0x239a 002747 storer alarm ,4 ,mem_saved_gpio_in 
+0x239b 002748 rtn 
+:      002750 power_up:
+0x239c 002751 call lpm_poweron_retmem 
+:      002752 boot_load:
+0x239d 002753 call loadcode 
+0x239e 002754 storer alarm ,4 ,mem_saved_gpio_in 
+0x239f 002755 rtn 
+:      002757 lpm_poweron_retmem:
+0x23a0 002758 until null ,lpo_edge 
+0x23a1 002759 fetch 1 ,core_lpm_ldosel 
+0x23a2 002760 and_into 0x88 ,pdata 
+0x23a3 002761 store 1 ,core_lpm_ldosel 
+0x23a4 002762 until null ,lpo_edge 
+0x23a5 002763 fetch 1 ,core_lpm_isogate 
+0x23a6 002764 or_into 0xf ,pdata 
+0x23a7 002765 store 1 ,core_lpm_isogate 
+0x23a8 002766 until null ,lpo_edge 
+0x23a9 002767 set1 isogate ,pdata 
+0x23aa 002768 store 1 ,core_lpm_isogate 
+0x23ab 002769 until null ,lpo_edge 
+0x23ac 002770 set1 retmem_cs ,pdata 
+0x23ad 002771 store 1 ,core_lpm_isogate 
+0x23ae 002772 until null ,lpo_edge 
+0x23af 002773 rtn 
+:      002775 lpm_xtal_default:
+0x23b0 002776 until null ,lpo_edge 
+0x23b1 002777 jam 0x76 ,core_xtal_ib 
+0x23b2 002778 until null ,lpo_edge 
+0x23b3 002779 jam 0x37 ,core_xtal_cap 
+0x23b4 002780 rtn 
+:      002782 xtal_fast_wake:
+0x23b5 002783 until null ,lpo_edge 
+0x23b6 002784 jam 0x76 ,core_xtal_ib 
+0x23b7 002785 until null ,lpo_edge 
+0x23b8 002786 jam 0x37 ,core_xtal_cap 
+0x23b9 002787 rtn 
+:      002789 lpm_write_lock:
+0x23ba 002792 fetch 1 ,mem_device_option 
+0x23bb 002793 lshift4 pdata ,pdata 
+0x23bc 002795 store 1 ,core_ucode_flag 
+0x23bd 002796 until null ,lpo_edge 
+0x23be 002797 fetch 1 ,mem_peripheral_lock_flag 
+0x23bf 002798 set1 rom_lock_bit ,pdata 
+0x23c0 002799 set1 option_lock ,pdata 
+0x23c1 002800 store 1 ,core_peripheral_lock 
+0x23c2 002801 branch lpm_write_wait 
+:      002803 lpm_write_ice_disable:
+0x23c3 002804 fetch 1 ,core_lpm_sysctl 
+0x23c4 002805 set0 ice_mode ,pdata 
+0x23c5 002806 store 1 ,core_lpm_sysctl 
+0x23c6 002807 rtn 
+:      002809 lpm_write_ice_enable:
+0x23c7 002810 fetch 1 ,core_lpm_sysctl 
+0x23c8 002811 set1 ice_mode ,pdata 
+0x23c9 002812 store 1 ,core_lpm_sysctl 
+0x23ca 002813 rtn 
+:      002815 lpm_preon_counter:
+0x23cb 002816 fetch 3 ,mem_lpm_xtalcnt 
+0x23cc 002817 arg core_lpm_xtalcnt ,contw 
+:      002818 lpm_write_3bytes:
+0x23cd 002819 arg 3 ,loopcnt 
+0x23ce 002820 branch lpm_write_loop 
+:      002822 lpm_write_mpu_s0:
+0x23cf 002823 arg core_mpu_s0_saddr ,contw 
+:      002824 lpm_write_dword:
+0x23d0 002825 arg 4 ,loopcnt 
+:      002826 lpm_write_loop:
+0x23d1 002827 until null ,lpo_edge 
+0x23d2 002828 istore 1 ,contw 
+0x23d3 002829 rshift8 pdata ,pdata 
+0x23d4 002830 loop lpm_write_loop 
+0x23d5 002831 branch lpm_write_wait 
+:      002833 lpm_write_mpu_s1:
+0x23d6 002834 arg core_mpu_s1_saddr ,contw 
+0x23d7 002835 branch lpm_write_dword 
+:      002838 lpm_disable_exen_output:
+0x23d8 002839 fetch 1 ,core_lpm_ldosel 
+0x23d9 002840 set0 3 ,pdata 
+0x23da 002841 store 1 ,core_lpm_ldosel 
+0x23db 002842 rtn 
+:      002844 lpm_disable_io_dozed:
+0x23dc 002845 fetch 1 ,mem_lpm_hv_sel 
+0x23dd 002846 rtn blank 
+0x23de 002847 set0 lpm_doze_en_bit ,pdata 
+0x23df 002848 branch lpm_write_sel_hv 
+:      002850 lpm_save_sel_hv:
+0x23e0 002851 store 1 ,mem_lpm_hv_sel 
+:      002852 lpm_write_sel_hv:
+0x23e1 002853 store 1 ,core_io_doze_en 
+:      002854 lpm_write_wait:
+0x23e2 002855 until null ,lpo_edge 
+0x23e3 002856 rtn 
+:      002859 lpm_write_io_vsel:
+0x23e4 002860 store 1 ,core_io_vsel 
+0x23e5 002861 branch lpm_write_wait 
+:      002864 lpm_load_context:
+0x23e6 002865 call lpm_disable_io_dozed 
+0x23e7 002866 fetch 1 ,mem_saved_spidctrl 
+0x23e8 002867 store 1 ,core_spid_ctrl 
+0x23e9 002868 arg mem_saved_gpio ,contr 
+0x23ea 002869 arg core_gpio_conf ,contw 
+0x23eb 002870 call memcpy16 
+0x23ec 002871 arg core_gpio_conf_hi ,contw 
+0x23ed 002872 call memcpy8 
+0x23ee 002873 fetchr mark ,8 ,mem_saved_mark 
+0x23ef 002874 arg core_gpio_wakeup_cfg ,contr 
+0x23f0 002875 arg mem_gpio_wakeup_cfg ,contw 
+0x23f1 002876 arg 12 ,loopcnt 
+0x23f2 002877 call memcpy 
+0x23f3 002878 branch load_ucode 
+:      002880 lpm_save_context:
+0x23f4 002881 storer mark ,8 ,mem_saved_mark 
+0x23f5 002882 arg core_gpio_conf ,contr 
+0x23f6 002883 arg mem_saved_gpio ,contw 
+0x23f7 002884 call memcpy16 
+0x23f8 002885 arg core_gpio_conf_hi ,contr 
+0x23f9 002886 call memcpy8 
+0x23fa 002887 fetch 1 ,core_spid_ctrl 
+0x23fb 002888 store 1 ,mem_saved_spidctrl 
+0x23fc 002889 branch lpm_write_gpio_wakeup 
+:      002891 lpm_write_gpio_wakeup:
+0x23fd 002892 arg 12 ,loopcnt 
+0x23fe 002893 arg mem_gpio_wakeup_cfg ,contr 
+0x23ff 002894 arg core_gpio_wakeup_cfg ,rega 
+:      002895 lpm_write_gpio_loop:
+0x2400 002896 ifetch 1 ,contr 
+0x2401 002897 ncall lpm_write_gpio ,blank 
+0x2402 002898 increase 1 ,rega 
+0x2403 002899 loop lpm_write_gpio_loop 
+0x2404 002900 rtn 
+:      002901 lpm_write_gpio:
+0x2405 002902 istore 1 ,rega 
+0x2406 002903 until null ,lpo_edge 
+0x2407 002904 rtn 
+:      002906 lpo_calibration:
+0x2408 002907 bpatch patch04_3 ,mem_patch04 
+0x2409 002908 fetch 1 ,core_ccnt_bit 
+0x240a 002909 nbranch lpo_cal_inited ,blank 
+0x240b 002910 fetch 3 ,mem_clks_per_lpo 
+0x240c 002911 nrtn blank 
+0x240d 002912 jam 0xc ,core_ccnt_bit 
+0x240e 002913 jam ccnt_start ,core_misc_ctrl 
+:      002914 lpo_cal_inited:
+0x240f 002915 fetch 1 ,core_perf_status 
+0x2410 002916 rtnbit0 1 
+0x2411 002917 fetch 3 ,core_clk_counter 
+0x2412 002918 store 3 ,mem_clks_per_lpo 
+0x2413 002919 rtn 
+:      002923 lpm_doze:
+0x2414 002924 fetch 1 ,mem_lpm_sysctl 
+0x2415 002925 set1 reload_code ,pdata 
+0x2416 002926 store 1 ,mem_lpm_sysctl 
+:      002929 lpm_hibernate:
+0x2417 002930 bpatch patch04_4 ,mem_patch04 
+0x2418 002931 arg param_hibernate_clks ,temp 
+0x2419 002932 fetch 1 ,mem_lpm_hibernate_switch 
+0x241a 002933 store 1 ,mem_lpm_isogate_final 
+0x241b 002934 fetch 1 ,mem_lpm_sysctl 
+0x241c 002935 store 1 ,core_lpm_sysctl 
+0x241d 002936 until null ,lpo_edge 
+:      002938 lpm_sleep:
+0x241e 002939 bpatch patch04_5 ,mem_patch04 
+0x241f 002941 fetch 2 ,mem_cb_before_lpm_sleep 
+0x2420 002942 call callback_func 
+:      002943 lpm_sleep_skip_cb_function:
+0x2421 002944 fetch 4 ,mem_sleep_counter_all 
+0x2422 002945 iadd temp ,pdata 
+0x2423 002946 store 4 ,mem_sleep_counter_all 
+0x2424 002947 call lpm_save_context 
+0x2425 002948 fetch 1 ,mem_lpm_hv_sel 
+0x2426 002949 set1 lpm_doze_en_bit ,pdata 
+0x2427 002950 call lpm_write_sel_hv 
+0x2428 002951 ncall lpm_preon_counter ,wake 
+0x2429 002952 until null ,lpo_edge 
+0x242a 002953 storer clkn ,6 ,mem_sleep_clkn 
+0x242b 002954 fetch 3 ,mem_lpm_isogate 
+0x242c 002955 fetchr rega ,1 ,mem_lpm_ldo_sel 
+0x242d 002956 arg 3 ,loopcnt 
+:      002957 lpm_sleep_loop:
+0x242e 002958 until null ,lpo_edge 
+0x242f 002959 store 1 ,core_lpm_isogate 
+0x2430 002960 rshift8 pdata ,pdata 
+0x2431 002961 loop lpm_sleep_loop 
+0x2432 002962 until null ,lpo_edge 
+0x2433 002963 storer rega ,1 ,core_lpm_ldosel 
+:      002964 lpm_enter_sleep:
+0x2434 002965 until null ,lpo_edge 
+0x2435 002966 storet 4 ,core_lpm_reg 
+0x2436 002967 jam lpmreg_sel_counter ,core_lpm_wr 
+0x2437 002968 until null ,never 
+:      002970 lpm_cal_xtal_startup:
+0x2438 002971 fetch 1 ,mem_lpm_xtalcnt 
+0x2439 002972 nrtn blank 
+0x243a 002973 jam clksel_rc ,core_clksel 
+0x243b 002974 jam 0xf8 ,core_lpm_ctrl 
+0x243c 002975 setarg 200000 
+0x243d 002976 call sleep 
+0x243e 002977 call xtal_fast_wake 
+0x243f 002978 until null ,lpo_edge 
+0x2440 002979 jam 0xff ,core_lpm_ctrl 
+0x2441 002980 copy lpo_time ,alarm 
+0x2442 002981 jam clksel_xtal ,core_clksel 
+0x2443 002982 nop 10 
+0x2444 002983 until null ,lpo_edge 
+0x2445 002984 deposit lpo_time 
+0x2446 002985 isub alarm ,pdata 
+0x2447 002986 increase 0x30 ,pdata 
+0x2448 002987 arg 0xff ,temp 
+0x2449 002988 call ceiling 
+0x244a 002989 store 1 ,mem_lpm_xtalcnt 
+0x244b 002990 nop 30000 
+0x244c 002991 nop 30000 
+0x244d 002992 nop 30000 
+0x244e 002993 rtn 
+:      002996 lpm_recover_clk:
+0x244f 002997 bpatch patch04_6 ,mem_patch04 
+0x2450 002998 setarg 0 
+0x2451 002999 copy auxcnt ,null 
+0x2452 003000 branch lpm_recover_timeout ,zero 
+0x2453 003001 fetch 1 ,core_lpm_xtalcnt 
+0x2454 003002 fetcht 1 ,core_lpm_buckcnt 
+0x2455 003003 isub temp ,null 
+0x2456 003004 branch lpm_recover_xtal ,positive 
+0x2457 003005 deposit temp 
+:      003006 lpm_recover_xtal:
+0x2458 003007 isub auxcnt ,pdata 
+0x2459 003008 increase 1 ,pdata 
+:      003009 lpm_recover_timeout:
+0x245a 003010 increase 8 ,pdata 
+0x245b 003011 until null ,lpo_edge 
+0x245c 003012 iadd lpo_time ,pdata 
+0x245d 003013 fetcht 4 ,mem_sleep_counter 
+0x245e 003014 iadd temp ,pdata 
+0x245f 003015 fetcht 3 ,mem_clks_per_lpo 
+0x2460 003016 imul32 temp ,pdata 
+0x2461 003017 rshift8 pdata ,pdata 
+0x2462 003018 rshift4 pdata ,pdata 
+0x2463 003019 increase param_lpm_fix ,pdata 
+0x2464 003020 fetcht 2 ,mem_param_rt_rthalfslot 
+0x2465 003021 idiv temp 
+0x2466 003022 call get_div_result 
+0x2467 003023 lshift16 pdata ,pdata 
+0x2468 003024 remainder temp 
+0x2469 003025 ior temp ,pdata 
+0x246a 003026 fetcht 6 ,mem_sleep_clkn 
+0x246b 003027 call clk_add 
+0x246c 003028 copy temp ,clkn 
+0x246d 003029 fetch 6 ,mem_context + coffset_clk_offset 
+0x246e 003030 call calc_clke2 
+0x246f 003031 deposit clke 
+0x2470 003032 store 6 ,mem_pdatatemp 
+0x2471 003033 deposit auxcnt 
+0x2472 003034 istore 1 ,contw 
+0x2473 003035 fetch 1 ,core_gpio_in1 
+0x2474 003036 or_into 0xf0 ,pdata 
+0x2475 003037 istore 1 ,contw 
+0x2476 003038 rtn 
+:      003041 lpm_adjust_clk:
+0x2477 003042 bpatch patch04_7 ,mem_patch04 
+0x2478 003043 deposit clke 
+0x2479 003044 call clk_diff_rt 
+0x247a 003045 fetcht 4 ,mem_sleep_counter_all 
+0x247b 003046 sub temp ,0xff ,null 
+0x247c 003047 rtn positive 
+0x247d 003048 lshift8 pdata ,pdata 
+0x247e 003049 lshift4 pdata ,pdata 
+0x247f 003050 idiv temp 
+0x2480 003051 call get_div_result 
+0x2481 003052 arg param_lpm_adjmax ,temp 
+0x2482 003053 call ceiling 
+0x2483 003054 store 1 ,mem_lpm_adjust 
+0x2484 003055 nbranch lpm_adjust_positive ,user 
+0x2485 003056 sub pdata ,0 ,pdata 
+:      003057 lpm_adjust_positive:
+0x2486 003058 fetcht 3 ,mem_clks_per_lpo 
+0x2487 003059 iadd temp ,pdata 
+0x2488 003060 store 3 ,mem_clks_per_lpo 
+:      003061 lpm_clear_counter:
+0x2489 003062 setarg 0 
+0x248a 003063 store 4 ,mem_sleep_counter_all 
+0x248b 003064 rtn 
+:      003067 lpm_dispatch:
+0x248c 003068 bpatch patch05_0 ,mem_patch05 
+0x248d 003069 call lpo_calibration 
+0x248e 003070 fetch 3 ,mem_clks_per_lpo 
+0x248f 003071 rtn blank 
+0x2490 003072 fetch 1 ,mem_lpm_mode 
+0x2491 003073 rtn blank 
+0x2492 003074 fetch 1 ,mem_secure_connections_enable 
+0x2493 003075 branch lpm_dispatch_next ,blank 
+0x2494 003076 fetch 1 ,mem_sc_local_key_invalid 
+0x2495 003077 rtn blank 
+:      003078 lpm_dispatch_next:
+0x2496 003079 fetch 1 ,mem_sc_calc 
+0x2497 003080 nrtn blank 
+0x2498 003081 arg context_check_a_wack ,regc 
+0x2499 003082 call context_search 
+0x249a 003083 rtn zero 
+0x249b 003084 call lpm_check_wake_lock 
+0x249c 003085 nrtn blank 
+0x249d 003086 call context_check_idle 
+0x249e 003087 nbranch lpm_dispatch_unconn ,zero 
+0x249f 003088 rtn wake 
+0x24a0 003089 bpatch patch05_1 ,mem_patch05 
+0x24a1 003090 fetcht 1 ,mem_lpm_current_mult 
+0x24a2 003091 fetch 2 ,mem_context + coffset_tsniff 
+0x24a3 003092 imul32 temp ,pdata 
+0x24a4 003093 rshift4 temp ,temp 
+0x24a5 003094 rshift2 temp ,temp 
+0x24a6 003095 isub temp ,pdata 
+0x24a7 003096 fetcht 4 ,mem_context + coffset_sniff_anchor 
+0x24a8 003097 iadd temp ,pdata 
+0x24a9 003098 fetcht 1 ,mem_lpm_overhead 
+0x24aa 003099 isub temp ,pdata 
+0x24ab 003100 lshift16 pdata ,alarm 
+0x24ac 003101 fetch 2 ,mem_context + coffset_rx_window 
+0x24ad 003102 rshift pdata ,pdata 
+0x24ae 003103 call clk2bt 
+0x24af 003104 deposit alarm 
+0x24b0 003105 call clk_diff 
+0x24b1 003106 copy clke ,temp 
+0x24b2 003107 call clk_diff_rt 
+0x24b3 003108 rtn user 
+:      003109 lpm_dispatch_sleep:
+0x24b4 003110 call clk2lpo 
+:      003111 lpm_dispatch_lpo:
+0x24b5 003112 bpatch patch05_2 ,mem_patch05 
+0x24b6 003113 fetch 1 ,mem_lpm_xtalcnt 
+0x24b7 003114 isub temp ,null 
+0x24b8 003115 branch lpm_clear_counter ,positive 
+0x24b9 003116 storet 4 ,mem_sleep_counter 
+0x24ba 003117 call app_will_enter_lpm 
+0x24bb 003119 fetcht 4 ,mem_sleep_counter 
+0x24bc 003120 branch lpm_sleep 
+:      003122 lpm_dispatch_unconn:
+0x24bd 003123 bpatch patch05_3 ,mem_patch05 
+0x24be 003124 fetch 1 ,mem_le_adv_enable 
+0x24bf 003125 nbranch lpm_unconn_cont ,blank 
+0x24c0 003126 rtn 
+:      003128 lpm_unconn_cont:
+0x24c1 003129 fetch 2 ,mem_lpm_interval 
+0x24c2 003130 rtn blank 
+:      003131 lpm_sleep_btclk:
+0x24c3 003132 fetcht 1 ,mem_lpm_overhead 
+0x24c4 003133 isub temp ,pdata 
+0x24c5 003134 arg 7500 ,temp 
+0x24c6 003135 imul32 temp ,pdata 
+0x24c7 003136 branch lpm_dispatch_sleep 
+:      003139 lpm_mult_wait_timeout:
+0x24c8 003140 fetch 2 ,mem_cb_bt_set_mult 
+0x24c9 003141 call callback_func 
+0x24ca 003142 nbranch lpm_mult_short ,blank 
+0x24cb 003143 jam 0 ,mem_lpm_current_mult 
+0x24cc 003144 bmark0 mark_lpm_mult_enable ,lpm_mult_short 
+0x24cd 003145 fetch 1 ,mem_lpm_mult_cnt 
+0x24ce 003146 branch lpm_mult_long ,blank 
+0x24cf 003147 increase -1 ,pdata 
+0x24d0 003148 store 1 ,mem_lpm_mult_cnt 
+0x24d1 003149 rtn 
+:      003154 lpm_match:
+0x24d2 003155 jam 0 ,mem_sniff_unint_lost 
+0x24d3 003156 fetch 3 ,mem_sniff_rcv 
+0x24d4 003157 increase 1 ,pdata 
+0x24d5 003158 store 3 ,mem_sniff_rcv 
+0x24d6 003159 rtn 
+:      003162 lpm_lost:
+0x24d7 003163 bpatch patch05_4 ,mem_patch05 
+0x24d8 003164 jam 0 ,mem_lpm_current_mult 
+0x24d9 003165 fetch 3 ,mem_sniff_lost 
+0x24da 003166 increase 1 ,pdata 
+0x24db 003167 store 3 ,mem_sniff_lost 
+0x24dc 003168 fetch 1 ,mem_sniff_unint_lost 
+0x24dd 003169 increase 1 ,pdata 
+0x24de 003170 store 1 ,mem_sniff_unint_lost 
+0x24df 003171 rtn 
+:      003173 lpm_mult_short:
+0x24e0 003174 jam 0 ,mem_lpm_current_mult 
+0x24e1 003175 fetch 1 ,mem_lpm_mult_timeout 
+0x24e2 003176 store 1 ,mem_lpm_mult_cnt 
+0x24e3 003177 rtn 
+:      003179 lpm_mult_long:
+0x24e4 003180 fetcht 1 ,mem_lpm_mult 
+0x24e5 003181 storet 1 ,mem_lpm_current_mult 
+0x24e6 003182 rtn 
+:      003186 lpm_get_wake_lock:
+0x24e7 003187 fetch 2 ,mem_lpm_wake_lock 
+0x24e8 003188 qset1 pdata 
+0x24e9 003189 store 2 ,mem_lpm_wake_lock 
+0x24ea 003190 rtn 
+:      003192 lpm_put_wake_lock:
+0x24eb 003193 fetch 2 ,mem_lpm_wake_lock 
+0x24ec 003194 qset0 pdata 
+0x24ed 003195 store 2 ,mem_lpm_wake_lock 
+0x24ee 003196 rtn 
+:      003200 lpm_check_wake_lock:
+0x24ef 003201 bpatch patch05_5 ,mem_patch05 
+0x24f0 003202 call app_check_wake_lock 
+0x24f1 003203 fetch 2 ,mem_lpm_wake_lock 
+0x24f2 003204 copy pdata ,rega 
+0x24f3 003205 fetch 3 ,mem_tx_fifo3 
+0x24f4 003206 nsetflag blank ,wake_lock_ble_tx ,rega 
+0x24f5 003207 fetch util_fifo_len ,mem_ipc_fifo_bt2c51 
+0x24f6 003208 nsetflag blank ,wake_lock_ipc_bt2c51 ,rega 
+0x24f7 003209 fetch util_fifo_len ,mem_ipc_fifo_c512bt 
+0x24f8 003210 nsetflag blank ,wake_lock_ipc_c512bt ,rega 
+0x24f9 003211 fetch 1 ,mem_hci_cmd 
+0x24fa 003212 nsetflag blank ,wake_lock_cmd ,rega 
+0x24fb 003213 fetch 1 ,mem_device_option 
+0x24fc 003214 compare dvc_op_module ,pdata ,0xff 
+0x24fd 003215 call lpm_uart_wake_lock ,true 
+0x24fe 003216 copy rega ,pdata 
+0x24ff 003217 store 2 ,mem_lpm_wake_lock 
+0x2500 003218 rtn 
+:      003220 lpm_uart_wake_lock:
+0x2501 003221 fetch 2 ,core_uart_rxitems 
+0x2502 003222 nsetflag blank ,wake_lock_uart_rx ,rega 
+0x2503 003223 fetch 2 ,core_uart_txitems 
+0x2504 003224 nsetflag blank ,wake_lock_uart_tx ,rega 
+0x2505 003225 rtn 
+:      003234 le_init_conn:
+0x2506 003235 bpatchx patch21_6 ,mem_patch21 
+0x2507 003236 disable wake 
+0x2508 003237 jam 1 ,mem_le_conn_handle 
+0x2509 003238 jam 3 ,mem_le_state 
+0x250a 003239 jam 1 ,mem_le_arq 
+0x250b 003240 setarg -1 
+0x250c 003241 store 2 ,mem_le_event_count 
+0x250d 003242 force 0 ,pdata 
+0x250e 003243 store 1 ,mem_le_ch 
+0x250f 003244 store 1 ,mem_le_op 
+0x2510 003245 store 3 ,mem_sniff_rcv 
+0x2511 003246 store 3 ,mem_sniff_lost 
+0x2512 003247 call le_clear_enc 
+0x2513 003248 jam 1 ,mem_le_txheader 
+0x2514 003249 jam 0 ,mem_le_txlen 
+0x2515 003250 jam fun_rx_ll_1m_phy ,mem_le_rx_phy 
+0x2516 003251 jam fun_tx_ll_1m_phy ,mem_le_tx_phy 
+0x2517 003252 jam 0 ,mem_le_l2cap_att_states 
+0x2518 003253 branch le_supervision_flush 
+:      003255 le_init_master:
+0x2519 003256 bpatchx patch21_7 ,mem_patch21 
+0x251a 003257 enable master 
+0x251b 003258 jam lemode_master ,mem_le_mode 
+0x251c 003259 jam 1 ,mem_le_att_handle 
+0x251d 003260 jam 1 ,mem_le_search_handle_start 
+0x251e 003261 setarg 0xffff 
+0x251f 003262 store 2 ,mem_le_search_handle_end 
+0x2520 003263 force 0 ,pdata 
+0x2521 003264 store 5 ,mem_ccm_pcnt_rx 
+0x2522 003265 set1 le_ccm_directionbit ,pdata 
+0x2523 003266 store 5 ,mem_ccm_pcnt_tx 
+0x2524 003267 branch le_init_conn 
+:      003270 le_init_slave:
+0x2525 003271 bpatchx patch22_0 ,mem_patch22 
+0x2526 003272 disable master 
+0x2527 003273 setarg 0x17 
+0x2528 003274 store 2 ,mem_le_remote_mtu 
+0x2529 003275 increase 4 ,pdata 
+0x252a 003276 store 2 ,mem_remote_rx_max_octets 
+0x252b 003277 jam lemode_slave ,mem_le_mode 
+0x252c 003278 jam 0 ,mem_le_adv_enable 
+0x252d 003279 jam 0 ,mem_lpm_current_mult 
+0x252e 003280 call le_clear_pairing_state 
+0x252f 003281 fetch 2 ,mem_le_superto 
+0x2530 003282 store 2 ,mem_le_init_superto 
+0x2531 003283 fetch 2 ,mem_le_tsniff 
+0x2532 003284 mul32 pdata ,5 ,pdata 
+0x2533 003285 rshift4 pdata ,pdata 
+0x2534 003286 store 2 ,mem_le_superto 
+0x2535 003287 branch le_init_conn 
+:      003294 le_conn_dispatch:
+0x2536 003295 bpatchx patch22_1 ,mem_patch22 
+0x2537 003296 call le_enable 
+0x2538 003297 fetch 1 ,mem_le_state 
+0x2539 003298 isolate1 lestate_encryption ,pdata 
+0x253a 003299 setflag true ,mark_ble_encryption ,mark 
+0x253b 003300 call app_process_ble 
+0x253c 003301 fetch 1 ,mem_le_mode 
+0x253d 003302 bbit1 mode_master ,le_master_dispatch 
+0x253e 003303 branch le_slave_dispatch 
+:      003309 le_master_dispatch:
+0x253f 003310 bpatchx patch22_2 ,mem_patch22 
+0x2540 003311 enable master 
+0x2541 003312 call le_supervision_update 
+0x2542 003313 branch le_master_disconn ,positive 
+0x2543 003314 call le_setup 
+0x2544 003315 call le_prepare_tx 
+0x2545 003316 disable match 
+0x2546 003317 call le_transmit_receive_sifs 
+0x2547 003318 nrtn match 
+0x2548 003319 fetch 1 ,mem_le_conn_rcv 
+0x2549 003320 increase 1 ,pdata 
+0x254a 003321 store 1 ,mem_le_conn_rcv 
+0x254b 003322 call le_acknowledge 
+0x254c 003323 disable master 
+0x254d 003324 rtn 
+:      003326 le_master_disconn:
+0x254e 003327 call le_disconnect 
+0x254f 003328 disable master 
+0x2550 003329 rtn 
+:      003334 le_slave_dispatch:
+0x2551 003335 bpatchx patch22_3 ,mem_patch22 
+0x2552 003336 jam 0 ,mem_le_md_count 
+0x2553 003337 set0 mark_ble_crc_fail ,mark 
+0x2554 003338 call sp_calc_sequence_256 
+0x2555 003339 call le_secure_connect_sm 
+0x2556 003340 disable attempt 
+0x2557 003341 call le_supervision_update 
+0x2558 003342 branch le_slave_disconn ,positive 
+0x2559 003343 fetch 1 ,mem_le_rx_phy 
+0x255a 003344 call le_enable_phy_by_pdata 
+0x255b 003345 call le_setup 
+0x255c 003346 call le_receive_slave 
+0x255d 003347 nbranch le_slave_unsync ,sync 
+0x255e 003348 call le_got_first_packet 
+0x255f 003349 branch le_slave_match ,match 
+0x2560 003350 bmark1 mark_ble_crc_fail ,le_slave_crc_fail 
+0x2561 003351 branch le_slave_cont 
+:      003354 le_slave_crc_fail:
+:      003355 le_slave_match:
+0x2562 003356 bpatchx patch22_4 ,mem_patch22 
+0x2563 003357 fetch 1 ,mem_le_md_count 
+0x2564 003358 pincrease 1 
+0x2565 003359 store 1 ,mem_le_md_count 
+0x2566 003360 beq le_md_max_count ,le_slave_cont 
+0x2567 003361 call le_acknowledge 
+0x2568 003362 call le_prepare_tx 
+0x2569 003363 fetch 1 ,mem_le_tx_phy 
+0x256a 003364 call le_enable_phy_by_pdata 
+0x256b 003365 call le_transmit 
+0x256c 003366 call le_parse 
+0x256d 003367 fetch 2 ,mem_cb_ble_transmit 
+0x256e 003368 call callback_func 
+0x256f 003369 call le_check_md 
+0x2570 003370 branch le_slave_more_data ,user 
+:      003371 le_slave_cont:
+0x2571 003372 bpatchx patch22_5 ,mem_patch22 
+0x2572 003373 call le_pairing_sm 
+0x2573 003374 call le_check_paring_time 
+0x2574 003375 call check_51cmd 
+0x2575 003376 fetch 1 ,mem_le_op 
+0x2576 003377 bbit1 op_disconn ,le_slave_disconn 
+:      003378 le_slave_unsync:
+0x2577 003379 bpatchx patch22_6 ,mem_patch22 
+0x2578 003380 call end_of_packet 
+0x2579 003381 call le_lpm_set_mult 
+0x257a 003382 branch calc_clke_offset 
+:      003385 le_check_md:
+0x257b 003386 disable user 
+0x257c 003387 bmark1 mark_ble_rx_md ,enable_user 
+0x257d 003388 bmark1 mark_ble_tx_md ,enable_user 
+0x257e 003389 bmark1 mark_ble_crc_fail ,enable_user 
+0x257f 003390 rtn 
+:      003393 le_slave_more_data:
+0x2580 003394 bpatchx patch22_7 ,mem_patch22 
+0x2581 003395 enable attempt 
+0x2582 003396 call le_transmit_receive_sifs_notx 
+0x2583 003397 branch le_slave_match ,match 
+0x2584 003398 bmark1 mark_ble_crc_fail ,le_slave_crc_fail 
+0x2585 003399 branch le_slave_cont 
+:      003401 le_slave_disconn:
+:      003403 le_disconnect:
+0x2586 003404 bpatchx patch23_0 ,mem_patch23 
+0x2587 003405 call le_clear_connection_info 
+0x2588 003406 call app_disconn_reason_collect_ble 
+0x2589 003407 call le_clear_pairing_state 
+0x258a 003408 call le_sc_state_clear 
+0x258b 003409 jam bt_evt_le_disconnected ,mem_fifo_temp 
+0x258c 003410 branch ui_ipc_send_event 
+:      003412 le_clear_connection_info:
+0x258d 003413 arg mem_used_map ,contw 
+0x258e 003414 call memset0_16 
+0x258f 003415 jam 0 ,mem_le_conn_handle 
+0x2590 003416 jam lemode_idle ,mem_le_mode 
+0x2591 003417 jam 0 ,mem_le_state 
+:      003418 le_clear_pairing_state:
+0x2592 003419 bpatchx patch23_1 ,mem_patch23 
+0x2593 003420 jam flag_le_enc_null ,mem_le_enc_state 
+0x2594 003421 jam flag_le_pairing_null ,mem_le_pairing_state 
+0x2595 003422 call sp_clear_flags 
+0x2596 003423 rtn 
+:      003425 le_got_first_packet:
+0x2597 003426 bpatchx patch23_2 ,mem_patch23 
+0x2598 003427 fetch 1 ,mem_le_conn_rcv 
+0x2599 003428 increase 1 ,pdata 
+0x259a 003429 store 1 ,mem_le_conn_rcv 
+0x259b 003430 fetch 1 ,mem_le_state 
+0x259c 003431 rtnbit1 lestate_got_first_packet 
+0x259d 003432 set1 lestate_got_first_packet ,pdata 
+0x259e 003433 store 1 ,mem_le_state 
+0x259f 003434 fetch 2 ,mem_le_init_superto 
+0x25a0 003435 store 2 ,mem_le_superto 
+0x25a1 003436 setarg 0 
+0x25a2 003437 store 4 ,mem_le_transmit_window 
+0x25a3 003438 rtn 
+:      003446 le_enable_phy_by_pdata:
+0x25a4 003447 copy pdata ,temp 
+0x25a5 003448 bpatchx patch23_3 ,mem_patch23 
+:      003449 le_enable_phy_by_pdata1:
+0x25a6 003450 copy temp ,pdata 
+0x25a7 003451 bbit1 bit_le_1m_phy ,le_enable 
+0x25a8 003452 bbit1 bit_le_2m_phy ,le_enable_2m 
+0x25a9 003453 bbit0 bit_le_coded_phy ,le_enable 
+0x25aa 003454 bbit1 bit_le_coded_phy_s8 ,le_enable_coded_s8 
+0x25ab 003455 bbit1 bit_le_coded_phy_s2 ,le_enable_coded_s2 
+0x25ac 003456 branch le_enable 
+:      003458 le_enable_2m:
+0x25ad 003459 set0 mark_ble_lr ,mark 
+0x25ae 003460 set1 mark_ble_2m ,mark 
+0x25af 003461 rtn 
+:      003463 le_enable_coded_s2:
+:      003464 le_enable_coded:
+0x25b0 003465 set0 mark_ble_2m ,mark 
+0x25b1 003466 set1 mark_ble_lr ,mark 
+0x25b2 003467 set0 mark_ble_lr_s8 ,mark 
+0x25b3 003468 rtn 
+:      003471 le_enable_coded_s8:
+0x25b4 003472 set0 mark_ble_2m ,mark 
+0x25b5 003473 set1 mark_ble_lr ,mark 
+0x25b6 003474 set1 mark_ble_lr_s8 ,mark 
+0x25b7 003475 rtn 
+:      003477 le_enable:
+0x25b8 003478 bpatchx patch23_4 ,mem_patch23 
+0x25b9 003479 set0 mark_ble_2m ,mark 
+0x25ba 003480 set0 mark_ble_lr ,mark 
+0x25bb 003481 rtn 
+:      003484 le_disable:
+0x25bc 003485 bpatchx patch23_5 ,mem_patch23 
+0x25bd 003486 set0 mark_ble_encryption ,mark 
+0x25be 003487 jam 0x01 ,0x8901 
+0x25bf 003488 jam 0x80 ,0x8920 
+0x25c0 003489 jam 0x03 ,0x8930 
+0x25c1 003490 rtn 
+:      003492 le_prep:
+0x25c2 003493 bpatchx patch23_6 ,mem_patch23 
+0x25c3 003494 disable enable_crc 
+0x25c4 003495 disable enable_white 
+0x25c5 003496 fetch 3 ,mem_le_crcinit 
+0x25c6 003497 iforce crc24_init 
+0x25c7 003498 fetch 1 ,mem_le_ch_mapped 
+:      003499 le_prep_next:
+0x25c8 003500 reverse pdata ,temp 
+0x25c9 003501 set1 1 ,temp 
+0x25ca 003502 rshift temp ,white_init 
+0x25cb 003503 rtn 
+:      003506 le_rx_setfreq:
+0x25cc 003507 call le_setfreq 
+:      003508 le_rf_rx_enable:
+0x25cd 003509 call set_freq_rx 
+0x25ce 003510 fetch 2 ,mem_param_pll_setup 
+0x25cf 003511 call sleep 
+0x25d0 003512 branch rf_rx_enable 
+:      003514 le_tx_setfreq:
+0x25d1 003515 branch txon ,match 
+0x25d2 003516 bmark1 mark_ble_crc_fail ,txon 
+:      003517 le_tx_setfreq0:
+0x25d3 003518 call le_setfreq 
+0x25d4 003519 branch set_freq_tx 
+:      003521 le_setfreq:
+0x25d5 003522 bpatchx patch23_7 ,mem_patch23 
+0x25d6 003523 call set_sync_on 
+0x25d7 003524 fetch 1 ,mem_le_testtype 
+0x25d8 003525 nbranch le_ctf_test ,blank 
+0x25d9 003526 fetch 1 ,mem_le_ch_mapped 
+0x25da 003527 sub pdata ,36 ,null 
+0x25db 003528 branch le_ctf_normal ,positive 
+0x25dc 003529 force 0 ,temp 
+0x25dd 003530 rtneq 37 
+0x25de 003531 force 24 ,temp 
+0x25df 003532 rtneq 38 
+0x25e0 003533 force 78 ,temp 
+0x25e1 003534 rtn 
+:      003536 le_ctf_normal:
+0x25e2 003537 sub pdata ,10 ,null 
+0x25e3 003538 branch le_ctf_low ,positive 
+0x25e4 003539 increase 1 ,pdata 
+:      003541 le_ctf_low:
+0x25e5 003542 lshift pdata ,pdata 
+0x25e6 003543 add pdata ,2 ,temp 
+0x25e7 003544 rtn 
+:      003546 le_ctf_test:
+0x25e8 003547 fetch 1 ,mem_le_ch_mapped 
+0x25e9 003548 lshift pdata ,temp 
+0x25ea 003549 rtn 
+:      003551 le_sca_map:
+0x25eb 003552 arg 500 ,temp 
+0x25ec 003553 rtn blank 
+0x25ed 003554 arg 250 ,temp 
+0x25ee 003555 rtneq 1 
+0x25ef 003556 arg 150 ,temp 
+0x25f0 003557 rtneq 2 
+0x25f1 003558 arg 100 ,temp 
+0x25f2 003559 rtneq 3 
+0x25f3 003560 arg 75 ,temp 
+0x25f4 003561 rtneq 4 
+0x25f5 003562 arg 50 ,temp 
+0x25f6 003563 rtneq 5 
+0x25f7 003564 arg 40 ,temp 
+0x25f8 003565 rtneq 6 
+0x25f9 003566 arg 20 ,temp 
+0x25fa 003567 rtn 
+:      003571 le_setup:
+0x25fb 003572 bpatchx patch24_0 ,mem_patch24 
+0x25fc 003573 enable swfine 
+0x25fd 003574 fetch 4 ,mem_le_access 
+0x25fe 003575 iforce access 
+0x25ff 003576 call le_map_channel 
+0x2600 003577 setarg 0x200 
+0x2601 003578 branch le_setup_master ,master 
+0x2602 003579 fetch 2 ,mem_le_receive_window 
+0x2603 003580 rshift pdata ,pdata 
+:      003581 le_setup_master:
+0x2604 003582 fetcht 2 ,mem_param_pll_setup 
+0x2605 003583 iadd temp ,pdata 
+0x2606 003584 call ahead_window 
+0x2607 003585 deposit clke 
+0x2608 003586 rtn 
+:      003589 le_context_nextevent:
+0x2609 003590 bpatchx patch24_1 ,mem_patch24 
+0x260a 003591 call push_stack_rega_b_c 
+0x260b 003592 storer loopcnt ,2 ,mem_loopcnt 
+0x260c 003593 add rega ,coffset_mode ,contr 
+0x260d 003594 ifetch 1 ,contr 
+0x260e 003595 rtnbit0 mode_le 
+0x260f 003596 add rega ,coffset_le_event_cnt ,contw 
+0x2610 003597 ifetch 2 ,contw 
+0x2611 003598 increase 1 ,pdata 
+0x2612 003599 istore 2 ,contw 
+0x2613 003600 call le_update_param 
+0x2614 003601 call le_update_channel_map 
+0x2615 003602 call le_update_phy 
+0x2616 003603 call le_context_nexthop 
+0x2617 003604 call pop_stack_rega_b_c 
+0x2618 003605 fetchr loopcnt ,2 ,mem_loopcnt 
+0x2619 003606 rtn 
+:      003608 le_context_nexthop:
+0x261a 003609 add rega ,coffset_le_hop ,contr 
+0x261b 003610 ifetch 1 ,contr 
+0x261c 003611 add rega ,coffset_le_ch ,contw 
+0x261d 003612 ifetcht 1 ,contw 
+0x261e 003613 iadd temp ,pdata 
+0x261f 003614 sub pdata ,36 ,null 
+0x2620 003615 branch le_nexthop_nowrap ,positive 
+0x2621 003616 increase -37 ,pdata 
+:      003617 le_nexthop_nowrap:
+0x2622 003618 istore 1 ,contw 
+0x2623 003619 rtn 
+:      003622 le_calc_channel_map:
+0x2624 003623 add rega ,coffset_le_channel_map ,contr 
+0x2625 003624 ifetch 5 ,contr 
+0x2626 003625 force 0 ,temp 
+0x2627 003626 force 37 ,loopcnt 
+:      003627 le_count_channels_loop:
+0x2628 003628 bbit0 0 ,le_count_channels_notused 
+0x2629 003629 increase 1 ,temp 
+:      003630 le_count_channels_notused:
+0x262a 003631 rshift pdata ,pdata 
+0x262b 003632 loop le_count_channels_loop 
+0x262c 003633 add temp ,-1 ,pdata 
+0x262d 003634 add rega ,coffset_le_channels ,contw 
+0x262e 003635 istore 1 ,contw 
+0x262f 003636 rtn 
+:      003638 le_map_channel:
+0x2630 003639 bpatchx patch24_2 ,mem_patch24 
+0x2631 003640 fetch 1 ,mem_le_ch 
+0x2632 003641 iforce queue 
+0x2633 003642 fetcht 5 ,mem_le_channel_map 
+0x2634 003643 qisolate1 temp 
+0x2635 003644 branch le_map_channel_end ,true 
+:      003645 le_map_channel_next:
+0x2636 003646 fetch 1 ,mem_le_channels 
+0x2637 003647 isub queue ,pdata 
+0x2638 003648 branch le_map_channel_cont ,positive 
+0x2639 003649 sub pdata ,-1 ,queue 
+0x263a 003650 branch le_map_channel_next 
+:      003651 le_map_channel_cont:
+0x263b 003652 copy queue ,loopcnt 
+0x263c 003653 force 0 ,queue 
+:      003654 le_map_channel_loop:
+0x263d 003655 qisolate1 temp 
+0x263e 003656 branch le_map_channel_skip ,true 
+0x263f 003657 increase 1 ,loopcnt 
+:      003658 le_map_channel_skip:
+0x2640 003659 deposit loopcnt 
+0x2641 003660 branch le_map_channel_end ,blank 
+0x2642 003661 increase 1 ,queue 
+0x2643 003662 increase -1 ,loopcnt 
+0x2644 003663 branch le_map_channel_loop 
+:      003664 le_map_channel_end:
+0x2645 003665 deposit queue 
+0x2646 003666 store 1 ,mem_le_ch_mapped 
+0x2647 003667 rtn 
+:      003670 le_wait_tx:
+0x2648 003671 branch le_wait_master ,master 
+0x2649 003672 until null ,timeout 
+0x264a 003673 rtn 
+:      003675 le_wait_master:
+0x264b 003676 arg 0xea0 ,timeup 
+0x264c 003677 until clkn_rt ,meet 
+0x264d 003678 rtn 
+:      003680 le_receive_adv:
+0x264e 003681 disable swfine 
+0x264f 003682 fetch 2 ,mem_le_scan_window 
+0x2650 003683 copy pdata ,timeup 
+0x2651 003684 branch le_receive_packet 
+:      003687 le_receive_slave:
+0x2652 003688 bpatchx patch24_3 ,mem_patch24 
+0x2653 003689 call le_dec_init 
+0x2654 003690 enable swfine 
+0x2655 003691 fetch 2 ,mem_le_receive_window 
+0x2656 003692 fetcht 4 ,mem_le_transmit_window 
+0x2657 003693 iadd temp ,timeup 
+:      003694 le_receive_packet:
+0x2658 003695 call le_rx_setfreq 
+:      003696 le_receive_rxon:
+0x2659 003697 bpatchx patch24_4 ,mem_patch24 
+0x265a 003698 call le_prep 
+0x265b 003699 bmark0 mark_ble_lr ,le_receive_nolr 
+0x265c 003700 pulse dewhiten_code_calc 
+0x265d 003701 nop 30 
+0x265e 003702 call le_prep 
+0x265f 003703 lshift3 timeup ,timeup 
+:      003704 le_receive_nolr:
+0x2660 003705 disable match 
+0x2661 003706 enable decode_fec0 
+0x2662 003707 enable is_rx 
+0x2663 003708 disable is_tx 
+0x2664 003709 copy timeup ,stop_watch 
+0x2665 003710 correlate null ,timeout 
+0x2666 003711 branch le_receive_on_attempt ,attempt 
+0x2667 003712 copy clke ,temp 
+0x2668 003713 storet 6 ,mem_sync_clke 
+:      003714 le_receive_on_attempt:
+0x2669 003715 nbranch le_unsync_end ,sync 
+0x266a 003716 enable swfine 
+0x266b 003717 fetch 1 ,mem_le_tx_ifs_defference 
+0x266c 003718 arg param_20ms_init ,temp 
+0x266d 003719 iadd temp ,temp 
+0x266e 003720 fetch 1 ,mem_system_clk 
+0x266f 003721 imul32 temp ,stop_watch 
+0x2670 003722 call rf_debug_rx_sync_line 
+0x2671 003723 branch le_receive_skip ,attempt 
+0x2672 003724 call calc_clke_all_modem 
+0x2673 003725 fetch 1 ,mem_le_state 
+0x2674 003726 bbit0 lestate_got_first_packet ,le_receive_skip 
+0x2675 003727 fetcht 6 ,mem_sync_clke 
+0x2676 003728 call lpm_adjust_clk ,wake 
+:      003729 le_receive_skip:
+0x2677 003730 call save_rssi 
+0x2678 003731 enable enable_white 
+0x2679 003732 enable enable_crc 
+0x267a 003733 parse demod ,bucket ,8 
+0x267b 003734 rshift3 pwindow ,pdata 
+0x267c 003735 store 1 ,mem_le_rxbuf_data_header 
+0x267d 003736 parse demod ,bucket ,8 
+0x267e 003737 rshift3 pwindow ,pdata 
+0x267f 003738 store 1 ,mem_le_rxbuf_data_length 
+0x2680 003739 copy pdata ,loopcnt 
+0x2681 003740 branch le_rx_nopayload ,zero 
+0x2682 003742 bmark1 mark_ble_encryption ,le_rx_dec 
+:      003744 le_rx_loop:
+0x2683 003745 parse demod ,bucket ,8 
+0x2684 003746 rshift3 pwindow ,pdata 
+0x2685 003747 istore 1 ,contw 
+0x2686 003748 loop le_rx_loop 
+0x2687 003749 branch le_rx_nopayload 
+:      003751 le_rx_dec:
+0x2688 003752 copy contw ,regb 
+0x2689 003753 bpatchx patch24_5 ,mem_patch24 
+0x268a 003754 call le_check_retransmit 
+0x268b 003756 fetchr rega ,1 ,mem_le_rxbuf_data_length 
+0x268c 003757 increase -4 ,rega 
+0x268d 003758 nbranch le_mic_error ,positive 
+0x268e 003760 call le_dec_start 
+0x268f 003761 copy regb ,contw 
+0x2690 003762 arg 0 ,temp 
+0x2691 003763 fetchr loopcnt ,1 ,mem_le_rxbuf_data_length 
+0x2692 003764 increase -4 ,loopcnt 
+0x2693 003765 branch le_rx_dec_loop_end ,zero 
+:      003766 le_rx_dec_loop:
+0x2694 003768 parse demod ,bucket ,8 
+0x2695 003769 rshift3 pwindow ,pdata 
+0x2696 003770 istore 1 ,contw 
+0x2697 003771 increase 1 ,temp 
+0x2698 003772 and temp ,0xf ,null 
+0x2699 003773 call le_dec ,zero 
+0x269a 003774 loop le_rx_dec_loop 
+:      003775 le_rx_dec_loop_end:
+0x269b 003776 call le_dec_end 
+0x269c 003777 copy regb ,contw 
+:      003780 le_rx_nopayload:
+0x269d 003781 bpatchx patch24_6 ,mem_patch24 
+0x269e 003782 parse demod ,bucket ,24 
+0x269f 003783 rshift32 pdata ,pdata 
+0x26a0 003784 rshift16 pdata ,pdata 
+0x26a1 003785 istore 3 ,contw 
+0x26a2 003786 enable swfine 
+0x26a3 003787 call le_set_until_tx_timer 
+0x26a4 003788 branch le_crc_fail ,crc_failed 
+0x26a5 003789 bmark0 mark_ble_encryption ,le_rx_match 
+0x26a6 003790 fetch 1 ,mem_le_rxbuf_data_length 
+0x26a7 003791 branch le_rx_match ,blank 
+0x26a8 003792 increase -4 ,pdata 
+0x26a9 003793 store 1 ,mem_le_rxbuf_data_length 
+0x26aa 003794 call wait_ccm_done 
+0x26ab 003795 fetch 1 ,core_misc_status 
+0x26ac 003796 bbit0 7 ,le_mic_error 
+0x26ad 003797 force regidx_result ,regext_index 
+0x26ae 003798 storer regext ,4 ,mem_le_peer_mic 
+:      003799 le_rx_match:
+0x26af 003800 call rf_debug_rx_crc_line 
+0x26b0 003801 enable match 
+0x26b1 003802 set0 mark_ble_crc_fail ,mark 
+:      003803 le_crc_fail_tx:
+0x26b2 003804 bpatchx patch24_7 ,mem_patch24 
+0x26b3 003805 call ccm_ctrl_clr 
+0x26b4 003806 fetch 1 ,mem_le_rx_phy 
+0x26b5 003807 nsetflag ble_coded_info ,bit_le_coded_phy_s8 ,pdata 
+0x26b6 003808 store 1 ,mem_le_rx_phy 
+0x26b7 003809 call le_match_set_sync_on 
+0x26b8 003810 branch le_match_set_txfreq 
+:      003812 le_match_set_sync_on:
+0x26b9 003813 disable decode_fec0 
+0x26ba 003814 branch set_sync_on 
+:      003816 le_match_set_txfreq:
+0x26bb 003817 bpatchx patch25_0 ,mem_patch25 
+0x26bc 003818 fetcht 1 ,mem_last_freq 
+0x26bd 003819 branch set_freq_tx_int 
+:      003822 le_dec_init:
+0x26be 003823 rtnmark0 mark_ble_encryption 
+0x26bf 003824 call load_sk 
+0x26c0 003825 force regidx_result ,regext_index 
+0x26c1 003826 call aes_clear 
+0x26c2 003827 branch aes_clear_data 
+:      003830 le_dec_start:
+0x26c3 003831 bpatchx patch25_1 ,mem_patch25 
+0x26c4 003832 jam 0 ,core_ccm_aad0 
+0x26c5 003833 jam 1 ,core_ccm_aad1 
+0x26c6 003834 fetch 1 ,mem_le_rxbuf_data_header 
+0x26c7 003835 and_into 0x3 ,pdata 
+0x26c8 003836 store 1 ,core_ccm_aad2 
+0x26c9 003838 setarg mem_le_rxbuf_data_payload 
+0x26ca 003839 store 2 ,core_ccm_input_playload_addr 
+0x26cb 003840 store 2 ,core_ccm_output_playload_addr 
+0x26cc 003842 fetchr rega ,1 ,mem_le_rxbuf_data_length 
+0x26cd 003843 increase -4 ,rega 
+0x26ce 003845 fetcht 5 ,mem_ccm_pcnt_rx 
+0x26cf 003846 isolate1 mark_old_packet ,mark 
+0x26d0 003847 call le_pcnt_rx_sub1 ,true 
+0x26d1 003848 call ccm_b0 
+0x26d2 003849 setarg 0 
+0x26d3 003850 store 2 ,core_ccm_inptr 
+0x26d4 003851 jam 6 ,core_ccm_ctrl 
+0x26d5 003852 jam 7 ,core_ccm_ctrl 
+0x26d6 003853 rtn 
+:      003855 le_pcnt_rx_sub1:
+0x26d7 003856 sub temp ,0 ,null 
+0x26d8 003857 branch le_pcnt_rx_sub1_0 ,zero 
+0x26d9 003858 increase -1 ,temp 
+0x26da 003859 set1 le_ccm_directionbit ,temp 
+0x26db 003860 rtn 
+:      003862 le_pcnt_rx_sub1_0:
+0x26dc 003863 setarg 0xffffff 
+0x26dd 003864 lshift16 pdata ,pdata 
+0x26de 003865 arg 0xffff ,temp 
+0x26df 003866 ior temp ,temp 
+0x26e0 003867 rtn 
+:      003869 le_dec:
+0x26e1 003870 copy contw ,regb 
+0x26e2 003871 fetch 1 ,mem_le_rxbuf_data_length 
+0x26e3 003872 increase -4 ,pdata 
+0x26e4 003873 isub temp ,null 
+0x26e5 003874 rtn zero 
+0x26e6 003875 storet 2 ,core_ccm_inptr 
+0x26e7 003876 copy regb ,contw 
+0x26e8 003877 rtn 
+:      003879 le_dec_end:
+0x26e9 003880 parse demod ,bucket ,32 
+0x26ea 003881 rshift32 pdata ,pdata 
+0x26eb 003882 rshift8 pdata ,pdata 
+0x26ec 003883 istore 4 ,contw 
+0x26ed 003884 copy contw ,regb 
+0x26ee 003886 force regidx_data ,regext_index 
+0x26ef 003887 copy pdata ,regext 
+0x26f0 003888 storet 2 ,core_ccm_inptr 
+0x26f1 003889 rtn 
+:      003891 le_mic_error:
+0x26f2 003892 branch le_end_of_packet 
+:      003894 le_retransmit_end_of_packet:
+0x26f3 003895 call le_set_until_tx_timer 
+0x26f4 003896 call end_of_packet 
+0x26f5 003897 branch le_rx_match 
+:      003899 le_crc_fail:
+0x26f6 003900 call rf_debug_rx_crc_fail_line 
+0x26f7 003901 bmark1 mark_ble_crc_fail ,le_crc_fail_consecutive 
+0x26f8 003902 set1 mark_ble_crc_fail ,mark 
+0x26f9 003903 branch le_crc_fail_tx 
+:      003905 le_unsync_end:
+:      003906 le_crc_fail_consecutive:
+0x26fa 003907 set0 mark_ble_crc_fail ,mark 
+0x26fb 003908 branch le_end_of_packet 
+:      003910 le_end_of_packet:
+0x26fc 003911 bpatchx patch25_2 ,mem_patch25 
+0x26fd 003912 call ccm_ctrl_clr 
+0x26fe 003913 branch end_of_packet 
+:      003915 calc_clke_all_modem:
+0x26ff 003916 bmark1 mark_ble_lr ,calc_clke_modem_coded 
+0x2700 003917 bmark1 mark_ble_2m ,calc_clke_modem_2m 
+0x2701 003918 fetch 2 ,mem_param_clke_cal_le_1m 
+0x2702 003919 copy pdata ,clke_rt 
+0x2703 003920 copy bt_clk ,clke_bt 
+0x2704 003921 rtn 
+:      003924 calc_clke_modem_coded:
+0x2705 003925 fetch 2 ,mem_param_clke_cal_le_coded 
+0x2706 003926 copy pdata ,clke_rt 
+0x2707 003927 add bt_clk ,1 ,clke_bt 
+0x2708 003928 rtn 
+:      003930 calc_clke_modem_2m:
+0x2709 003931 fetch 2 ,mem_param_clke_cal_le_2m 
+0x270a 003932 copy pdata ,clke_rt 
+0x270b 003933 copy bt_clk ,clke_bt 
+0x270c 003934 rtn 
+:      003937 le_set_until_tx_timer:
+0x270d 003938 fetch 1 ,mem_le_rxbuf_data_length 
+0x270e 003939 add pdata ,5 ,temp 
+0x270f 003940 lshift3 temp ,temp 
+0x2710 003941 fetch 1 ,mem_le_rx_phy 
+0x2711 003942 bmark1 mark_ble_lr ,le_set_until_tx_timer_rx_lr 
+0x2712 003943 bbit1 bit_le_1m_phy ,le_set_until_tx_timer_rx_1m 
+0x2713 003944 bbit1 bit_le_2m_phy ,le_set_until_tx_timer_rx_2m 
+:      003945 le_set_until_tx_timer_rx_lr:
+0x2714 003946 branch le_set_until_tx_timer_rx_coded_s2 ,ble_coded_info 
+0x2715 003947 branch le_set_until_tx_timer_rx_coded_s8 
+:      003949 le_set_until_tx_timer_rx_1m:
+0x2716 003950 branch le_calc_stop_watch 
+:      003952 le_set_until_tx_timer_rx_2m:
+0x2717 003953 rshift temp ,temp 
+0x2718 003954 branch le_calc_stop_watch 
+:      003956 le_set_until_tx_timer_rx_coded_s2:
+0x2719 003957 add temp ,3 ,temp 
+0x271a 003958 lshift temp ,temp 
+0x271b 003959 branch le_set_until_tx_timer_rx_coded 
+:      003961 le_set_until_tx_timer_rx_coded_s8:
+0x271c 003962 add temp ,3 ,temp 
+0x271d 003963 lshift3 temp ,temp 
+:      003964 le_set_until_tx_timer_rx_coded:
+0x271e 003965 setarg param_coded_c1_term1_time_40us 
+0x271f 003966 iadd temp ,temp 
+0x2720 003967 branch le_calc_stop_watch 
+:      003969 le_calc_stop_watch:
+0x2721 003970 fetch 1 ,mem_system_clk 
+0x2722 003971 imul32 temp ,temp 
+0x2723 003972 arg param_20ms_init ,rega 
+0x2724 003973 imul32 rega ,pdata 
+0x2725 003974 isub temp ,temp 
+0x2726 003975 copy stop_watch ,pdata 
+0x2727 003976 isub temp ,stop_watch 
+0x2728 003977 rtn 
+:      003979 le_transmit_receive_sifs_without_change_mode:
+0x2729 003980 call le_transmit 
+0x272a 003981 fetcht 1 ,mem_last_freq 
+0x272b 003982 call set_freq_rx 
+0x272c 003983 call rf_rx_enable 
+0x272d 003984 enable swfine 
+0x272e 003985 arg 5500 ,timeup 
+0x272f 003986 branch le_receive_rxon 
+:      003989 le_transmit_receive_sifs:
+0x2730 003990 bpatchx patch25_3 ,mem_patch25 
+0x2731 003991 fetch 1 ,mem_le_tx_phy 
+0x2732 003992 call le_enable_phy_by_pdata 
+0x2733 003993 call le_transmit 
+:      003994 le_transmit_receive_sifs_notx:
+0x2734 003995 fetch 1 ,mem_le_rx_phy 
+0x2735 003996 call le_enable_phy_by_pdata 
+0x2736 003998 fetcht 1 ,mem_last_freq 
+0x2737 003999 call set_freq_rx 
+0x2738 004000 call rf_rx_enable 
+0x2739 004001 enable swfine 
+0x273a 004002 arg 5500 ,timeup 
+0x273b 004003 bmark0 mark_ble_lr ,le_receive_rxon 
+0x273c 004004 arg 8500 ,timeup 
+0x273d 004005 branch le_receive_rxon 
+:      004007 le_transmit_norx:
+0x273e 004008 bpatchx patch25_4 ,mem_patch25 
+0x273f 004009 call le_transmit 
+0x2740 004010 branch end_of_packet 
+:      004012 le_transmit:
+0x2741 004013 bpatchx patch25_5 ,mem_patch25 
+0x2742 004014 call le_prep 
+0x2743 004015 call le_tx_setfreq 
+0x2744 004016 call rf_debug_tx_on_line 
+0x2745 004017 set1 txgfsk ,radio_ctrl 
+0x2746 004018 enable encode_fec0 
+0x2747 004019 enable is_tx 
+0x2748 004020 disable is_rx 
+0x2749 004021 call le_wait_tx 
+0x274a 004022 disable lr_s2en 
+0x274b 004023 bmark1 mark_ble_lr ,le_transmit_lr 
+0x274c 004024 bmark1 mark_ble_2m ,le_transmit_2m 
+0x274d 004025 rshift16 access ,pdata 
+0x274e 004026 rshift8 pdata ,pdata 
+0x274f 004027 rshift4 pdata ,pdata 
+0x2750 004028 inject mod ,40 
+:      004029 le_transmit_packet:
+0x2751 004030 enable enable_white 
+0x2752 004031 enable enable_crc 
+0x2753 004032 bpatchx patch25_6 ,mem_patch25 
+0x2754 004033 fetch 1 ,mem_le_txheader 
+0x2755 004034 inject mod ,8 
+0x2756 004035 ifetch 1 ,contr 
+0x2757 004036 copy pdata ,loopcnt 
+0x2758 004037 inject mod ,8 
+0x2759 004038 sub loopcnt ,0 ,null 
+0x275a 004039 branch le_tr_nopayload ,zero 
+0x275b 004041 fetch 1 ,core_ccm_ctrl 
+0x275c 004042 branch le_transmit_packet_not_enc ,blank 
+0x275d 004043 bmark1 mark_ble_encryption ,le_transmit_packet_enc 
+:      004044 le_transmit_packet_not_enc:
+0x275e 004045 arg mem_le_txpayload ,contr 
+:      004046 le_tr_loop:
+0x275f 004047 ifetch 1 ,contr 
+0x2760 004048 inject mod ,8 
+0x2761 004049 loop le_tr_loop 
+:      004051 le_tr_nopayload:
+0x2762 004052 enable enable_parity 
+0x2763 004053 inject mod ,24 
+0x2764 004054 disable enable_parity 
+0x2765 004055 bmark0 mark_ble_lr ,le_transmit_skip 
+0x2766 004056 disable enable_white 
+0x2767 004057 setarg 0 
+0x2768 004058 inject mod ,3 
+:      004059 le_transmit_skip:
+0x2769 004060 until null ,tx_clear 
+0x276a 004061 nop 100 
+0x276b 004062 bpatchx patch25_7 ,mem_patch25 
+0x276c 004063 disable encode_fec0 
+0x276d 004064 disable encode_fec3 
+0x276e 004065 call set_sync_on 
+0x276f 004066 call rf_debug_tx_off_line 
+:      004067 le_check_start_pause_enc:
+0x2770 004068 fetch 1 ,mem_le_txheader 
+0x2771 004069 and pdata ,llid_le_ll ,pdata 
+0x2772 004070 rtnne llid_le_ll 
+0x2773 004071 fetch 1 ,mem_le_enc_state 
+0x2774 004072 beq flag_le_enc_pause ,le_clear_enc 
+0x2775 004073 rtnne flag_le_send_start_enc_req 
+0x2776 004074 fetch 1 ,mem_le_txpayload 
+0x2777 004075 beq ll_start_enc_req ,le_set_enc 
+0x2778 004076 rtn 
+:      004079 le_transmit_packet_enc:
+0x2779 004080 increase -4 ,loopcnt 
+0x277a 004081 copy loopcnt ,temp 
+0x277b 004082 call ccm_wait_enc 
+0x277c 004083 arg mem_le_txpayload ,contr 
+:      004084 le_transmit_packet_enc_loop:
+0x277d 004085 ifetch 1 ,contr 
+0x277e 004086 inject mod ,8 
+0x277f 004087 loop le_transmit_packet_enc_loop 
+0x2780 004088 call ccm_check_enc_done 
+0x2781 004089 copy regext ,pdata 
+0x2782 004090 inject mod ,32 
+0x2783 004091 branch le_tr_nopayload 
+:      004093 le_transmit_lr:
+0x2784 004094 arg 10 ,loopcnt 
+:      004095 le_transmit_lr_preamble_loop:
+0x2785 004096 setarg 0x3c 
+0x2786 004097 inject mod ,8 
+0x2787 004098 loop le_transmit_lr_preamble_loop 
+0x2788 004099 disable encode_fec0 
+0x2789 004100 enable encode_fec3 
+0x278a 004101 rshift16 access ,pdata 
+0x278b 004102 rshift16 pdata ,pdata 
+0x278c 004103 rshift4 pdata ,pdata 
+0x278d 004104 inject mod ,32 
+0x278e 004105 bmark1 mark_ble_lr_s8 ,le_transmit_lr_s8 
+:      004106 le_transmit_lr_s2:
+0x278f 004107 setarg 1 
+0x2790 004108 inject mod ,5 
+0x2791 004109 enable lr_s2en 
+0x2792 004110 branch le_transmit_packet 
+:      004112 le_transmit_lr_s8:
+0x2793 004113 setarg 0 
+0x2794 004114 inject mod ,5 
+0x2795 004115 branch le_transmit_packet 
+:      004117 le_transmit_2m:
+0x2796 004118 fetch 1 ,mem_system_clk 
+0x2797 004119 fetcht 1 ,mem_le_tx2m_delay 
+0x2798 004120 iadd temp ,pdata 
+0x2799 004121 call sleep 
+0x279a 004122 rshift16 access ,pdata 
+0x279b 004123 rshift8 pdata ,pdata 
+0x279c 004124 rshift4 pdata ,temp 
+0x279d 004125 copy temp ,pdata 
+0x279e 004126 inject mod ,8 
+0x279f 004127 copy temp ,pdata 
+0x27a0 004128 inject mod ,40 
+0x27a1 004129 branch le_transmit_packet 
+:      004132 le_update_param:
+0x27a2 004133 arg le_update_param_ahead1_cb ,regc 
+0x27a3 004134 arg le_update_param_cb ,regb 
+0x27a4 004135 arg lestate_update_param ,queue 
+0x27a5 004136 branch le_check_update_flag 
+:      004138 le_update_param_ahead1_cb:
+0x27a6 004139 add rega ,coffset_sniff_anchor ,contr 
+0x27a7 004140 ifetcht 4 ,contr 
+0x27a8 004141 add rega ,coffest_le_new_transmitwindowsize ,contr 
+0x27a9 004142 ifetch 1 ,contr 
+0x27aa 004143 add rega ,coffset_le_window_size ,contw 
+0x27ab 004144 istore 1 ,contw 
+0x27ac 004145 ifetch 2 ,contr 
+0x27ad 004146 lshift2 pdata ,pdata 
+0x27ae 004147 iadd temp ,timeup 
+0x27af 004148 add rega ,coffset_sniff_anchor ,contw 
+0x27b0 004149 deposit timeup 
+0x27b1 004150 istore 4 ,contw 
+0x27b2 004151 ifetch 2 ,contr 
+0x27b3 004152 lshift2 pdata ,pdata 
+0x27b4 004153 add rega ,coffset_tsniff ,contw 
+0x27b5 004154 istore 2 ,contw 
+0x27b6 004155 ifetch 2 ,contr 
+0x27b7 004156 add rega ,coffset_le_slave_latency ,contw 
+0x27b8 004157 istore 2 ,contw 
+0x27b9 004158 ifetch 2 ,contr 
+0x27ba 004159 store 2 ,mem_le_init_superto 
+0x27bb 004160 branch le_receive_window_size 
+:      004162 le_update_param_cb:
+0x27bc 004163 ifetch 1 ,rega 
+0x27bd 004164 set0 lestate_got_first_packet ,pdata 
+0x27be 004165 istore 1 ,rega 
+0x27bf 004166 storer rega ,2 ,mem_rega 
+0x27c0 004167 jam bt_evt_le_parse_conn_param_accepted ,mem_fifo_temp 
+0x27c1 004168 call ui_ipc_send_event 
+0x27c2 004169 fetchr rega ,2 ,mem_rega 
+0x27c3 004170 rtn 
+:      004172 le_update_channel_map:
+0x27c4 004173 arg 0 ,regc 
+0x27c5 004174 arg le_update_channel_map_cb ,regb 
+0x27c6 004175 arg lestate_update_map ,queue 
+0x27c7 004176 branch le_check_update_flag 
+:      004178 le_update_channel_map_cb:
+0x27c8 004179 add rega ,coffset_le_new_map ,contr 
+0x27c9 004180 ifetch 5 ,contr 
+0x27ca 004181 add rega ,coffset_le_channel_map ,contw 
+0x27cb 004182 istore 5 ,contw 
+0x27cc 004183 branch le_calc_channel_map 
+:      004186 le_update_phy:
+0x27cd 004187 arg 0 ,regc 
+0x27ce 004188 arg le_update_phy_cb ,regb 
+0x27cf 004189 arg lestate_update_phy ,queue 
+0x27d0 004190 branch le_check_update_flag 
+:      004192 le_update_phy_cb:
+0x27d1 004193 add rega ,coffset_le_new_m2s_phy ,contr 
+0x27d2 004194 ifetch 1 ,contr 
+0x27d3 004195 call le_update_phy_cb_m2s 
+0x27d4 004196 istore 1 ,contw 
+0x27d5 004197 add rega ,coffset_le_new_s2m_phy ,contr 
+0x27d6 004198 ifetch 1 ,contr 
+0x27d7 004199 call le_update_phy_cb_s2m 
+0x27d8 004200 istore 1 ,contw 
+0x27d9 004201 storer rega ,2 ,mem_rega 
+0x27da 004202 jam bt_evt_le_update_phy ,mem_fifo_temp 
+0x27db 004203 call ui_ipc_send_event 
+0x27dc 004204 fetchr rega ,2 ,mem_rega 
+0x27dd 004205 rtn 
+:      004207 le_update_phy_cb_m2s:
+0x27de 004208 call le_update_phy_cb_m2s_no_change ,blank 
+0x27df 004209 add rega ,coffset_le_rx_phy ,contw 
+0x27e0 004210 nrtn master 
+0x27e1 004211 fetcht 1 ,mem_le_tx_phys 
+0x27e2 004212 isolate1 bit_le_coded_phy_s8 ,temp 
+0x27e3 004213 setflag true ,bit_le_coded_phy_s8 ,pdata 
+0x27e4 004214 add rega ,coffset_le_tx_phy ,contw 
+0x27e5 004215 rtn 
+:      004217 le_update_phy_cb_m2s_no_change:
+0x27e6 004218 add rega ,coffset_le_rx_phy ,contr 
+0x27e7 004219 ifetch 1 ,contr 
+0x27e8 004220 nrtn master 
+0x27e9 004221 add rega ,coffset_le_tx_phy ,contr 
+0x27ea 004222 ifetch 1 ,contr 
+0x27eb 004223 rtn 
+:      004225 le_update_phy_cb_s2m:
+0x27ec 004226 call le_update_phy_cb_s2m_no_change ,blank 
+0x27ed 004227 fetcht 1 ,mem_le_tx_phys 
+0x27ee 004228 isolate1 bit_le_coded_phy_s8 ,temp 
+0x27ef 004229 setflag true ,bit_le_coded_phy_s8 ,pdata 
+0x27f0 004230 add rega ,coffset_le_tx_phy ,contw 
+0x27f1 004231 nrtn master 
+0x27f2 004232 set0 bit_le_coded_phy_s8 ,pdata 
+0x27f3 004233 add rega ,coffset_le_rx_phy ,contw 
+0x27f4 004234 rtn 
+:      004236 le_update_phy_cb_s2m_no_change:
+0x27f5 004237 add rega ,coffset_le_tx_phy ,contr 
+0x27f6 004238 ifetch 1 ,contr 
+0x27f7 004239 nrtn master 
+0x27f8 004240 add rega ,coffset_le_rx_phy ,contr 
+0x27f9 004241 ifetch 1 ,contr 
+0x27fa 004242 rtn 
+:      004247 le_check_update_flag:
+0x27fb 004248 bpatchx patch26_0 ,mem_patch26 
+0x27fc 004249 ifetch 1 ,rega 
+0x27fd 004250 qisolate0 pdata 
+0x27fe 004251 rtn true 
+0x27ff 004252 add rega ,coffset_le_event_cnt ,contr 
+0x2800 004253 ifetcht 2 ,contr 
+0x2801 004254 add rega ,coffset_le_instant ,contr 
+0x2802 004255 ifetch 2 ,contr 
+0x2803 004257 isub temp ,pdata 
+0x2804 004258 branch le_update ,zero 
+0x2805 004259 nbranch le_check_update_small ,positive 
+0x2806 004260 sub pdata ,1 ,null 
+0x2807 004261 branch le_update_ahead1 ,zero 
+0x2808 004262 rtn 
+:      004264 le_update_ahead1:
+0x2809 004265 copy regc ,pdata 
+0x280a 004266 branch callback_func 
+:      004268 le_update:
+0x280b 004269 ifetch 1 ,rega 
+0x280c 004270 qset0 pdata 
+0x280d 004271 istore 1 ,rega 
+0x280e 004272 copy regb ,pdata 
+0x280f 004273 branch callback_func 
+:      004275 le_check_update_small:
+0x2810 004276 add rega ,coffset_le_event_cnt ,contr 
+0x2811 004277 ifetch 2 ,contr 
+0x2812 004278 add rega ,coffset_le_instant ,contr 
+0x2813 004279 ifetch 2 ,contr 
+0x2814 004280 isub temp ,pdata 
+0x2815 004281 arg 0xffff ,temp 
+0x2816 004282 isub temp ,null 
+0x2817 004283 branch le_update ,zero 
+0x2818 004284 arg 0xf000 ,temp 
+0x2819 004285 isub temp ,null 
+0x281a 004286 nbranch le_update ,positive 
+0x281b 004287 rtn 
+:      004290 le_check_retransmit:
+0x281c 004291 fetcht 1 ,mem_le_arq 
+0x281d 004292 fetch 1 ,mem_le_rxbuf_data_header 
+0x281e 004295 rshift pdata ,pdata 
+0x281f 004296 ixor temp ,pdata 
+0x2820 004297 isolate1 nesn ,pdata 
+0x2821 004298 setflag true ,mark_old_packet ,mark 
+0x2822 004299 rtn 
+:      004302 le_acknowledge:
+0x2823 004303 bpatchx patch26_1 ,mem_patch26 
+0x2824 004304 call le_supervision_flush 
+0x2825 004305 rtnmark1 mark_ble_crc_fail 
+0x2826 004306 call le_check_wak 
+0x2827 004307 fetch 1 ,mem_le_rxbuf_data_header 
+0x2828 004308 isolate1 md ,pdata 
+0x2829 004309 setflag true ,mark_ble_rx_md ,mark 
+0x282a 004310 rshift pdata ,pdata 
+0x282b 004311 ixor temp ,pdata 
+0x282c 004312 isolate1 nesn ,pdata 
+0x282d 004313 setflag true ,mark_old_packet ,mark 
+0x282e 004314 rtnmark1 mark_old_packet 
+0x282f 004315 fetch 1 ,mem_le_rxbuf_data_length 
+0x2830 004316 branch le_ack_unenc ,blank 
+0x2831 004317 fetch 1 ,mem_le_state 
+0x2832 004318 bbit0 lestate_encryption ,le_ack_unenc 
+0x2833 004319 fetcht 4 ,mem_le_peer_mic 
+0x2834 004320 fetch 4 ,mem_ccm_last_mic 
+0x2835 004321 isub temp ,null 
+0x2836 004322 branch assert ,zero 
+0x2837 004323 storet 4 ,mem_ccm_last_mic 
+0x2838 004324 fetch 5 ,mem_ccm_pcnt_rx 
+0x2839 004325 increase 1 ,pdata 
+0x283a 004326 set1 le_ccm_directionbit ,pdata 
+0x283b 004327 store 5 ,mem_ccm_pcnt_rx 
+:      004329 le_ack_unenc:
+0x283c 004330 fetcht 1 ,mem_le_arq 
+0x283d 004331 setflip nesn ,temp 
+0x283e 004332 storet 1 ,mem_le_arq 
+0x283f 004333 fetch 1 ,mem_le_configuration 
+0x2840 004334 rtnbit0 bit_ble_deal_bb_packet 
+0x2841 004335 bpatchx patch26_2 ,mem_patch26 
+0x2842 004336 fetch 1 ,mem_le_rxbuf_data_length 
+0x2843 004337 rtn blank 
+0x2844 004338 fetch 1 ,mem_le_rxbuf_data_header 
+0x2845 004339 compare llid_continue ,pdata ,3 
+0x2846 004340 branch le_parse_writing_attribute_continue ,true 
+0x2847 004341 compare llid_start ,pdata ,3 
+0x2848 004342 branch le_parse_writing_attribute_start ,true 
+0x2849 004343 rtn 
+:      004346 le_check_wak:
+0x284a 004347 bpatchx patch26_3 ,mem_patch26 
+0x284b 004348 fetcht 1 ,mem_le_arq 
+0x284c 004349 isolate0 wak ,temp 
+0x284d 004350 rtn true 
+0x284e 004351 fetch 1 ,mem_le_rxbuf_data_header 
+0x284f 004352 lshift pdata ,pdata 
+0x2850 004353 ixor temp ,pdata 
+0x2851 004354 rtnbit0 sn 
+0x2852 004355 set0 wak ,temp 
+0x2853 004356 setflip sn ,temp 
+0x2854 004357 storet 1 ,mem_le_arq 
+0x2855 004358 compare 3 ,temp ,3 
+0x2856 004360 rtn 
+:      004363 le_set_enc:
+0x2857 004364 fetch 1 ,mem_le_state 
+0x2858 004365 set1 lestate_encryption ,pdata 
+0x2859 004366 store 1 ,mem_le_state 
+0x285a 004367 set1 mark_ble_encryption ,mark 
+0x285b 004368 rtn 
+:      004370 le_clear_enc:
+0x285c 004371 bpatchx patch26_4 ,mem_patch26 
+0x285d 004372 jam flag_le_enc_null ,mem_le_enc_state 
+0x285e 004373 arg 0 ,pdata 
+0x285f 004374 store 4 ,mem_ccm_last_mic 
+0x2860 004375 store 5 ,mem_ccm_pcnt_tx 
+0x2861 004376 set1 le_ccm_directionbit ,pdata 
+0x2862 004377 store 5 ,mem_ccm_pcnt_rx 
+0x2863 004378 fetch 1 ,mem_le_state 
+0x2864 004379 set0 lestate_encryption ,pdata 
+0x2865 004380 store 1 ,mem_le_state 
+0x2866 004381 set0 mark_ble_encryption ,mark 
+0x2867 004382 rtn 
+:      004387 le_scan_check_sender_addr_type:
+0x2868 004388 arg 1 ,rega 
+0x2869 004389 fetch 1 ,mem_le_rxbuf_adv_connect_ind_header 
+0x286a 004390 rtnbit1 le_sender_addr_bit 
+0x286b 004391 arg 0 ,rega 
+0x286c 004392 rtn 
+:      004395 le_get_master_rx_max:
+0x286d 004396 copy contr ,contw 
+0x286e 004397 fetcht 2 ,mem_remote_rx_max_octets 
+0x286f 004398 copy contw ,contr 
+0x2870 004399 rtn 
+:      004402 le_prepare_tx:
+0x2871 004403 bpatchx patch26_5 ,mem_patch26 
+0x2872 004404 fetch 1 ,mem_le_arq 
+0x2873 004405 rtnbit1 wak 
+0x2874 004406 call le_check_tx_md 
+0x2875 004407 call le_fifo_get_first_tx_ptr 
+0x2876 004408 branch le_send_empty ,blank 
+0x2877 004409 ifetch 2 ,contr 
+0x2878 004410 ifetcht 2 ,contr 
+0x2879 004411 copy temp ,rega 
+0x287a 004412 isub rega ,pdata 
+0x287b 004413 call le_get_master_rx_max 
+0x287c 004414 call not_greater_than 
+0x287d 004415 copy pdata ,temp 
+0x287e 004416 ifetchr type ,1 ,contr 
+0x287f 004417 copy rega ,pdata 
+0x2880 004418 iadd contr ,pdata 
+0x2881 004419 store 2 ,mem_contr 
+0x2882 004420 call le_update_tx_type 
+0x2883 004421 call le_send_packet 
+0x2884 004423 call le_fifo_get_first_tx_ptr 
+0x2885 004424 ifetch 2 ,contr 
+0x2886 004425 copy pdata ,rega 
+0x2887 004426 copy contr ,regc 
+0x2888 004427 ifetcht 2 ,contr 
+0x2889 004428 copy temp ,regb 
+0x288a 004429 isub regb ,pdata 
+0x288b 004430 call le_get_master_rx_max 
+0x288c 004431 call not_greater_than 
+0x288d 004432 iadd regb ,pdata 
+0x288e 004433 istore 2 ,regc 
+0x288f 004434 isub rega ,null 
+0x2890 004435 nrtn zero 
+0x2891 004436 branch le_fifo_release_first_node 
+:      004439 le_check_tx_md:
+0x2892 004440 call le_check_continue 
+0x2893 004441 rtnmark1 mark_ble_tx_md 
+0x2894 004442 fetch 1 ,mem_le_configuration 
+0x2895 004443 bbit0 bit_ble_transmit_packet_by_md ,le_clear_md 
+0x2896 004444 call le_fifo_get_second_tx_ptr 
+0x2897 004445 branch le_clear_md ,blank 
+0x2898 004446 branch le_set_md 
+:      004449 le_check_continue:
+0x2899 004450 call le_fifo_get_first_tx_ptr 
+0x289a 004451 branch le_clear_md ,blank 
+0x289b 004452 ifetch 2 ,contr 
+0x289c 004453 ifetcht 2 ,contr 
+0x289d 004454 isub temp ,rega 
+0x289e 004455 call le_get_master_rx_max 
+0x289f 004456 copy temp ,pdata 
+0x28a0 004457 isub rega ,null 
+0x28a1 004458 branch le_clear_md ,positive 
+:      004459 le_set_md:
+0x28a2 004460 set1 mark_ble_tx_md ,mark 
+0x28a3 004461 rtn 
+:      004463 le_clear_md:
+0x28a4 004464 set0 mark_ble_tx_md ,mark 
+0x28a5 004465 rtn 
+:      004467 le_update_tx_type:
+0x28a6 004468 copy rega ,pdata 
+0x28a7 004469 rtn blank 
+0x28a8 004470 arg llid_continue ,type 
+0x28a9 004471 rtn 
+:      004474 le_att_check_notification_enable:
+0x28aa 004475 bpatchx patch26_6 ,mem_patch26 
+0x28ab 004476 increase 1 ,temp 
+0x28ac 004477 call le_att_get_handle_ptr 
+0x28ad 004478 increase -2 ,contr 
+0x28ae 004479 ifetch 2 ,contr 
+0x28af 004480 arg client_charactertic_configuration ,temp 
+0x28b0 004481 isub temp ,null 
+0x28b1 004482 nrtn zero 
+0x28b2 004483 increase 1 ,contr 
+0x28b3 004484 copy contr ,rega 
+0x28b4 004485 ifetch 1 ,contr 
+0x28b5 004486 rtn 
+:      004489 le_send_empty:
+0x28b6 004490 force 0 ,temp 
+0x28b7 004491 force 1 ,type 
+:      004493 le_send_packet:
+0x28b8 004494 bpatchx patch26_7 ,mem_patch26 
+0x28b9 004495 storet 1 ,mem_le_txlen 
+0x28ba 004496 fetcht 1 ,mem_le_arq 
+0x28bb 004497 set1 wak ,temp 
+0x28bc 004498 and temp ,0xfc ,pdata 
+0x28bd 004499 ior type ,pdata 
+0x28be 004500 store 1 ,mem_le_arq 
+0x28bf 004501 and_into 0x1f ,pdata 
+0x28c0 004502 isolate1 mark_ble_tx_md ,mark 
+0x28c1 004503 setflag true ,md ,pdata 
+0x28c2 004504 store 1 ,mem_le_txheader 
+0x28c3 004506 fetch 1 ,mem_le_txheader 
+0x28c4 004507 compare 1 ,type ,3 
+0x28c5 004508 nbranch le_send_no_txlen ,true 
+0x28c6 004509 fetch 1 ,mem_le_txlen 
+0x28c7 004510 rtn blank 
+:      004512 le_send_no_txlen:
+0x28c8 004513 bmark1 mark_ble_encryption ,le_send_packet_enc 
+0x28c9 004514 fetchr loopcnt ,1 ,mem_le_txlen 
+0x28ca 004515 fetch 2 ,mem_contr 
+0x28cb 004516 copy pdata ,contr 
+0x28cc 004517 arg mem_le_txpayload ,contw 
+0x28cd 004518 branch memcpy_fast 
+:      004520 le_send_packet_enc:
+0x28ce 004521 call load_sk 
+0x28cf 004522 branch le_encrypt_new_start 
+:      004524 get_lpm_wake_ble_rx_lock:
+0x28d0 004525 arg wake_lock_ble_rx ,queue 
+0x28d1 004526 branch lpm_get_wake_lock 
+:      004528 put_lpm_wake_ble_rx_lock:
+0x28d2 004529 arg wake_lock_ble_rx ,queue 
+0x28d3 004530 branch lpm_put_wake_lock 
+:      004533 le_parse:
+0x28d4 004534 bpatchx patch27_0 ,mem_patch27 
+0x28d5 004535 rtnmark1 mark_old_packet 
+0x28d6 004536 rtnmark1 mark_ble_crc_fail 
+0x28d7 004537 fetch 1 ,mem_le_rxbuf_data_header 
+0x28d8 004538 and pdata ,0x3 ,pdata 
+0x28d9 004539 store 1 ,mem_le_packet_llid 
+0x28da 004540 fetch 1 ,mem_le_rxbuf_data_length 
+0x28db 004541 rtn blank 
+0x28dc 004542 setarg mem_le_rxbuf_data_payload 
+0x28dd 004543 store 2 ,mem_le_payload_ptr 
+0x28de 004544 bpatchx patch27_1 ,mem_patch27 
+0x28df 004545 fetch 1 ,mem_le_packet_llid 
+0x28e0 004546 beq llid_le_ll ,le_parse_ll 
+:      004547 le_parse_l2cap:
+0x28e1 004548 call le_check_l2cap_complete 
+0x28e2 004549 nbranch get_lpm_wake_ble_rx_lock ,user 
+0x28e3 004550 call put_lpm_wake_ble_rx_lock 
+0x28e4 004551 setarg 0 
+0x28e5 004552 store 2 ,mem_le_packet_len_recved 
+0x28e6 004553 fetch 2 ,mem_le_payload_ptr 
+0x28e7 004554 add pdata ,2 ,contr 
+0x28e8 004555 bpatchx patch27_2 ,mem_patch27 
+0x28e9 004556 ifetch 2 ,contr 
+0x28ea 004557 beq le_l2cap_cid_att ,le_parse_att 
+0x28eb 004558 beq le_l2cap_cid_smp ,le_parse_smp 
+0x28ec 004559 beq le_l2cap_cid_signal ,le_parse_signaling 
+0x28ed 004560 rtn 
+:      004563 le_check_l2cap_complete:
+0x28ee 004564 fetch 1 ,mem_le_packet_llid 
+0x28ef 004565 beq llid_start ,le_check_l2cap_llid_start 
+0x28f0 004566 beq llid_continue ,le_check_l2cap_llid_continue 
+0x28f1 004567 rtn 
+:      004572 le_check_l2cap_cid_legal:
+0x28f2 004573 call enable_user 
+0x28f3 004574 arg le_l2cap_cid_att ,temp 
+0x28f4 004575 isub pdata ,null 
+0x28f5 004576 rtn zero 
+0x28f6 004577 arg le_l2cap_cid_signal ,temp 
+0x28f7 004578 isub pdata ,null 
+0x28f8 004579 rtn zero 
+0x28f9 004580 arg le_l2cap_cid_smp ,temp 
+0x28fa 004581 isub pdata ,null 
+0x28fb 004582 rtn zero 
+0x28fc 004583 branch disable_user 
+:      004586 le_check_l2cap_llid_start:
+0x28fd 004587 fetch 2 ,mem_le_payload_ptr 
+0x28fe 004588 copy pdata ,contr 
+0x28ff 004589 ifetch 2 ,contr 
+0x2900 004590 store 2 ,mem_le_l2cap_size 
+0x2901 004591 ifetch 2 ,contr 
+0x2902 004592 call le_check_l2cap_cid_legal 
+0x2903 004593 nrtn user 
+0x2904 004594 fetcht 1 ,mem_le_rxbuf_data_length 
+0x2905 004595 storet 2 ,mem_le_packet_len_recved 
+0x2906 004596 fetch 2 ,mem_le_l2cap_size 
+0x2907 004597 increase 4 ,pdata 
+0x2908 004598 isub temp ,null 
+0x2909 004599 branch enable_user ,zero 
+0x290a 004600 fetchr loopcnt ,1 ,mem_le_rxbuf_data_length 
+0x290b 004601 arg mem_le_l2cap_buf ,contw 
+0x290c 004602 fetch 2 ,mem_le_payload_ptr 
+0x290d 004603 copy pdata ,contr 
+0x290e 004604 call memcpy_fast 
+0x290f 004605 branch disable_user 
+:      004610 le_check_l2cap_continue_legal:
+0x2910 004611 call enable_user 
+0x2911 004612 fetch 2 ,mem_le_packet_len_recved 
+0x2912 004613 nrtn blank 
+0x2913 004614 branch disable_user 
+:      004616 le_check_l2cap_llid_continue:
+0x2914 004617 call le_check_l2cap_continue_legal 
+0x2915 004618 nrtn user 
+0x2916 004619 fetch 2 ,mem_le_packet_len_recved 
+0x2917 004620 arg mem_le_l2cap_buf ,contw 
+0x2918 004621 iadd contw ,rega 
+0x2919 004622 fetcht 1 ,mem_le_rxbuf_data_length 
+0x291a 004623 iadd temp ,pdata 
+0x291b 004624 store 2 ,mem_le_packet_len_recved 
+0x291c 004625 fetchr loopcnt ,1 ,mem_le_rxbuf_data_length 
+0x291d 004626 copy rega ,contw 
+0x291e 004627 fetch 2 ,mem_le_payload_ptr 
+0x291f 004628 copy pdata ,contr 
+0x2920 004629 call memcpy_fast 
+0x2921 004630 setarg mem_le_l2cap_buf 
+0x2922 004631 store 2 ,mem_le_payload_ptr 
+0x2923 004632 fetch 2 ,mem_le_l2cap_size 
+0x2924 004633 increase 4 ,pdata 
+0x2925 004634 fetcht 2 ,mem_le_packet_len_recved 
+0x2926 004635 isub temp ,null 
+0x2927 004636 branch enable_user ,zero 
+0x2928 004637 branch disable_user 
+:      004642 le_writeatt_cb:
+0x2929 004643 fetch 2 ,mem_cb_att_write 
+0x292a 004644 branch callback_func 
+:      004646 le_supervision_update:
+0x292b 004647 bpatchx patch27_3 ,mem_patch27 
+0x292c 004648 fetcht 4 ,mem_le_supervision_timer 
+0x292d 004649 call get_clkbt 
+0x292e 004650 isub temp ,timeup 
+0x292f 004651 deposit timeup 
+0x2930 004652 fetcht 2 ,mem_le_superto 
+0x2931 004653 lshift4 temp ,temp 
+0x2932 004654 lshift temp ,temp 
+0x2933 004655 isub temp ,pdata 
+0x2934 004656 rtn 
+:      004658 le_supervision_flush:
+0x2935 004659 call get_clkbt 
+0x2936 004660 store 4 ,mem_le_supervision_timer 
+0x2937 004661 rtn 
+:      004665 le_receive_window_size:
+0x2938 004666 bpatchx patch27_4 ,mem_patch27 
+0x2939 004667 add rega ,coffset_le_peer_sca ,contr 
+0x293a 004668 ifetch 1 ,contr 
+0x293b 004669 call le_sca_map 
+0x293c 004670 add rega ,coffset_tsniff ,contr 
+0x293d 004671 ifetch 2 ,contr 
+0x293e 004672 imul32 temp ,pdata 
+0x293f 004673 fetcht 2 ,mem_param_rt_rthalfslot 
+0x2940 004674 imul32 temp ,pdata 
+0x2941 004675 arg 1000000 ,temp 
+0x2942 004676 idiv temp 
+0x2943 004677 arg param_windown_size ,temp 
+0x2944 004678 fetch 1 ,mem_system_clk 
+0x2945 004679 imul32 temp ,temp 
+0x2946 004680 add rega ,coffset_le_window_size ,contr 
+0x2947 004681 ifetch 1 ,contr 
+0x2948 004682 imul32 temp ,pdata 
+0x2949 004683 iadd temp ,pdata 
+0x294a 004684 store 4 ,mem_le_transmit_window 
+0x294b 004685 fetch 2 ,mem_rx_window_sniff 
+0x294c 004686 call wait_div_end 
+0x294d 004687 quotient temp 
+0x294e 004688 iadd temp ,pdata 
+0x294f 004689 add rega ,coffset_rx_window ,contw 
+0x2950 004690 istore 2 ,contw 
+0x2951 004691 rtn 
+:      004696 le_modified_name:
+0x2952 004697 bpatchx patch27_5 ,mem_patch27 
+0x2953 004698 call le_modified_name_att_list 
+0x2954 004699 branch le_modified_name_adv 
+:      004701 le_modified_name_att_list:
+0x2955 004702 jam 2 ,mem_le_search_att_type_length 
+0x2956 004703 arg uuid_chrctr_device_name ,temp 
+0x2957 004704 storet 2 ,mem_le_search_att_type 
+0x2958 004705 call le_att_get_uuid_ptr 
+0x2959 004706 rtn blank 
+0x295a 004707 ifetch 1 ,contr 
+0x295b 004708 copy contr ,contw 
+0x295c 004709 fetcht 1 ,mem_le_name_len 
+0x295d 004710 copy temp ,loopcnt 
+0x295e 004711 isub temp ,null 
+0x295f 004712 nbranch le_name_length_longer_than_att ,positive 
+0x2960 004713 isub temp ,temp 
+0x2961 004714 arg mem_le_name ,contr 
+0x2962 004715 call memcpy_fast 
+0x2963 004716 copy temp ,loopcnt 
+0x2964 004717 ncall memcpy_empty ,zero 
+0x2965 004718 rtn 
+:      004719 le_name_length_longer_than_att:
+0x2966 004720 copy pdata ,loopcnt 
+0x2967 004721 arg mem_le_name ,contr 
+0x2968 004722 branch memcpy_fast 
+:      004725 le_modified_name_adv:
+0x2969 004726 arg mem_le_adv_data_len + 32 ,regc 
+0x296a 004727 arg mem_le_adv_data ,rega 
+0x296b 004728 call le_modified_name_adv_and_scan 
+0x296c 004729 setarg 0 
+0x296d 004730 setflag user ,0 ,pdata 
+0x296e 004731 store 1 ,mem_pdatatemp 
+0x296f 004732 arg mem_le_scan_data_len + 32 ,regc 
+0x2970 004733 arg mem_le_scan_data ,rega 
+0x2971 004734 call le_modified_name_adv_and_scan 
+0x2972 004735 rtn user 
+0x2973 004736 fetch 1 ,mem_pdatatemp 
+0x2974 004737 branch assert ,blank 
+0x2975 004738 rtn 
+:      004741 le_modified_name_adv_and_scan:
+0x2976 004742 bpatchx patch27_6 ,mem_patch27 
+0x2977 004743 call enable_user 
+0x2978 004744 call clear_temp_block 
+0x2979 004745 arg 0 ,regb 
+0x297a 004746 arg mem_le_data_temp ,contw 
+0x297b 004747 call le_modified_name_adv_loop 
+0x297c 004748 fetch 1 ,mem_le_name_len 
+0x297d 004749 add pdata ,1 ,temp 
+0x297e 004750 iadd regb ,rega 
+0x297f 004751 increase 2 ,rega 
+0x2980 004752 sub rega ,0x1f ,null 
+0x2981 004753 nbranch le_modified_name_adv_and_scan_name_overflow ,positive 
+0x2982 004754 istoret 1 ,contw 
+0x2983 004755 arg gap_adtype_local_name_complete ,temp 
+0x2984 004756 istoret 1 ,contw 
+0x2985 004757 iforce loopcnt 
+0x2986 004758 call memcpy_fast 
+0x2987 004759 copy rega ,regb 
+:      004760 le_modified_name_adv_and_scan_store_data:
+0x2988 004761 deposit regb 
+0x2989 004762 store 1 ,mem_le_data_len_temp 
+0x298a 004763 arg mem_le_data_len_temp ,contr 
+0x298b 004764 setarg -32 
+0x298c 004765 iadd regc ,contw 
+0x298d 004766 branch memcpy32 
+:      004768 le_modified_name_adv_and_scan_name_overflow:
+0x298e 004769 call disable_user 
+0x298f 004770 branch le_modified_name_adv_and_scan_store_data 
+:      004772 le_modified_name_adv_loop:
+0x2990 004773 ifetch 1 ,rega 
+0x2991 004774 rtn blank 
+0x2992 004775 pincrease 1 
+0x2993 004776 ifetcht 1 ,contr 
+0x2994 004777 sub temp ,gap_adtype_local_name_complete ,null 
+0x2995 004778 branch le_modified_name_adv_found_name ,zero 
+0x2996 004779 iadd regb ,regb 
+0x2997 004780 copy rega ,contr 
+0x2998 004781 iforce loopcnt 
+0x2999 004782 call memcpy_fast 
+0x299a 004783 copy contr ,rega 
+:      004784 le_modified_name_adv_loop2:
+0x299b 004785 deposit rega 
+0x299c 004786 isub regc ,null 
+0x299d 004787 rtn positive 
+0x299e 004788 branch le_modified_name_adv_loop 
+:      004790 le_modified_name_adv_found_name:
+0x299f 004791 iadd rega ,rega 
+0x29a0 004792 branch le_modified_name_adv_loop2 
+:      004795 memcpy_empty:
+0x29a1 004796 setarg space 
+0x29a2 004797 istore 1 ,contw 
+0x29a3 004798 loop memcpy_empty 
+0x29a4 004799 rtn 
+:      004802 le_lpm_set_mult:
+0x29a5 004803 bpatchx patch27_7 ,mem_patch27 
+0x29a6 004804 disable wake 
+0x29a7 004805 branch le_lpm_set_mult_attempt ,attempt 
+0x29a8 004806 nbranch le_lpm_lost ,match 
+:      004807 le_lpm_set_mult_attempt:
+0x29a9 004808 call lpm_match 
+0x29aa 004809 fetch 2 ,mem_rx_window_sniff 
+0x29ab 004810 store 2 ,mem_le_receive_window 
+0x29ac 004811 fetch 1 ,mem_le_configuration 
+0x29ad 004812 bbit1 bit_ble_short_mult ,lpm_mult_short 
+0x29ae 004813 bmark1 mark_old_packet ,lpm_mult_short 
+0x29af 004814 fetch 1 ,mem_le_rxbuf_data_length 
+0x29b0 004815 nbranch lpm_mult_short ,blank 
+0x29b1 004816 fetch 1 ,mem_le_txlen 
+0x29b2 004817 nbranch lpm_mult_short ,blank 
+0x29b3 004819 fetch 1 ,mem_le_state 
+0x29b4 004820 bbit1 lestate_update_param ,lpm_mult_short 
+0x29b5 004821 bbit1 lestate_update_phy ,lpm_mult_short 
+0x29b6 004822 bbit1 lestate_update_map ,lpm_mult_short 
+0x29b7 004823 branch lpm_mult_wait_timeout 
+:      004825 le_lpm_lost:
+0x29b8 004826 fetch 1 ,mem_sniff_unint_lost 
+0x29b9 004827 sub pdata ,30 ,null 
+0x29ba 004828 nbranch lpm_lost ,positive 
+0x29bb 004829 fetcht 2 ,mem_rx_window_sniff 
+0x29bc 004830 rshift temp ,temp 
+0x29bd 004831 fetch 2 ,mem_le_receive_window 
+0x29be 004832 iadd temp ,pdata 
+0x29bf 004833 store 2 ,mem_le_receive_window 
+0x29c0 004834 branch lpm_lost 
+:      004837 le_set_config_fixed_tk:
+0x29c1 004838 arg bit_ble_passkey_fixed_key ,queue 
+0x29c2 004839 branch le_set_config 
+:      004841 le_clr_config_fixed_tk:
+0x29c3 004842 arg bit_ble_passkey_fixed_key ,queue 
+0x29c4 004843 branch le_clr_config 
+:      004845 le_set_config_fixed_ltk:
+0x29c5 004846 arg bit_ble_pairing_fixed_ltk ,queue 
+0x29c6 004847 branch le_set_config 
+:      004849 le_clr_config_fixed_ltk:
+0x29c7 004850 arg bit_ble_pairing_fixed_ltk ,queue 
+0x29c8 004851 branch le_clr_config 
+:      004853 le_set_config_more_data:
+0x29c9 004854 arg bit_ble_transmit_packet_by_md ,queue 
+0x29ca 004855 branch le_set_config 
+:      004857 le_clr_config_more_data:
+0x29cb 004858 arg bit_ble_transmit_packet_by_md ,queue 
+0x29cc 004859 branch le_clr_config 
+:      004861 le_set_config_read_authentication:
+0x29cd 004862 arg bit_ble_read_auth ,queue 
+0x29ce 004863 branch le_set_config 
+:      004865 le_clr_config_read_authentication:
+0x29cf 004866 arg bit_ble_read_auth ,queue 
+0x29d0 004867 branch le_clr_config 
+:      004869 le_set_config_write_authentication:
+0x29d1 004870 arg bit_ble_write_auth ,queue 
+0x29d2 004871 branch le_set_config 
+:      004873 le_clr_config_write_authentication:
+0x29d3 004874 arg bit_ble_write_auth ,queue 
+0x29d4 004875 branch le_clr_config 
+:      004877 le_set_config_short_mult:
+0x29d5 004878 arg bit_ble_short_mult ,queue 
+:      004880 le_set_config:
+0x29d6 004881 fetch 1 ,mem_le_configuration 
+0x29d7 004882 qset1 pdata 
+0x29d8 004883 store 1 ,mem_le_configuration 
+0x29d9 004884 rtn 
+:      004887 le_clr_config_short_mult:
+0x29da 004888 arg bit_ble_short_mult ,queue 
+:      004890 le_clr_config:
+0x29db 004891 fetch 1 ,mem_le_configuration 
+0x29dc 004892 qset0 pdata 
+0x29dd 004893 store 1 ,mem_le_configuration 
+0x29de 004894 rtn 
+:      004898 le_set_fixed_ltk:
+0x29df 004899 setarg 0x112233 
+0x29e0 004900 store 3 ,mem_le_fixed_ltk 
+0x29e1 004901 setarg 0x445566 
+0x29e2 004902 istore 3 ,contw 
+0x29e3 004903 setarg 0x778899 
+0x29e4 004904 istore 3 ,contw 
+0x29e5 004905 setarg 0x001122 
+0x29e6 004906 istore 3 ,contw 
+0x29e7 004907 setarg 0x334455 
+0x29e8 004908 istore 3 ,contw 
+0x29e9 004909 setarg 0x66 
+0x29ea 004910 istore 1 ,contw 
+0x29eb 004911 rtn 
+:      004914 le_set_justwork:
+0x29ec 004915 setarg 0x01000302 
+0x29ed 004916 store 4 ,mem_le_pres 
+0x29ee 004917 setarg 0x010010 
+0x29ef 004918 store 3 ,mem_le_pres_max_keysize 
+0x29f0 004919 jam 1 ,mem_le_pairing_mode 
+0x29f1 004920 rtn 
+:      004924 le_fifo_malloc_tx_empty:
+0x29f2 004925 arg 0 ,rega 
+0x29f3 004926 arg llid_empty ,type 
+0x29f4 004927 branch le_fifo_malloc_tx 
+:      004931 le_fifo_malloc_tx_ll:
+0x29f5 004932 bpatchx patch28_0 ,mem_patch28 
+0x29f6 004933 arg llid_le_ll ,type 
+0x29f7 004934 call le_fifo_malloc_tx 
+0x29f8 004935 copy regb ,pdata 
+0x29f9 004936 istore 1 ,contw 
+0x29fa 004937 rtn 
+:      004941 le_fifo_malloc_tx_l2cap:
+0x29fb 004942 bpatchx patch28_1 ,mem_patch28 
+0x29fc 004943 force llid_start ,type 
+0x29fd 004944 increase 4 ,rega 
+0x29fe 004945 call le_fifo_malloc_tx 
+0x29ff 004946 increase -4 ,rega 
+0x2a00 004947 copy rega ,pdata 
+0x2a01 004948 istore 2 ,contw 
+0x2a02 004949 copy regb ,pdata 
+0x2a03 004950 istore 2 ,contw 
+0x2a04 004951 rtn 
+:      004955 le_fifo_malloc_tx:
+0x2a05 004956 bpatchx patch28_2 ,mem_patch28 
+0x2a06 004957 increase 5 ,rega 
+0x2a07 004958 call ble_l2cap_malloc 
+0x2a08 004959 increase -5 ,rega 
+0x2a09 004960 copy rega ,pdata 
+0x2a0a 004961 istore 2 ,contw 
+0x2a0b 004962 setarg 0 
+0x2a0c 004963 istore 2 ,contw 
+0x2a0d 004964 copy type ,pdata 
+0x2a0e 004965 istore 1 ,contw 
+0x2a0f 004966 rtn 
+:      004969 le_fifo_get_first_tx_ptr:
+0x2a10 004970 bpatchx patch28_3 ,mem_patch28 
+0x2a11 004971 call l2cap_malloc_fifo_out 
+0x2a12 004972 copy pdata ,contr 
+0x2a13 004973 rtn 
+:      004975 le_fifo_get_second_tx_ptr:
+0x2a14 004976 fetch 2 ,mem_tx_fifo2_ptr 
+0x2a15 004977 rtn 
+:      004979 le_fifo_get_last_tx_ptr:
+0x2a16 004980 call le_fifo_get_last_tx_ptr0 
+0x2a17 004981 copy pdata ,contr 
+0x2a18 004982 rtn 
+:      004985 le_fifo_get_last_tx_ptr0:
+0x2a19 004986 fetch 2 ,mem_tx_fifo3_ptr 
+0x2a1a 004987 rtn 
+:      004990 le_fifo_get_first_l2cap_ptr:
+0x2a1b 004991 call le_fifo_get_first_tx_ptr 
+0x2a1c 004992 increase 5 ,contr 
+0x2a1d 004993 rtn 
+:      004995 le_fifo_get_first_att_ptr:
+0x2a1e 004996 call le_fifo_get_first_tx_ptr 
+0x2a1f 004997 increase 9 ,contr 
+0x2a20 004998 rtn 
+:      005000 le_fifo_get_last_att_ptr:
+0x2a21 005001 call le_fifo_get_last_tx_ptr 
+0x2a22 005002 increase 9 ,contr 
+0x2a23 005003 rtn 
+:      005005 le_fifo_get_last_l2cap_ptr:
+0x2a24 005006 call le_fifo_get_last_tx_ptr 
+0x2a25 005007 increase 5 ,contr 
+0x2a26 005008 rtn 
+:      005011 le_fifo_check_full:
+0x2a27 005012 branch l2cap_malloc_is_fifo_full 
+:      005015 le_fifo_check_nearly_full:
+0x2a28 005016 branch l2cap_malloc_is_fifo_nearly_full 
+:      005019 le_fifo_check_empty:
+0x2a29 005020 branch l2cap_malloc_is_fifo_empty 
+:      005023 le_fifo_release_first_node:
+0x2a2a 005024 branch l2cap_malloc_free 
+:      005027 le_set_dle:
+0x2a2b 005028 store 8 ,mem_local_rx_max_octets 
+0x2a2c 005029 branch le_set_feature_data_packet_length_extension 
+:      005032 le_set_phys:
+0x2a2d 005033 and temp ,0xff ,rega 
+0x2a2e 005034 call le_set_tx_phy 
+0x2a2f 005035 rshift8 temp ,rega 
+:      005037 le_set_rx_phy:
+0x2a30 005038 storer rega ,1 ,mem_le_rx_phys 
+0x2a31 005039 branch le_set_phy_common 
+:      005041 le_set_tx_phy:
+0x2a32 005042 storer rega ,1 ,mem_le_tx_phys 
+:      005043 le_set_phy_common:
+0x2a33 005044 isolate1 bit_le_2m_phy ,rega 
+0x2a34 005045 call le_set_feature_2m_phy ,true 
+0x2a35 005046 isolate1 bit_le_coded_phy ,rega 
+0x2a36 005047 call le_set_feature_coded_phy ,true 
+0x2a37 005048 rtn 
+:      005052 le_set_feature_2m_phy:
+0x2a38 005053 arg bit_ll_feature_le_2m_phy ,queue 
+0x2a39 005054 branch le_set_feature 
+:      005057 le_set_feature_coded_phy:
+0x2a3a 005058 arg bit_ll_feature_le_coded_phy ,queue 
+0x2a3b 005059 branch le_set_feature 
+:      005061 le_set_feature_data_packet_length_extension:
+0x2a3c 005062 arg bit_ll_feature_le_data_packet_length_extension ,queue 
+:      005064 le_set_feature:
+0x2a3d 005065 fetch 8 ,mem_le_local_feature 
+0x2a3e 005066 qset1 pdata 
+0x2a3f 005067 store 8 ,mem_le_local_feature 
+0x2a40 005068 rtn 
+:      005070 le_set_fixed_ltk_justwork:
+0x2a41 005071 call le_set_config_fixed_ltk 
+0x2a42 005072 call le_set_justwork 
+0x2a43 005073 call le_set_fixed_ltk 
+0x2a44 005074 branch le_set_config_read_authentication 
+:      005079 le_advertising_dispatch:
+0x2a45 005080 jam fun_rx_ll_1m_phy ,mem_le_rx_phy 
+0x2a46 005081 jam fun_tx_ll_1m_phy ,mem_le_tx_phy 
+0x2a47 005082 call le_enable 
+0x2a48 005083 call le_scan 
+0x2a49 005084 call le_adv 
+0x2a4a 005085 branch le_disable 
+:      005087 le_scan:
+0x2a4b 005088 bpatchx patch28_4 ,mem_patch28 
+0x2a4c 005089 fetch 1 ,mem_le_scan_enable 
+0x2a4d 005090 rtnne le_scan_enable 
+0x2a4e 005091 arg le_scan_interval_timer ,queue 
+0x2a4f 005092 call timer_check 
+0x2a50 005093 nrtn blank 
+0x2a51 005094 fetch 2 ,mem_le_scan_interval 
+0x2a52 005095 fetcht 2 ,mem_le_scan_window 
+0x2a53 005096 isub temp ,pdata 
+0x2a54 005097 arg le_scan_interval_timer ,queue 
+0x2a55 005098 call timer_init 
+0x2a56 005099 disable master 
+0x2a57 005100 call le_init_adv 
+0x2a58 005101 call le_wait_adv 
+0x2a59 005102 nrtn match 
+0x2a5a 005103 bpatchx patch28_5 ,mem_patch28 
+0x2a5b 005104 fetch 6 ,mem_le_rxbuf + 2 
+0x2a5c 005105 store 6 ,mem_le_plap 
+0x2a5d 005108 fetch 1 ,mem_le_adv_rcv 
+0x2a5e 005109 increase 1 ,pdata 
+0x2a5f 005110 store 1 ,mem_le_adv_rcv 
+0x2a60 005111 call le_create_conn 
+0x2a61 005112 rtn master 
+0x2a62 005113 call le_send_scan_request 
+0x2a63 005114 nrtn match 
+0x2a64 005115 fetch 1 ,mem_le_scanrsp_rcv 
+0x2a65 005116 increase 1 ,pdata 
+0x2a66 005117 store 1 ,mem_le_scanrsp_rcv 
+0x2a67 005118 fetch 9 ,mem_le_rxbuf + 8 
+0x2a68 005119 store 9 ,mem_temp_block0 
+0x2a69 005120 rtn 
+:      005123 le_wait_adv:
+0x2a6a 005124 bpatchx patch28_6 ,mem_patch28 
+0x2a6b 005125 call le_next_adv_channel 
+0x2a6c 005126 call le_receive_adv 
+0x2a6d 005127 fetch 1 ,mem_le_adv_waitcnt 
+0x2a6e 005128 increase 1 ,pdata 
+0x2a6f 005129 store 1 ,mem_le_adv_waitcnt 
+0x2a70 005130 rtn 
+:      005133 le_create_conn:
+0x2a71 005134 bpatchx patch28_7 ,mem_patch28 
+0x2a72 005135 fetch 1 ,mem_cmd_le_create_conn 
+0x2a73 005136 rtnne hci_cmd_le_create_conn 
+0x2a74 005137 fetch 6 ,mem_le_plap 
+0x2a75 005138 fetcht 6 ,mem_le_conn_peer_addr 
+0x2a76 005139 isub temp ,null 
+0x2a77 005140 nrtn zero 
+0x2a78 005141 call context_new 
+0x2a79 005142 nrtn zero 
+0x2a7a 005143 call le_connect_request 
+0x2a7b 005144 call le_init_master 
+0x2a7c 005145 call le_send_version_ind 
+0x2a7d 005146 jam bt_evt_le_connected ,mem_fifo_temp 
+0x2a7e 005147 call ui_ipc_send_event 
+0x2a7f 005148 jam 0 ,mem_hci_cmd 
+0x2a80 005149 jam 0 ,mem_le_peer_sca 
+0x2a81 005150 jam 0 ,mem_le_scan_enable 
+0x2a82 005151 jam 0 ,mem_cmd_le_create_conn 
+0x2a83 005152 branch context_save 
+:      005154 le_connect_request:
+0x2a84 005155 bpatchx patch29_0 ,mem_patch29 
+0x2a85 005156 force -1 ,pdata 
+0x2a86 005157 setsect 2 ,1 
+0x2a87 005158 store 5 ,mem_le_channel_map 
+0x2a88 005159 arg mem_le_state ,rega 
+0x2a89 005160 call le_calc_channel_map 
+0x2a8a 005161 force 4 ,loopcnt 
+0x2a8b 005162 arg mem_le_access ,contw 
+0x2a8c 005163 call generate_random_loop 
+0x2a8d 005164 fetch 2 ,mem_le_timeout 
+0x2a8e 005165 store 2 ,mem_le_superto 
+:      005166 le_con_req_hop_retry:
+0x2a8f 005167 random pdata 
+0x2a90 005168 and_into 0xf ,pdata 
+0x2a91 005169 sub pdata ,4 ,null 
+0x2a92 005170 branch le_con_req_hop_retry ,positive 
+0x2a93 005171 store 1 ,mem_le_hop 
+0x2a94 005173 bpatchx patch29_1 ,mem_patch29 
+0x2a95 005174 fetcht 2 ,mem_le_conn_interval 
+0x2a96 005175 storet 2 ,mem_le_tsniff 
+0x2a97 005176 copy temp ,regc 
+0x2a98 005177 add clkn_bt ,7 ,pdata 
+0x2a99 005178 idiv regc 
+0x2a9a 005179 call wait_div_end 
+0x2a9b 005180 remainder rega 
+0x2a9c 005181 isub rega ,pdata 
+0x2a9d 005182 iadd regc ,pdata 
+0x2a9e 005183 fetcht 2 ,mem_le_dsniff 
+0x2a9f 005184 iadd temp ,pdata 
+0x2aa0 005185 store 4 ,mem_le_anchor 
+0x2aa1 005186 isub clkn_bt ,rega 
+0x2aa2 005187 increase -6 ,rega 
+0x2aa3 005188 arg 0x2205 ,regb 
+0x2aa4 005189 fetch 1 ,mem_le_conn_own_addr_type 
+0x2aa5 005190 nsetflag blank ,le_sender_addr_bit ,regb 
+0x2aa6 005191 fetch 1 ,mem_le_conn_peer_addr_type 
+0x2aa7 005192 nsetflag blank ,le_receiver_addr_bit ,regb 
+0x2aa8 005193 copy regb ,pdata 
+0x2aa9 005194 store 2 ,mem_le_txheader 
+0x2aaa 005195 fetch 6 ,mem_le_lap 
+0x2aab 005196 istore 6 ,contw 
+0x2aac 005197 fetch 6 ,mem_le_plap 
+0x2aad 005198 istore 6 ,contw 
+0x2aae 005199 fetch 4 ,mem_le_access 
+0x2aaf 005200 istore 4 ,contw 
+0x2ab0 005201 random pdata 
+0x2ab1 005202 istore 2 ,contw 
+0x2ab2 005203 random pdata 
+0x2ab3 005204 istore 1 ,contw 
+0x2ab4 005205 force 2 ,pdata 
+0x2ab5 005206 istore 1 ,contw 
+0x2ab6 005207 rshift2 rega ,pdata 
+0x2ab7 005208 istore 2 ,contw 
+0x2ab8 005209 rshift2 regc ,pdata 
+0x2ab9 005210 istore 2 ,contw 
+0x2aba 005211 bpatchx patch29_2 ,mem_patch29 
+0x2abb 005212 setarg 0 
+0x2abc 005213 istore 2 ,contw 
+0x2abd 005214 fetch 2 ,mem_le_timeout 
+0x2abe 005215 istore 2 ,contw 
+0x2abf 005216 fetch 5 ,mem_le_channel_map 
+0x2ac0 005217 istore 5 ,contw 
+0x2ac1 005218 fetch 1 ,mem_le_hop 
+0x2ac2 005219 arg param_le_sca ,temp 
+0x2ac3 005220 ior temp ,pdata 
+0x2ac4 005221 istore 1 ,contw 
+0x2ac5 005222 call le_transmit_norx 
+0x2ac6 005223 setarg mem_le_txheader 
+0x2ac7 005224 add pdata ,18 ,contr 
+0x2ac8 005225 ifetch 3 ,contr 
+0x2ac9 005226 store 3 ,mem_le_crcinit 
+0x2aca 005227 rtn 
+:      005230 le_adv:
+0x2acb 005231 jam 36 ,mem_le_ch_mapped 
+0x2acc 005232 jam 0 ,mem_le_adv_channel_map_temp 
+0x2acd 005233 call le_send_adv_protect_txbuf 
+0x2ace 005234 call le_adv_loop 
+0x2acf 005235 branch le_send_adv_recover_txbuf 
+:      005237 le_adv_loop:
+0x2ad0 005238 bpatchx patch29_3 ,mem_patch29 
+0x2ad1 005239 fetch 1 ,mem_le_adv_enable 
+0x2ad2 005240 rtn blank 
+0x2ad3 005241 arg le_adv_interval_timer ,queue 
+0x2ad4 005242 call timer_check 
+0x2ad5 005243 nrtn blank 
+0x2ad6 005244 enable swfine 
+0x2ad7 005245 call le_init_adv 
+0x2ad8 005246 call le_next_adv_channel 
+0x2ad9 005247 call le_send_adv_ind 
+0x2ada 005248 nbranch le_adv_not_match ,match 
+0x2adb 005249 fetch 1 ,mem_le_req_rcv 
+0x2adc 005250 increase 1 ,pdata 
+0x2add 005251 store 1 ,mem_le_req_rcv 
+0x2ade 005252 fetch 1 ,mem_le_rxbuf_adv_header 
+0x2adf 005253 and pdata ,0x0f ,pdata 
+0x2ae0 005254 beq scan_req ,le_send_scan_response 
+0x2ae1 005255 beq connect_req ,le_parse_connect_req 
+:      005256 le_adv_not_match:
+0x2ae2 005257 bpatchx patch29_4 ,mem_patch29 
+0x2ae3 005258 fetch 1 ,mem_le_adv_channel_map_temp 
+0x2ae4 005259 fetcht 1 ,mem_le_adv_channel_map 
+0x2ae5 005260 isub temp ,null 
+0x2ae6 005261 nbranch le_adv_loop ,zero 
+0x2ae7 005262 random pdata 
+0x2ae8 005263 arg 0x1ff ,temp 
+0x2ae9 005264 iand temp ,pdata 
+0x2aea 005265 add pdata ,250 ,pdata 
+0x2aeb 005266 call delay 
+0x2aec 005267 arg le_adv_interval_timer ,queue 
+0x2aed 005268 fetch 2 ,mem_le_adv_interval 
+0x2aee 005269 branch timer_init 
+:      005271 le_send_adv_protect_txbuf:
+0x2aef 005272 arg mem_le_tx_buf_temp ,contw 
+0x2af0 005273 arg mem_le_txheader ,contr 
+0x2af1 005274 branch memcpy48 
+:      005276 le_send_adv_recover_txbuf:
+0x2af2 005277 arg mem_le_tx_buf_temp ,contr 
+0x2af3 005278 arg mem_le_txheader ,contw 
+0x2af4 005279 branch memcpy48 
+:      005281 le_init_adv:
+0x2af5 005282 bpatchx patch29_5 ,mem_patch29 
+0x2af6 005283 disable master 
+:      005284 le_adv_access:
+0x2af7 005285 setarg 0x8e89be 
+0x2af8 005286 lshift8 pdata ,pdata 
+0x2af9 005287 or_into 0xd6 ,pdata 
+0x2afa 005288 iforce access 
+0x2afb 005289 setarg 0x555555 
+0x2afc 005290 store 3 ,mem_le_crcinit 
+0x2afd 005291 rtn 
+:      005295 le_send_adv_ind:
+0x2afe 005296 bpatchx patch29_6 ,mem_patch29 
+0x2aff 005297 fetch 1 ,mem_le_adv_type 
+0x2b00 005298 fetcht 1 ,mem_le_adv_own_addr_type 
+0x2b01 005299 lshift4 temp ,temp 
+0x2b02 005300 lshift2 temp ,temp 
+0x2b03 005301 iadd temp ,temp 
+0x2b04 005302 storet 1 ,mem_le_txheader 
+0x2b05 005303 beq adv_direct_ind ,le_send_adv_direct_ind 
+0x2b06 005304 fetcht 1 ,mem_le_adv_data_len 
+0x2b07 005305 add temp ,6 ,pdata 
+0x2b08 005306 store 1 ,mem_le_txlen 
+0x2b09 005307 fetch 6 ,mem_le_lap 
+0x2b0a 005308 store 6 ,mem_le_txpayload 
+0x2b0b 005309 copy temp ,loopcnt 
+0x2b0c 005310 arg mem_le_adv_data ,contr 
+0x2b0d 005311 call memcpy_fast 
+0x2b0e 005312 branch le_send_adv_transmit 
+:      005314 le_send_adv_direct_ind:
+0x2b0f 005315 setarg 12 
+0x2b10 005316 store 1 ,mem_le_txlen 
+0x2b11 005317 fetch 6 ,mem_le_lap 
+0x2b12 005318 store 6 ,mem_le_txpayload 
+0x2b13 005319 fetch 6 ,mem_hci_plap 
+0x2b14 005320 istore 6 ,contw 
+:      005321 le_send_adv_transmit:
+0x2b15 005322 bpatchx patch29_7 ,mem_patch29 
+0x2b16 005323 fetch 1 ,mem_le_adv_transmit 
+0x2b17 005324 increase 1 ,pdata 
+0x2b18 005325 store 1 ,mem_le_adv_transmit 
+0x2b19 005326 arg 1800 ,stop_watch 
+0x2b1a 005327 disable match 
+0x2b1b 005328 branch le_transmit_receive_sifs_without_change_mode 
+:      005331 le_send_scan_request:
+0x2b1c 005332 bpatchx patch2a_0 ,mem_patch2a 
+0x2b1d 005333 fetch 1 ,mem_le_scan_type 
+0x2b1e 005334 rtnne le_scan_type_active 
+0x2b1f 005335 fetch 1 ,mem_le_adv_transmit 
+0x2b20 005336 increase 1 ,pdata 
+0x2b21 005337 store 1 ,mem_le_adv_transmit 
+0x2b22 005338 arg 0x0c03 ,temp 
+0x2b23 005339 fetch 1 ,mem_le_scan_own_addr_type 
+0x2b24 005340 nsetflag blank ,le_sender_addr_bit ,temp 
+0x2b25 005341 copy rega ,pdata 
+0x2b26 005342 nsetflag blank ,le_receiver_addr_bit ,temp 
+0x2b27 005343 storet 2 ,mem_le_txheader 
+0x2b28 005344 fetch 6 ,mem_le_lap 
+0x2b29 005345 istore 6 ,contw 
+0x2b2a 005346 fetch 6 ,mem_le_plap 
+0x2b2b 005347 istore 6 ,contw 
+0x2b2c 005348 branch le_transmit_receive_sifs_without_change_mode 
+:      005350 le_send_scan_response:
+0x2b2d 005351 bpatchx patch2a_1 ,mem_patch2a 
+0x2b2e 005352 fetch 6 ,mem_le_rxbuf_adv_scan_req_adv_address 
+0x2b2f 005353 fetcht 6 ,mem_le_lap 
+0x2b30 005354 isub temp ,null 
+0x2b31 005355 nrtn zero 
+0x2b32 005356 arg scan_rsp ,temp 
+0x2b33 005357 fetch 1 ,mem_le_adv_own_addr_type 
+0x2b34 005358 nsetflag blank ,le_sender_addr_bit ,temp 
+0x2b35 005359 storet 1 ,mem_le_txheader 
+0x2b36 005360 fetcht 1 ,mem_le_scan_data_len 
+0x2b37 005361 add temp ,6 ,pdata 
+0x2b38 005362 store 1 ,mem_le_txlen 
+0x2b39 005363 fetch 6 ,mem_le_lap 
+0x2b3a 005364 store 6 ,mem_le_txpayload 
+0x2b3b 005365 arg mem_le_scan_data ,contr 
+0x2b3c 005366 copy temp ,loopcnt 
+0x2b3d 005367 call memcpy_fast 
+0x2b3e 005368 call le_transmit_norx 
+0x2b3f 005369 branch le_adv_not_match 
+:      005371 le_parse_connect_req:
+0x2b40 005372 fetch 6 ,mem_le_rxbuf_adv_connect_ind_adv_address 
+0x2b41 005373 fetcht 6 ,mem_le_lap 
+0x2b42 005374 isub temp ,null 
+0x2b43 005375 nrtn zero 
+0x2b44 005376 call le_scan_check_sender_addr_type 
+0x2b45 005377 storer rega ,1 ,mem_le_conn_peer_addr_type 
+0x2b46 005378 fetch 6 ,mem_le_rxbuf_adv_connect_ind_init_address 
+0x2b47 005379 store 6 ,mem_le_plap 
+0x2b48 005380 fetch 8 ,mem_le_rxbuf_adv_connect_ind_access_address 
+0x2b49 005381 store 8 ,mem_le_access 
+0x2b4a 005382 fetcht 2 ,mem_le_rxbuf_adv_connect_ind_win_offset 
+0x2b4b 005383 bpatchx patch2a_2 ,mem_patch2a 
+0x2b4c 005384 lshift2 temp ,temp 
+0x2b4d 005385 fetch 2 ,mem_le_rxbuf_adv_connect_ind_interval 
+0x2b4e 005386 lshift2 pdata ,pdata 
+0x2b4f 005387 store 2 ,mem_le_tsniff 
+0x2b50 005388 store 4 ,mem_le_anchor 
+0x2b51 005389 isub temp ,pdata 
+0x2b52 005390 add pdata ,-2 ,clke_bt 
+0x2b53 005391 fetch 9 ,mem_le_rxbuf_adv_connect_ind_latency 
+0x2b54 005392 store 9 ,mem_le_slave_latency 
+0x2b55 005393 fetch 1 ,mem_le_rxbuf_adv_connect_ind_hop_and_sca 
+0x2b56 005394 and pdata ,0x1f ,temp 
+0x2b57 005395 storet 1 ,mem_le_hop 
+0x2b58 005396 rshift4 pdata ,temp 
+0x2b59 005397 rshift temp ,temp 
+0x2b5a 005398 storet 1 ,mem_le_peer_sca 
+0x2b5b 005399 arg mem_le_state ,rega 
+0x2b5c 005400 call le_receive_window_size 
+0x2b5d 005401 arg mem_le_state ,rega 
+0x2b5e 005402 call le_calc_channel_map 
+0x2b5f 005403 call le_init_slave 
+0x2b60 005404 call context_new 
+0x2b61 005405 nrtn zero 
+0x2b62 005406 bpatchx patch2a_3 ,mem_patch2a 
+0x2b63 005407 call calc_clke_offset 
+0x2b64 005408 call le_l2cap_reset_signaling_identifier 
+0x2b65 005409 jam bt_evt_le_connected ,mem_fifo_temp 
+0x2b66 005410 call ui_ipc_send_event 
+0x2b67 005411 branch context_save 
+:      005414 le_next_adv_channel:
+0x2b68 005415 bpatchx patch2a_4 ,mem_patch2a 
+0x2b69 005416 fetch 1 ,mem_le_ch_mapped 
+0x2b6a 005417 beq 37 ,le_next_adv_channel_curr_channel_37 
+0x2b6b 005418 beq 38 ,le_next_adv_channel_curr_channel_38 
+0x2b6c 005419 beq 39 ,le_next_adv_channel_curr_channel_39 
+0x2b6d 005420 branch le_next_adv_channel_curr_channel_39 
+:      005422 le_next_adv_channel_curr_channel_37:
+0x2b6e 005423 fetcht 1 ,mem_le_adv_channel_map 
+0x2b6f 005424 isolate1 bit_adv_channel_map_38 ,temp 
+0x2b70 005425 branch set_le_next_adv_channel_38 ,true 
+0x2b71 005426 isolate1 bit_adv_channel_map_39 ,temp 
+0x2b72 005427 branch set_le_next_adv_channel_39 ,true 
+0x2b73 005428 branch set_le_next_adv_channel_37 
+:      005431 le_next_adv_channel_curr_channel_38:
+0x2b74 005432 fetcht 1 ,mem_le_adv_channel_map 
+0x2b75 005433 isolate1 bit_adv_channel_map_39 ,temp 
+0x2b76 005434 branch set_le_next_adv_channel_39 ,true 
+0x2b77 005435 isolate1 bit_adv_channel_map_37 ,temp 
+0x2b78 005436 branch set_le_next_adv_channel_37 ,true 
+0x2b79 005437 branch set_le_next_adv_channel_38 
+:      005440 le_next_adv_channel_curr_channel_39:
+0x2b7a 005441 fetcht 1 ,mem_le_adv_channel_map 
+0x2b7b 005442 isolate1 bit_adv_channel_map_37 ,temp 
+0x2b7c 005443 branch set_le_next_adv_channel_37 ,true 
+0x2b7d 005444 isolate1 bit_adv_channel_map_38 ,temp 
+0x2b7e 005445 branch set_le_next_adv_channel_38 ,true 
+0x2b7f 005446 branch set_le_next_adv_channel_39 
+:      005448 set_le_next_adv_channel_37:
+0x2b80 005449 jam 37 ,mem_le_ch_mapped 
+0x2b81 005450 fetch 1 ,mem_le_adv_channel_map_temp 
+0x2b82 005451 set1 bit_adv_channel_map_37 ,pdata 
+0x2b83 005452 store 1 ,mem_le_adv_channel_map_temp 
+0x2b84 005453 rtn 
+:      005455 set_le_next_adv_channel_38:
+0x2b85 005456 jam 38 ,mem_le_ch_mapped 
+0x2b86 005457 fetch 1 ,mem_le_adv_channel_map_temp 
+0x2b87 005458 set1 bit_adv_channel_map_38 ,pdata 
+0x2b88 005459 store 1 ,mem_le_adv_channel_map_temp 
+0x2b89 005460 rtn 
+:      005462 set_le_next_adv_channel_39:
+0x2b8a 005463 jam 39 ,mem_le_ch_mapped 
+0x2b8b 005464 fetch 1 ,mem_le_adv_channel_map_temp 
+0x2b8c 005465 set1 bit_adv_channel_map_39 ,pdata 
+0x2b8d 005466 store 1 ,mem_le_adv_channel_map_temp 
+0x2b8e 005467 rtn 
+:      005472 le_parse_att:
+0x2b8f 005473 copy contr ,rega 
+0x2b90 005474 fetch 1 ,mem_device_option 
+0x2b91 005475 beq dvc_op_shutter_dy ,shutter_dy_le_parse_att 
+0x2b92 005476 beq dvc_op_keyboard ,keyboard_le_att_auto_reco_process 
+0x2b93 005477 copy rega ,contr 
+0x2b94 005478 ifetch 3 ,contr 
+0x2b95 005479 store 3 ,mem_le_att_opcode 
+:      005480 le_parse_att2:
+0x2b96 005481 beq attop_exchange_mtu_request ,le_parse_att_exchange_mtu_request 
+0x2b97 005482 beq attop_exchange_mtu_response ,le_parse_att_exchange_mtu_response 
+0x2b98 005483 beq attop_find_information_request ,le_parse_att_find_information_request 
+0x2b99 005484 beq attop_find_by_type_value_request ,le_parse_att_find_by_type_value_request 
+0x2b9a 005485 beq attop_read_by_type_request ,le_parse_att_read_by_type_request 
+0x2b9b 005486 beq attop_read_request ,le_parse_att_read_request 
+0x2b9c 005487 beq attop_read_blob_request ,le_parse_att_read_blob_request 
+0x2b9d 005488 beq attop_read_by_group_type_request ,le_parse_att_read_by_group_type_request 
+0x2b9e 005489 beq attop_write_request ,le_parse_att_write_request 
+0x2b9f 005490 beq attop_prepare_write_request ,le_parse_att_prepare_write_request 
+0x2ba0 005491 beq attop_execute_write_request ,le_parse_att_execute_write_request 
+0x2ba1 005492 beq attop_handle_value_confirmation ,le_parse_handle_value_confirmation 
+0x2ba2 005493 beq attop_write_command ,le_parse_att_write_command 
+0x2ba3 005494 rtn 
+:      005497 le_send_att_exchange_mtu_requset:
+0x2ba4 005498 force 3 ,rega 
+0x2ba5 005499 call le_fifo_malloc_tx_l2cap_gatt 
+0x2ba6 005500 setarg attop_exchange_mtu_request 
+:      005501 le_send_att_exchange_mtu_common:
+0x2ba7 005502 istore 1 ,contw 
+0x2ba8 005503 fetch 2 ,mem_le_local_mtu 
+0x2ba9 005504 istore 2 ,contw 
+0x2baa 005505 rtn 
+:      005508 le_parse_att_exchange_mtu_request:
+0x2bab 005509 call le_parse_att_exchange_mtu_response 
+:      005510 le_send_att_exchange_mtu_response:
+0x2bac 005511 force 3 ,rega 
+0x2bad 005512 call le_fifo_malloc_tx_l2cap_gatt 
+0x2bae 005513 setarg attop_exchange_mtu_response 
+0x2baf 005514 branch le_send_att_exchange_mtu_common 
+:      005516 le_parse_att_exchange_mtu_response:
+0x2bb0 005517 rshift8 pdata ,pdata 
+0x2bb1 005518 store 2 ,mem_le_remote_mtu 
+0x2bb2 005519 rtn 
+:      005521 le_parse_att_find_information_request:
+0x2bb3 005522 call le_get_search_handle_start_end_common 
+0x2bb4 005523 call enable_user 
+0x2bb5 005524 branch le_send_att_find_information_response 
+:      005527 le_att_handle_inrange:
+0x2bb6 005528 ifetch 2 ,contr 
+0x2bb7 005529 and_into 0xff ,pdata 
+0x2bb8 005530 rtn blank 
+0x2bb9 005531 isub regb ,null 
+0x2bba 005532 rtn zero 
+0x2bbb 005533 nrtn positive 
+0x2bbc 005534 isub regc ,null 
+0x2bbd 005535 rtn zero 
+0x2bbe 005536 branch le_att_handle_blank ,positive 
+0x2bbf 005537 force 1 ,null 
+0x2bc0 005538 rtn 
+:      005539 le_att_handle_blank:
+0x2bc1 005540 force 0 ,pdata 
+0x2bc2 005541 rtn 
+:      005544 le_send_att_find_information_response:
+0x2bc3 005545 arg 3 ,timeup 
+0x2bc4 005546 call le_init_attlist_search 
+:      005547 le_send_att_find_information_res_loop:
+0x2bc5 005548 call le_att_handle_inrange 
+0x2bc6 005549 branch le_send_att_find_information_res_end ,blank 
+0x2bc7 005550 nbranch le_send_att_find_information_res_next ,positive 
+0x2bc8 005551 increase -2 ,contr 
+0x2bc9 005552 call store_contr 
+0x2bca 005553 call get_contw 
+0x2bcb 005554 nbranch le_send_att_find_information_res_store_info2 ,user 
+0x2bcc 005555 call push_stack_rega_b_c 
+0x2bcd 005556 storer timeup ,4 ,mem_timeup 
+0x2bce 005557 force 30 ,rega 
+0x2bcf 005558 call le_fifo_malloc_tx_l2cap_gatt 
+0x2bd0 005559 fetchr timeup ,4 ,mem_timeup 
+0x2bd1 005560 call pop_stack_rega_b_c 
+0x2bd2 005561 call disable_user 
+0x2bd3 005562 setarg attop_find_information_response 
+0x2bd4 005563 istore 1 ,contw 
+0x2bd5 005564 call get_contr 
+0x2bd6 005565 ifetch 2 ,contr 
+0x2bd7 005566 ifetchr rega ,1 ,contr 
+0x2bd8 005567 sub rega ,16 ,null 
+0x2bd9 005568 branch le_send_att_find_information_res_uuid128 ,zero 
+0x2bda 005569 sub rega ,2 ,null 
+0x2bdb 005570 nbranch le_send_att_error_response_notfound ,zero 
+:      005571 le_send_att_find_information_res_uuid16:
+0x2bdc 005572 setarg uuid_size_16bit 
+0x2bdd 005573 istore 1 ,contw 
+0x2bde 005574 branch le_send_att_find_information_res_store_info 
+:      005576 le_send_att_find_information_res_uuid128:
+0x2bdf 005577 setarg uuid_size_128bit 
+0x2be0 005578 istore 1 ,contw 
+0x2be1 005579 arg 1 ,timeup 
+0x2be2 005580 branch le_send_att_find_information_res_store_info 
+:      005582 le_send_att_find_information_res_store_info2:
+0x2be3 005583 call get_contr 
+0x2be4 005584 ifetch 2 ,contr 
+0x2be5 005585 ifetch 1 ,contr 
+0x2be6 005586 isub rega ,null 
+0x2be7 005587 nbranch le_send_att_find_information_res_end ,zero 
+:      005589 le_send_att_find_information_res_store_info:
+0x2be8 005590 call get_contr 
+0x2be9 005591 ifetch 2 ,contr 
+0x2bea 005592 and_into 0xff ,pdata 
+0x2beb 005593 istore 2 ,contw 
+0x2bec 005594 ifetchr loopcnt ,1 ,contr 
+0x2bed 005595 call memcpy 
+0x2bee 005596 call store_contw 
+0x2bef 005597 increase -1 ,timeup 
+0x2bf0 005598 branch le_send_att_find_information_res_end ,zero 
+:      005599 le_send_att_find_information_res_cont:
+0x2bf1 005600 call le_att_contr_add_len 
+0x2bf2 005601 branch le_send_att_find_information_res_loop 
+:      005603 le_send_att_find_information_res_next:
+0x2bf3 005604 call le_att_contr_add_len 
+0x2bf4 005605 branch le_send_att_find_information_res_cont 
+:      005607 le_send_att_find_information_res_end:
+0x2bf5 005608 branch le_send_att_error_response_notfound ,user 
+0x2bf6 005609 branch le_send_auto_len_by_mem 
+:      005612 le_parse_att_find_by_type_value_request:
+0x2bf7 005613 call le_get_search_handle_start_end_common 
+0x2bf8 005614 ifetch 2 ,contr 
+0x2bf9 005615 store 2 ,mem_le_search_uuid 
+0x2bfa 005616 call store_contr 
+0x2bfb 005617 arg mem_le_search_att_type_length ,contw 
+0x2bfc 005618 fetch 2 ,mem_le_l2cap_size 
+0x2bfd 005619 increase -7 ,pdata 
+0x2bfe 005620 call le_get_search_common2 
+0x2bff 005621 branch le_send_att_find_by_type_value_response 
+:      005624 le_start_end_handle_check_1:
+0x2c00 005625 disable user 
+0x2c01 005626 fetcht 2 ,mem_le_search_handle_start 
+0x2c02 005627 fetch 2 ,mem_le_search_handle_end 
+0x2c03 005628 isub temp ,null 
+0x2c04 005629 nbranch le_start_end_handle_check_1_fail ,positive 
+0x2c05 005630 deposit temp 
+0x2c06 005631 rtnne 0 
+:      005632 le_start_end_handle_check_1_fail:
+0x2c07 005633 enable user 
+0x2c08 005634 jam att_err_invalid_handle ,mem_le_err_code 
+0x2c09 005635 branch le_send_att_error_response 
+:      005638 le_send_att_find_by_type_value_response:
+0x2c0a 005639 call le_start_end_handle_check_1 
+0x2c0b 005640 rtn user 
+0x2c0c 005641 fetcht 2 ,mem_le_search_uuid 
+0x2c0d 005642 setarg uuid_gatt_primary_service 
+0x2c0e 005643 isub temp ,null 
+0x2c0f 005644 branch le_send_att_find_by_type_value_res_primary ,zero 
+0x2c10 005645 branch le_send_att_error_response_notfound 
+:      005648 le_send_att_find_by_type_value_res_primary:
+0x2c11 005649 jam le_find_by_type_val_res_not_found ,mem_le_search_res 
+0x2c12 005650 fetcht 2 ,mem_le_search_handle_start 
+0x2c13 005651 storet 2 ,mem_temp 
+0x2c14 005652 call le_att_get_handle_info 
+0x2c15 005653 nbranch le_send_att_error_response_notfound ,blank 
+:      005654 le_send_att_find_primary_search_loop:
+0x2c16 005655 fetcht 2 ,mem_temp 
+0x2c17 005656 call le_att_get_handle_info 
+0x2c18 005657 nbranch le_send_att_error_response_notfound2 ,blank 
+0x2c19 005658 copy contr ,rega 
+0x2c1a 005659 fetch 1 ,mem_le_curr_att_len 
+0x2c1b 005660 copy pdata ,loopcnt 
+0x2c1c 005661 fetcht 1 ,mem_le_search_att_type_length 
+0x2c1d 005662 isub temp ,null 
+0x2c1e 005663 nbranch le_send_att_find_primary_search_loop1 ,zero 
+0x2c1f 005664 arg mem_le_search_att_type ,regb 
+0x2c20 005665 call string_compare 
+0x2c21 005667 branch le_send_att_find_primary_search_end_start_handle_found ,zero 
+0x2c22 005669 fetch 2 ,mem_le_cur_uuid 
+0x2c23 005670 fetcht 2 ,mem_le_search_uuid 
+0x2c24 005671 isub temp ,null 
+0x2c25 005672 branch le_send_att_find_primary_search_end_ending_handle_found ,zero 
+:      005673 le_send_att_find_primary_search_loop1:
+0x2c26 005674 fetch 2 ,mem_temp 
+0x2c27 005675 increase 1 ,pdata 
+0x2c28 005676 store 2 ,mem_temp 
+0x2c29 005677 branch le_send_att_find_primary_search_loop 
+:      005679 le_send_att_error_response_notfound2:
+0x2c2a 005680 fetch 1 ,mem_le_search_res 
+0x2c2b 005681 beq le_find_by_type_val_res_found_starting_handle ,le_send_att_find_primary_search_end_ending_handle_found 
+0x2c2c 005682 branch le_send_att_error_response_notfound 
+:      005685 le_send_att_find_primary_search_end_start_handle_found:
+0x2c2d 005686 fetch 2 ,mem_le_cur_uuid 
+0x2c2e 005687 fetcht 2 ,mem_le_search_uuid 
+0x2c2f 005688 isub temp ,null 
+0x2c30 005689 nbranch le_send_att_find_primary_search_loop1 ,zero 
+0x2c31 005690 jam le_find_by_type_val_res_found_starting_handle ,mem_le_search_res 
+0x2c32 005692 fetcht 2 ,mem_temp 
+0x2c33 005693 storet 2 ,mem_le_cur_handle_start 
+0x2c34 005694 branch le_send_att_find_primary_search_loop1 
+:      005696 le_send_att_find_primary_search_end_ending_handle_found:
+0x2c35 005697 fetch 1 ,mem_le_search_res 
+0x2c36 005698 beq le_find_by_type_val_res_not_found ,le_send_att_find_primary_search_loop1 
+0x2c37 005699 jam le_find_by_type_val_res_found_ending_handle ,mem_le_search_res 
+0x2c38 005700 fetcht 2 ,mem_temp 
+0x2c39 005701 increase -1 ,temp 
+0x2c3a 005702 storet 2 ,mem_le_cur_handle_end 
+:      005704 le_send_att_find_primary_search_end:
+0x2c3b 005705 arg 5 ,rega 
+0x2c3c 005706 call le_fifo_malloc_tx_l2cap_gatt 
+0x2c3d 005707 setarg attop_find_by_type_value_response 
+0x2c3e 005708 istore 1 ,contw 
+0x2c3f 005709 fetch 2 ,mem_le_cur_handle_start 
+0x2c40 005710 istore 2 ,contw 
+0x2c41 005711 fetch 2 ,mem_le_cur_handle_end 
+0x2c42 005712 istore 2 ,contw 
+0x2c43 005713 rtn 
+:      005717 le_parse_att_read_by_type_request:
+0x2c44 005718 call le_get_search_handle_start_end_common 
+0x2c45 005719 call le_get_search_att_type 
+0x2c46 005720 branch le_send_att_read_by_type_response 
+:      005722 le_send_att_read_by_type_response:
+0x2c47 005723 fetcht 2 ,mem_le_search_handle_start 
+0x2c48 005724 storet 2 ,mem_temp 
+0x2c49 005725 call le_init_attlist_search 
+0x2c4a 005726 call le_att_get_handle_ptr2 
+0x2c4b 005727 increase -2 ,contr 
+0x2c4c 005728 copy contr ,pdata 
+0x2c4d 005729 store 2 ,mem_le_cur_attlist_start_ptr 
+0x2c4e 005731 fetcht 2 ,mem_le_search_att_type 
+0x2c4f 005732 setarg uuid_chrctr_device_name 
+0x2c50 005733 isub temp ,null 
+0x2c51 005734 branch le_send_att_read_by_type_res_device_name ,zero 
+0x2c52 005735 setarg uuid_gatt_characteristic 
+0x2c53 005736 isub temp ,null 
+0x2c54 005737 nbranch le_send_att_read_by_type_res_not_characteristic ,zero 
+0x2c55 005738 arg 2 ,timeup 
+:      005739 le_send_att_read_by_type_response_loop:
+0x2c56 005740 call le_att_check_handle_end 
+0x2c57 005741 nbranch le_send_att_read_by_type_response_end ,positive 
+0x2c58 005742 fetcht 2 ,mem_temp 
+0x2c59 005743 call le_att_get_handle_info_from_ptr 
+0x2c5a 005744 nbranch le_send_att_read_by_type_response_end ,blank 
+0x2c5b 005745 call le_att_same_type 
+0x2c5c 005746 nbranch le_send_att_read_by_type_response_next_handle ,zero 
+0x2c5d 005747 nbranch le_send_att_read_by_type_res_found_next ,user 
+0x2c5e 005748 disable user 
+0x2c5f 005749 call le_get_search_max_mtu_data 
+0x2c60 005750 copy pdata ,rega 
+0x2c61 005751 call le_fifo_malloc_tx_l2cap_gatt 
+0x2c62 005752 setarg attop_read_by_type_response 
+0x2c63 005753 istore 1 ,contw 
+0x2c64 005754 copy contw ,alarm 
+0x2c65 005755 increase 1 ,contw 
+0x2c66 005757 call le_send_att_read_by_type_write_properties 
+0x2c67 005758 call le_att_next_handle 
+0x2c68 005759 call le_att_get_handle_info_from_ptr 
+0x2c69 005760 call le_send_att_read_by_type_write_uuid 
+0x2c6a 005761 fetch 1 ,mem_le_cur_uuid_length 
+0x2c6b 005762 add pdata ,5 ,rega 
+0x2c6c 005763 istorer rega ,1 ,alarm 
+0x2c6d 005765 sub rega ,7 ,null 
+0x2c6e 005766 ncall enable_user2 ,zero 
+0x2c6f 005767 call disable_user2 ,zero 
+0x2c70 005768 call le_get_search_max_mtu_data 
+0x2c71 005769 increase -2 ,pdata 
+0x2c72 005770 idiv rega 
+0x2c73 005771 call wait_div_end 
+0x2c74 005772 quotient timeup 
+0x2c75 005773 increase -1 ,timeup 
+0x2c76 005774 branch le_send_att_read_by_type_response_end ,zero 
+:      005775 le_send_att_read_by_type_response_next_handle:
+0x2c77 005776 call le_att_next_handle 
+0x2c78 005777 branch le_send_att_read_by_type_response_loop 
+:      005778 le_send_att_read_by_type_response_end:
+0x2c79 005779 branch le_send_att_error_response_notfound ,user 
+0x2c7a 005780 branch le_send_auto_len_by_mem 
+:      005782 le_send_att_read_by_type_res_found_next:
+0x2c7b 005783 call le_store_att_record 
+0x2c7c 005784 call le_att_next_handle 
+0x2c7d 005785 call le_att_get_handle_info_from_ptr 
+0x2c7e 005786 call le_send_att_read_by_type_res_check_pair_length_type 
+0x2c7f 005787 nbranch le_send_att_read_by_type_response_end ,blank 
+0x2c80 005789 call get_contw 
+0x2c81 005790 fetch 2 ,mem_temp 
+0x2c82 005791 increase -1 ,pdata 
+0x2c83 005792 istore 2 ,contw 
+0x2c84 005793 call le_write_att_record_common 
+0x2c85 005794 call le_send_att_read_by_type_write_uuid 
+0x2c86 005795 increase -1 ,timeup 
+0x2c87 005796 branch le_send_att_read_by_type_response_end ,zero 
+0x2c88 005797 branch le_send_att_read_by_type_response_next_handle 
+:      005800 le_send_att_read_by_type_write_properties:
+0x2c89 005801 fetch 2 ,mem_temp 
+0x2c8a 005802 istore 2 ,contw 
+0x2c8b 005804 fetch 1 ,mem_le_curr_att_len 
+0x2c8c 005805 copy pdata ,loopcnt 
+0x2c8d 005806 call get_contr 
+0x2c8e 005807 call memcpy_fast 
+0x2c8f 005808 branch store_contw 
+:      005809 le_send_att_read_by_type_write_uuid:
+0x2c90 005810 call get_contw 
+0x2c91 005811 fetch 2 ,mem_temp 
+0x2c92 005812 istore 2 ,contw 
+0x2c93 005813 call store_contw 
+0x2c94 005814 fetch 1 ,mem_le_cur_uuid_length 
+0x2c95 005815 copy pdata ,loopcnt 
+0x2c96 005816 call get_contw 
+0x2c97 005817 call get_contr 
+0x2c98 005818 isub loopcnt ,contr 
+0x2c99 005819 increase -1 ,contr 
+0x2c9a 005820 call memcpy_fast 
+0x2c9b 005821 branch store_contw 
+:      005823 le_send_att_read_by_type_res_not_characteristic:
+0x2c9c 005824 bpatchx patch2a_5 ,mem_patch2a 
+0x2c9d 005825 call le_att_get_uuid_ptr 
+0x2c9e 005826 branch le_send_att_error_response_notfound ,blank 
+0x2c9f 005827 copy contr ,regc 
+0x2ca0 005829 call le_get_search_max_mtu_data 
+0x2ca1 005830 copy regc ,contr 
+0x2ca2 005831 ifetcht 1 ,contr 
+0x2ca3 005832 increase 4 ,temp 
+0x2ca4 005833 call not_greater_than 
+0x2ca5 005834 copy pdata ,regc 
+0x2ca6 005835 copy pdata ,rega 
+0x2ca7 005836 call store_contr 
+0x2ca8 005837 call le_fifo_malloc_tx_l2cap_gatt 
+0x2ca9 005839 setarg attop_read_by_type_response 
+0x2caa 005840 istore 1 ,contw 
+0x2cab 005841 add regc ,-2 ,pdata 
+0x2cac 005842 add pdata ,-2 ,loopcnt 
+0x2cad 005843 istore 1 ,contw 
+0x2cae 005844 fetch 2 ,mem_le_cur_handle 
+0x2caf 005845 istore 2 ,contw 
+0x2cb0 005846 call get_contr 
+0x2cb1 005847 branch memcpy_fast 
+:      005850 le_send_att_read_by_type_res_device_name:
+0x2cb2 005851 call le_att_get_uuid_ptr 
+0x2cb3 005852 branch le_send_att_error_response_notfound ,blank 
+0x2cb4 005853 increase -5 ,contr 
+0x2cb5 005854 ifetch 2 ,contr 
+0x2cb6 005855 store 2 ,mem_temp 
+0x2cb7 005856 call le_get_search_max_mtu_data 
+0x2cb8 005857 fetcht 1 ,mem_le_name_len 
+0x2cb9 005858 increase 4 ,temp 
+0x2cba 005859 call not_greater_than 
+0x2cbb 005860 copy pdata ,regc 
+0x2cbc 005861 copy pdata ,rega 
+0x2cbd 005862 call le_fifo_malloc_tx_l2cap_gatt 
+0x2cbe 005863 setarg attop_read_by_type_response 
+0x2cbf 005864 istore 1 ,contw 
+0x2cc0 005865 add regc ,-2 ,pdata 
+0x2cc1 005866 add pdata ,-2 ,loopcnt 
+0x2cc2 005867 istore 1 ,contw 
+0x2cc3 005868 fetch 2 ,mem_temp 
+0x2cc4 005869 istore 2 ,contw 
+0x2cc5 005870 arg mem_le_name ,contr 
+0x2cc6 005871 branch memcpy_fast 
+:      005874 le_init_attlist_search:
+0x2cc7 005875 bpatchx patch2a_6 ,mem_patch2a 
+0x2cc8 005876 fetch 2 ,mem_le_search_handle_start 
+0x2cc9 005877 iforce regb 
+0x2cca 005878 fetch 2 ,mem_le_search_handle_end 
+0x2ccb 005879 iforce regc 
+0x2ccc 005880 fetch 2 ,mem_ui_le_uuid_table 
+0x2ccd 005881 iforce contr 
+0x2cce 005882 branch enable_user 
+:      005886 le_att_get_handle_ptr:
+0x2ccf 005887 call le_att_get_handle_ptr2 
+0x2cd0 005888 branch le_att_get_handle_ptr_found ,zero 
+0x2cd1 005889 rtn 
+:      005891 le_att_get_handle_ptr2:
+0x2cd2 005892 bpatchx patch2a_7 ,mem_patch2a 
+0x2cd3 005893 fetch 2 ,mem_ui_le_uuid_table 
+0x2cd4 005894 iforce contr 
+:      005895 le_att_get_handle_loop1:
+0x2cd5 005896 ifetch 2 ,contr 
+0x2cd6 005897 and_into 0xff ,pdata 
+0x2cd7 005898 rtn blank 
+0x2cd8 005899 isub temp ,null 
+0x2cd9 005900 rtn zero 
+0x2cda 005901 call le_att_contr_add_len 
+0x2cdb 005902 call le_att_contr_add_len 
+0x2cdc 005903 branch le_att_get_handle_loop1 
+:      005905 le_att_get_handle_ptr_found:
+:      005906 le_att_contr_add_len:
+0x2cdd 005907 ifetch 1 ,contr 
+0x2cde 005908 iadd contr ,contr 
+0x2cdf 005909 rtn 
+:      005912 le_att_get_uuid_ptr:
+0x2ce0 005913 bpatchx patch2b_0 ,mem_patch2b 
+0x2ce1 005914 fetch 2 ,mem_ui_le_uuid_table 
+0x2ce2 005915 iforce contr 
+:      005916 le_att_get_uuid_loop:
+0x2ce3 005917 ifetch 2 ,contr 
+0x2ce4 005918 and_into 0xff ,pdata 
+0x2ce5 005919 rtn blank 
+0x2ce6 005920 store 2 ,mem_le_cur_handle 
+0x2ce7 005921 ifetch 1 ,contr 
+0x2ce8 005922 copy contr ,contw 
+0x2ce9 005923 iadd contr ,contr 
+0x2cea 005924 fetcht 1 ,mem_le_search_att_type_length 
+0x2ceb 005925 isub temp ,null 
+0x2cec 005926 nbranch le_att_get_uuid_ptr_next ,zero 
+0x2ced 005927 copy pdata ,loopcnt 
+0x2cee 005928 copy contw ,regb 
+0x2cef 005929 arg mem_le_search_att_type ,rega 
+0x2cf0 005930 call string_compare 
+0x2cf1 005931 rtn zero 
+0x2cf2 005932 fetch 1 ,mem_le_search_att_type_length 
+:      005933 le_att_get_uuid_ptr_next:
+0x2cf3 005934 iadd contw ,contr 
+0x2cf4 005935 call le_att_contr_add_len 
+0x2cf5 005936 branch le_att_get_uuid_loop 
+:      005943 le_att_get_last_handle:
+0x2cf6 005944 arg 0x01 ,temp 
+0x2cf7 005945 fetch 2 ,mem_ui_le_uuid_table 
+0x2cf8 005946 iforce contr 
+0x2cf9 005947 copy contr ,contw 
+:      005948 le_att_get_last_handle_loop:
+0x2cfa 005949 ifetch 2 ,contr 
+0x2cfb 005950 and_into 0xff ,pdata 
+0x2cfc 005951 rtn blank 
+0x2cfd 005952 add pdata ,1 ,temp 
+0x2cfe 005953 call le_att_contr_add_len 
+0x2cff 005954 call le_att_contr_add_len 
+0x2d00 005955 copy contr ,contw 
+0x2d01 005956 branch le_att_get_last_handle_loop 
+:      005959 le_att_get_handle_info_from_ptr:
+0x2d02 005960 fetch 2 ,mem_le_cur_attlist_start_ptr 
+0x2d03 005961 branch le_att_get_handle_info_fast 
+:      005963 le_att_get_handle_info:
+0x2d04 005964 bpatchx patch2b_1 ,mem_patch2b 
+0x2d05 005965 fetch 2 ,mem_ui_le_uuid_table 
+:      005966 le_att_get_handle_info_fast:
+0x2d06 005967 iforce contr 
+:      005968 le_att_get_handle_loop:
+0x2d07 005969 ifetch 2 ,contr 
+0x2d08 005970 and_into 0xff ,pdata 
+0x2d09 005971 branch le_att_unfind_handle ,blank 
+0x2d0a 005972 isub temp ,null 
+0x2d0b 005973 branch le_att_finded_handle ,zero 
+0x2d0c 005974 call le_att_contr_add_len 
+0x2d0d 005975 call le_att_contr_add_len 
+0x2d0e 005976 branch le_att_get_handle_loop 
+:      005978 le_att_unfind_handle:
+0x2d0f 005979 branch disable_blank 
+:      005981 le_att_finded_handle:
+0x2d10 005982 ifetch 1 ,contr 
+0x2d11 005983 store 1 ,mem_le_cur_uuid_length 
+0x2d12 005984 copy pdata ,loopcnt 
+0x2d13 005985 arg mem_le_cur_uuid ,contw 
+0x2d14 005986 call memcpy_fast 
+0x2d15 005987 ifetch 1 ,contr 
+0x2d16 005988 store 1 ,mem_le_curr_att_len 
+0x2d17 005989 call store_contr 
+0x2d18 005990 branch enable_blank 
+:      005994 le_parse_att_read_request:
+0x2d19 005995 call le_check_encrypt_state 
+0x2d1a 005996 fetcht 2 ,mem_le_att_handle 
+0x2d1b 005997 fetch 1 ,mem_le_configuration 
+0x2d1c 005998 bbit1 bit_ble_read_auth ,le_send_att_read_response_check_auth 
+:      006001 le_send_att_read_response:
+0x2d1d 006002 call le_att_get_handle_ptr2 
+0x2d1e 006003 nbranch le_send_att_error_response_notfound ,zero 
+0x2d1f 006004 call le_send_att_read_response_check_handle ,user 
+0x2d20 006005 rtn user 
+0x2d21 006006 call le_att_get_handle_ptr_found 
+0x2d22 006007 increase -2 ,contr 
+0x2d23 006008 ifetch 2 ,contr 
+0x2d24 006009 arg uuid_chrctr_device_name ,temp 
+0x2d25 006010 isub temp ,null 
+0x2d26 006011 branch le_send_device_name ,zero 
+0x2d27 006012 copy contr ,regc 
+0x2d28 006013 call le_get_search_max_mtu_data 
+0x2d29 006014 copy regc ,contr 
+0x2d2a 006015 ifetcht 1 ,contr 
+0x2d2b 006016 increase 1 ,temp 
+0x2d2c 006017 call not_greater_than 
+:      006018 le_send_att_read_response_less:
+0x2d2d 006019 copy pdata ,regc 
+0x2d2e 006020 copy pdata ,rega 
+0x2d2f 006021 call store_contr 
+0x2d30 006022 call le_fifo_malloc_tx_l2cap_gatt 
+0x2d31 006023 setarg attop_read_response 
+0x2d32 006024 istore 1 ,contw 
+0x2d33 006025 add regc ,-1 ,loopcnt 
+0x2d34 006026 call get_contr 
+0x2d35 006027 branch memcpy 
+:      006029 le_send_device_name:
+0x2d36 006030 call le_get_search_max_mtu_data 
+0x2d37 006031 fetcht 1 ,mem_le_name_len 
+0x2d38 006032 increase 1 ,temp 
+0x2d39 006033 call not_greater_than 
+0x2d3a 006034 copy pdata ,regc 
+0x2d3b 006035 copy pdata ,rega 
+0x2d3c 006037 call le_fifo_malloc_tx_l2cap_gatt 
+0x2d3d 006038 setarg attop_read_response 
+0x2d3e 006039 istore 1 ,contw 
+0x2d3f 006040 add regc ,-1 ,loopcnt 
+0x2d40 006041 arg mem_le_name ,contr 
+0x2d41 006042 branch memcpy 
+:      006045 le_send_att_read_response_check_auth:
+0x2d42 006046 fetch 2 ,mem_le_pairing_handle 
+0x2d43 006047 isub temp ,null 
+0x2d44 006048 nbranch le_send_att_read_response ,zero 
+0x2d45 006049 nbranch le_send_att_read_response ,user 
+:      006050 le_send_att_read_response_error_insufficient_auth:
+0x2d46 006051 jam att_err_insufficient_authentication ,mem_le_err_code 
+0x2d47 006052 branch le_send_att_error_response 
+:      006054 le_send_att_read_response_check_handle:
+0x2d48 006055 increase -2 ,contr 
+0x2d49 006056 ifetch 2 ,contr 
+0x2d4a 006057 bbit1 bit_of_att_handle_read_authenticated ,le_send_att_read_response_error_insufficient_auth 
+0x2d4b 006058 branch disable_user 
+:      006060 le_parse_att_read_blob_request:
+0x2d4c 006061 ifetch 2 ,contr 
+0x2d4d 006062 store 2 ,mem_le_att_offset 
+0x2d4e 006063 iforce rega 
+0x2d4f 006064 fetcht 2 ,mem_le_att_handle 
+:      006065 le_send_att_read_blob_response:
+0x2d50 006066 call le_att_get_handle_ptr 
+0x2d51 006067 branch le_send_att_error_response_notfound ,blank 
+0x2d52 006068 ifetch 1 ,contr 
+0x2d53 006069 isub rega ,loopcnt 
+0x2d54 006070 nbranch le_send_att_error_response_notfound ,positive 
+0x2d55 006071 call store_contr 
+0x2d56 006072 call le_get_search_max_mtu_data 
+0x2d57 006073 add loopcnt ,1 ,temp 
+0x2d58 006074 call not_greater_than 
+:      006075 le_send_att_read_blob_response_less:
+0x2d59 006076 copy pdata ,rega 
+0x2d5a 006077 copy pdata ,regc 
+0x2d5b 006078 call le_fifo_malloc_tx_l2cap_gatt 
+0x2d5c 006079 setarg attop_read_blob_response 
+0x2d5d 006080 istore 1 ,contw 
+0x2d5e 006081 add regc ,-1 ,loopcnt 
+0x2d5f 006082 fetcht 2 ,mem_le_att_offset 
+0x2d60 006083 call get_contr 
+0x2d61 006084 iadd temp ,contr 
+0x2d62 006085 branch memcpy_fast 
+:      006089 le_parse_att_read_by_group_type_request:
+0x2d63 006090 call le_get_search_handle_start_end_common 
+0x2d64 006091 call le_get_search_att_type 
+0x2d65 006092 branch le_send_att_read_by_group_type_response 
+:      006098 le_send_att_read_by_group_type_response:
+0x2d66 006099 arg 2 ,timeup 
+0x2d67 006100 fetcht 2 ,mem_le_search_handle_start 
+0x2d68 006101 storet 2 ,mem_temp 
+0x2d69 006102 call le_att_get_handle_ptr2 
+0x2d6a 006103 increase -2 ,contr 
+0x2d6b 006104 copy contr ,pdata 
+0x2d6c 006105 store 2 ,mem_le_cur_attlist_start_ptr 
+:      006106 le_send_att_read_by_group_type_response_loop:
+0x2d6d 006107 call le_att_check_handle_end 
+0x2d6e 006108 nbranch le_send_att_read_by_group_type_end0 ,positive 
+0x2d6f 006109 fetcht 2 ,mem_temp 
+0x2d70 006110 call le_att_get_handle_info_from_ptr 
+0x2d71 006111 nbranch le_send_att_read_by_group_type_end1 ,blank 
+0x2d72 006113 call le_att_same_type 
+0x2d73 006114 nbranch le_send_att_read_by_group_type_next_handle ,zero 
+0x2d74 006115 copy timeup ,pdata 
+0x2d75 006116 beq 0 ,le_send_att_read_by_group_type_end1 
+0x2d76 006117 nbranch le_send_att_read_by_group_type_store_write_record ,user 
+0x2d77 006118 disable user 
+0x2d78 006120 call le_get_search_max_mtu_data 
+0x2d79 006121 copy pdata ,rega 
+0x2d7a 006122 call le_fifo_malloc_tx_l2cap_gatt 
+0x2d7b 006123 setarg attop_read_by_group_type_response 
+0x2d7c 006124 istore 1 ,contw 
+0x2d7d 006125 fetch 1 ,mem_le_curr_att_len 
+0x2d7e 006126 add pdata ,4 ,rega 
+0x2d7f 006127 istorer rega ,1 ,contw 
+0x2d80 006128 call store_contw 
+0x2d81 006129 sub rega ,6 ,null 
+0x2d82 006130 ncall enable_user2 ,zero 
+0x2d83 006131 call disable_user2 ,zero 
+0x2d84 006132 call le_get_search_max_mtu_data 
+0x2d85 006133 increase -2 ,pdata 
+0x2d86 006134 idiv rega 
+0x2d87 006135 call wait_div_end 
+0x2d88 006136 quotient timeup 
+0x2d89 006137 branch le_send_att_read_by_group_type_store_record 
+:      006138 le_send_att_read_by_group_type_store_write_record:
+0x2d8a 006139 call le_send_att_read_by_group_type_check_pair_length_type 
+0x2d8b 006140 nbranch le_send_att_read_by_group_type_end1 ,blank 
+0x2d8c 006141 fetch 2 ,mem_temp 
+0x2d8d 006142 increase -1 ,pdata 
+0x2d8e 006143 store 2 ,mem_le_cur_handle_end 
+0x2d8f 006144 call le_write_att_record 
+:      006145 le_send_att_read_by_group_type_store_record:
+0x2d90 006146 fetch 2 ,mem_temp 
+0x2d91 006147 store 2 ,mem_le_cur_handle_start 
+0x2d92 006148 call le_store_att_record 
+0x2d93 006149 increase -1 ,timeup 
+:      006151 le_send_att_read_by_group_type_next_handle:
+0x2d94 006152 call le_att_next_handle 
+0x2d95 006153 branch le_send_att_read_by_group_type_response_loop 
+:      006155 le_send_att_read_by_type_res_check_pair_length_type:
+0x2d96 006156 fetch 1 ,mem_le_cur_uuid_length 
+0x2d97 006157 branch le_send_att_read_by_group_type_check_pair_length_type + 1 
+:      006160 le_send_att_read_by_group_type_check_pair_length_type:
+0x2d98 006161 fetch 1 ,mem_le_curr_att_len 
+0x2d99 006162 branch le_send_att_read_by_group_type_check_pair_length_type_16byte ,user2 
+0x2d9a 006163 increase -2 ,pdata 
+0x2d9b 006164 rtn 
+:      006166 le_send_att_read_by_group_type_check_pair_length_type_16byte:
+0x2d9c 006167 increase -16 ,pdata 
+0x2d9d 006168 rtn 
+:      006170 le_send_att_read_by_group_type_end0:
+0x2d9e 006171 fetch 2 ,mem_temp 
+0x2d9f 006172 store 2 ,mem_le_cur_handle_end 
+0x2da0 006173 branch le_send_att_read_by_group_type_end_common 
+:      006174 le_send_att_read_by_group_type_end1:
+0x2da1 006175 fetch 2 ,mem_temp 
+0x2da2 006176 increase -1 ,pdata 
+0x2da3 006177 store 2 ,mem_le_cur_handle_end 
+0x2da4 006178 branch le_send_att_read_by_group_type_end_common 
+:      006179 le_send_att_read_by_group_type_end_common:
+0x2da5 006180 branch le_send_att_error_response_notfound ,user 
+0x2da6 006181 call le_write_att_record 
+0x2da7 006182 branch le_send_auto_len_by_mem 
+:      006187 le_parse_att_write_request:
+0x2da8 006188 copy contr ,rega 
+0x2da9 006189 fetch 2 ,mem_le_l2cap_size 
+0x2daa 006190 add pdata ,-3 ,regb 
+0x2dab 006191 call le_writeatt_cb 
+:      006192 le_send_att_write_response_check_auth:
+0x2dac 006193 bpatchx patch2b_2 ,mem_patch2b 
+0x2dad 006194 call le_check_encrypt_state 
+0x2dae 006195 fetcht 2 ,mem_le_att_handle 
+0x2daf 006196 call le_att_get_handle_ptr2 
+0x2db0 006197 nbranch le_send_att_write_response_error_invalid_handle ,zero 
+0x2db1 006198 call le_send_att_write_response_check_handle ,user 
+0x2db2 006199 rtn user 
+0x2db3 006201 fetch 1 ,mem_le_configuration 
+0x2db4 006202 bbit0 bit_ble_write_auth ,le_send_att_write_response 
+0x2db5 006204 fetcht 2 ,mem_le_att_handle 
+0x2db6 006205 fetch 2 ,mem_le_pairing_handle 
+0x2db7 006206 isub temp ,null 
+0x2db8 006207 nbranch le_send_att_write_response ,zero 
+0x2db9 006208 call le_check_encrypt_state 
+0x2dba 006209 nbranch le_send_att_write_response ,user 
+0x2dbb 006210 branch le_send_att_read_response_error_insufficient_auth 
+:      006213 le_send_att_write_response:
+0x2dbc 006214 force 1 ,rega 
+0x2dbd 006215 call le_fifo_malloc_tx_l2cap_gatt 
+0x2dbe 006216 setarg attop_write_response 
+0x2dbf 006217 istore 1 ,contw 
+0x2dc0 006218 rtn 
+:      006220 le_send_att_write_response_check_handle:
+0x2dc1 006221 increase -2 ,contr 
+0x2dc2 006222 ifetch 2 ,contr 
+0x2dc3 006223 bbit1 bit_of_att_handle_write_authenticated ,le_send_att_read_response_error_insufficient_auth 
+0x2dc4 006224 branch disable_user 
+:      006226 le_send_att_write_response_error_invalid_handle:
+0x2dc5 006227 jam att_err_invalid_handle ,mem_le_err_code 
+0x2dc6 006228 branch le_send_att_error_response 
+:      006231 le_check_encrypt_state:
+0x2dc7 006232 bpatchx patch2b_3 ,mem_patch2b 
+0x2dc8 006233 call disable_user 
+0x2dc9 006234 fetch 1 ,mem_le_pairing_mode 
+0x2dca 006235 rtneq le_pairing_mode_none 
+0x2dcb 006236 fetch 1 ,mem_context 
+0x2dcc 006237 rtnbit1 lestate_encryption 
+0x2dcd 006238 branch enable_user 
+:      006241 le_parse_att_prepare_write_request:
+0x2dce 006242 add contr ,2 ,rega 
+0x2dcf 006243 fetch 2 ,mem_le_l2cap_size 
+0x2dd0 006244 add pdata ,-5 ,regb 
+0x2dd1 006245 call le_writeatt_cb 
+0x2dd2 006246 branch le_send_att_prepare_write_response 
+:      006249 le_send_att_prepare_write_response:
+0x2dd3 006250 fetch 2 ,mem_le_l2cap_size 
+0x2dd4 006251 copy pdata ,rega 
+0x2dd5 006252 call le_fifo_malloc_tx_l2cap_gatt 
+0x2dd6 006253 setarg attop_prepare_write_response 
+0x2dd7 006254 istore 1 ,contw 
+0x2dd8 006255 fetch 2 ,mem_le_att_handle 
+0x2dd9 006256 istore 2 ,contw 
+0x2dda 006257 fetch 2 ,mem_le_l2cap_size 
+0x2ddb 006258 add pdata ,-5 ,loopcnt 
+0x2ddc 006259 fetch 2 ,mem_le_payload_ptr 
+0x2ddd 006260 add pdata ,7 ,contr 
+0x2dde 006261 ifetch 2 ,contr 
+0x2ddf 006262 istore 2 ,contw 
+0x2de0 006263 branch memcpy_fast 
+:      006267 le_parse_att_execute_write_request:
+:      006269 le_send_att_execute_write_response:
+0x2de1 006270 force 1 ,rega 
+0x2de2 006271 call le_fifo_malloc_tx_l2cap_gatt 
+0x2de3 006272 setarg attop_execute_write_response 
+0x2de4 006273 istore 1 ,contw 
+0x2de5 006274 rtn 
+:      006276 le_parse_handle_value_confirmation:
+0x2de6 006277 fetch 1 ,mem_le_l2cap_att_states 
+0x2de7 006278 set0 ble_l2cap_recv_confirmation_packet ,pdata 
+0x2de8 006279 store 1 ,mem_le_l2cap_att_states 
+0x2de9 006280 rtn 
+:      006282 le_parse_att_write_command:
+0x2dea 006283 copy contr ,rega 
+0x2deb 006284 fetch 2 ,mem_le_l2cap_size 
+0x2dec 006285 add pdata ,-3 ,regb 
+0x2ded 006286 branch le_writeatt_cb 
+:      006291 le_att_malloc_tx_notify:
+0x2dee 006292 copy temp ,regc 
+0x2def 006293 increase 3 ,rega 
+0x2df0 006294 call le_fifo_malloc_tx_l2cap_gatt 
+0x2df1 006295 increase -3 ,rega 
+0x2df2 006296 setarg attop_handle_value_notification 
+0x2df3 006297 istore 1 ,contw 
+0x2df4 006298 copy regc ,temp 
+0x2df5 006299 istoret 2 ,contw 
+0x2df6 006300 rtn 
+:      006303 le_att_malloc_tx_indication:
+0x2df7 006304 fetch 1 ,mem_le_l2cap_att_states 
+0x2df8 006305 set1 ble_l2cap_send_indication_packet ,pdata 
+0x2df9 006306 store 1 ,mem_le_l2cap_att_states 
+0x2dfa 006307 copy temp ,regc 
+0x2dfb 006308 increase 3 ,rega 
+0x2dfc 006309 call le_fifo_malloc_tx_l2cap_gatt 
+0x2dfd 006310 increase -3 ,rega 
+0x2dfe 006311 setarg attop_handle_value_indication 
+0x2dff 006312 istore 1 ,contw 
+0x2e00 006313 copy regc ,temp 
+0x2e01 006314 istoret 2 ,contw 
+0x2e02 006315 rtn 
+:      006320 le_send_att_error_response_notfound:
+0x2e03 006321 bpatchx patch2b_4 ,mem_patch2b 
+0x2e04 006322 jam att_err_attribute_not_found ,mem_le_err_code 
+:      006323 le_send_att_error_response:
+0x2e05 006324 force 5 ,rega 
+0x2e06 006325 call le_fifo_malloc_tx_l2cap_gatt 
+0x2e07 006326 setarg attop_error_response 
+0x2e08 006327 istore 1 ,contw 
+0x2e09 006328 fetch 1 ,mem_le_att_opcode 
+0x2e0a 006329 istore 1 ,contw 
+0x2e0b 006330 fetch 2 ,mem_le_att_handle 
+0x2e0c 006331 istore 2 ,contw 
+0x2e0d 006332 fetch 1 ,mem_le_err_code 
+0x2e0e 006333 istore 1 ,contw 
+0x2e0f 006334 rtn 
+:      006337 le_fifo_malloc_tx_l2cap_gatt:
+0x2e10 006338 bpatchx patch2b_5 ,mem_patch2b 
+0x2e11 006339 force le_l2cap_cid_att ,regb 
+0x2e12 006340 branch le_fifo_malloc_tx_l2cap 
+:      006343 le_att_next_handle:
+0x2e13 006344 fetcht 2 ,mem_temp 
+0x2e14 006345 increase 1 ,temp 
+0x2e15 006346 storet 2 ,mem_temp 
+0x2e16 006347 rtn 
+:      006349 le_att_check_handle_end:
+0x2e17 006350 fetcht 2 ,mem_temp 
+0x2e18 006351 fetch 2 ,mem_le_search_handle_end 
+0x2e19 006352 isub temp ,null 
+0x2e1a 006353 rtn 
+:      006356 le_att_same_type:
+0x2e1b 006357 bpatchx patch2b_6 ,mem_patch2b 
+0x2e1c 006358 fetcht 1 ,mem_le_search_att_type_length 
+0x2e1d 006359 arg mem_le_search_att_type ,rega 
+:      006360 le_att_check_same_common:
+0x2e1e 006361 fetch 1 ,mem_le_cur_uuid_length 
+0x2e1f 006362 copy pdata ,loopcnt 
+0x2e20 006363 isub temp ,null 
+0x2e21 006364 nrtn zero 
+0x2e22 006365 arg mem_le_cur_uuid ,regb 
+0x2e23 006366 branch string_compare 
+:      006369 le_store_att_record:
+0x2e24 006370 bpatchx patch2b_7 ,mem_patch2b 
+0x2e25 006371 fetch 1 ,mem_le_curr_att_len 
+0x2e26 006372 store 1 ,mem_temp_block0 
+0x2e27 006373 copy pdata ,loopcnt 
+0x2e28 006374 call get_contr 
+0x2e29 006375 branch memcpy_fast 
+:      006378 le_write_att_record:
+0x2e2a 006379 bpatchx patch2c_0 ,mem_patch2c 
+0x2e2b 006380 call get_contw 
+0x2e2c 006381 fetch 2 ,mem_le_cur_handle_start 
+0x2e2d 006382 istore 2 ,contw 
+0x2e2e 006383 fetch 2 ,mem_le_cur_handle_end 
+0x2e2f 006384 istore 2 ,contw 
+:      006385 le_write_att_record_common:
+0x2e30 006386 fetch 1 ,mem_temp_block0 
+0x2e31 006387 copy pdata ,loopcnt 
+0x2e32 006388 call memcpy_fast 
+0x2e33 006389 branch store_contw 
+:      006393 le_send_auto_len_by_mem:
+0x2e34 006394 bpatchx patch2c_1 ,mem_patch2c 
+0x2e35 006395 call get_contw 
+0x2e36 006396 call le_fifo_get_last_att_ptr 
+0x2e37 006397 copy contw ,pdata 
+0x2e38 006398 isub contr ,rega 
+0x2e39 006399 call le_fifo_get_last_l2cap_ptr 
+0x2e3a 006400 copy rega ,pdata 
+0x2e3b 006401 istore 2 ,contr 
+0x2e3c 006402 increase 4 ,rega 
+0x2e3d 006403 call le_fifo_get_last_tx_ptr 
+0x2e3e 006404 copy rega ,pdata 
+0x2e3f 006405 istore 1 ,contr 
+0x2e40 006406 rtn 
+:      006409 le_get_search_handle_start_end_common:
+0x2e41 006410 rshift8 pdata ,pdata 
+0x2e42 006411 store 2 ,mem_le_search_handle_start 
+0x2e43 006412 ifetch 2 ,contr 
+0x2e44 006413 store 2 ,mem_le_search_handle_end 
+0x2e45 006414 rtn 
+:      006417 le_get_search_max_mtu_data:
+0x2e46 006418 bpatchx patch2c_2 ,mem_patch2c 
+0x2e47 006419 fetch 2 ,mem_le_remote_mtu 
+0x2e48 006421 fetcht 2 ,mem_le_local_mtu 
+0x2e49 006425 branch not_greater_than 
+:      006429 le_get_search_att_type:
+0x2e4a 006430 bpatchx patch2c_3 ,mem_patch2c 
+0x2e4b 006431 call store_contr 
+0x2e4c 006432 arg mem_le_search_att_type_length ,contw 
+:      006433 le_get_search_common:
+0x2e4d 006434 fetch 2 ,mem_le_l2cap_size 
+0x2e4e 006435 increase -5 ,pdata 
+:      006436 le_get_search_common2:
+0x2e4f 006437 istore 1 ,contw 
+0x2e50 006438 copy pdata ,loopcnt 
+0x2e51 006439 call get_contr 
+0x2e52 006440 branch memcpy_fast 
+:      006444 le_parse_writing_attribute_start:
+0x2e53 006445 fetch 2 ,mem_le_rxbuf_data_att_cid 
+0x2e54 006446 rtnne le_l2cap_cid_att 
+0x2e55 006447 fetch 1 ,mem_le_l2cap_att_states 
+0x2e56 006448 set1 ble_l2cap_deal_with_continue_packet ,pdata 
+0x2e57 006449 store 1 ,mem_le_l2cap_att_states 
+0x2e58 006450 fetch 3 ,mem_le_rxbuf_data_att_opcode 
+0x2e59 006451 store 3 ,mem_le_att_opcode 
+0x2e5a 006452 set1 mark_old_packet ,mark 
+0x2e5b 006453 beq attop_write_request ,le_parse_attribute_write_request 
+0x2e5c 006454 beq attop_write_command ,le_parse_attribute_write_command 
+0x2e5d 006455 beq attop_execute_write_request ,le_parse_att_execute_write_request 
+0x2e5e 006456 beq attop_exchange_mtu_request ,le_parse_att_exchange_mtu_request 
+0x2e5f 006457 beq attop_handle_value_confirmation ,le_parse_handle_value_confirmation 
+0x2e60 006458 set0 mark_old_packet ,mark 
+:      006459 le_clear_l2cap_att_states_deal_with_contiune_packet:
+0x2e61 006460 fetch 1 ,mem_le_l2cap_att_states 
+0x2e62 006461 set0 ble_l2cap_deal_with_continue_packet ,pdata 
+0x2e63 006462 store 1 ,mem_le_l2cap_att_states 
+0x2e64 006463 rtn 
+:      006465 le_parse_writing_attribute_continue:
+0x2e65 006466 fetch 1 ,mem_le_l2cap_att_states 
+0x2e66 006467 rtnbit0 ble_l2cap_deal_with_continue_packet 
+0x2e67 006468 set1 mark_old_packet ,mark 
+0x2e68 006469 call le_parse_l2cap_continue_common 
+0x2e69 006470 call le_parse_attribute_check_complete_packet 
+0x2e6a 006471 call le_clear_l2cap_att_states_deal_with_contiune_packet ,user 
+0x2e6b 006472 fetch 1 ,mem_le_att_opcode 
+0x2e6c 006473 beq attop_write_request ,le_send_att_write_response_check_auth 
+0x2e6d 006474 rtn 
+:      006477 le_parse_attribute_write_request:
+0x2e6e 006478 call le_parse_attribute_write_command 
+0x2e6f 006479 branch le_send_attribute_write_response_check_auth 
+:      006481 le_send_attribute_write_response_check_auth:
+0x2e70 006482 call le_parse_attribute_check_complete_packet 
+0x2e71 006483 nrtn user 
+0x2e72 006484 branch le_send_att_write_response_check_auth 
+:      006487 le_parse_attribute_write_command:
+0x2e73 006488 bpatchx patch2c_4 ,mem_patch2c 
+0x2e74 006489 call le_parse_attribute_check_complete_packet_init 
+0x2e75 006490 arg mem_le_rxbuf_data_att_write_payload ,rega 
+0x2e76 006491 branch le_writeatt_cb 
+:      006494 le_parse_attribute_check_complete_packet_init:
+0x2e77 006495 fetch 1 ,mem_le_rxbuf_data_att_write_length 
+0x2e78 006496 add pdata ,-7 ,regb 
+0x2e79 006497 increase -4 ,pdata 
+0x2e7a 006498 store 2 ,mem_le_packet_len_recved 
+0x2e7b 006499 fetcht 2 ,mem_le_rxbuf_data_att_write_l2cap_length 
+0x2e7c 006500 storet 2 ,mem_le_l2cap_size 
+0x2e7d 006501 rtn 
+:      006504 le_parse_l2cap_continue_common:
+0x2e7e 006505 fetchr regb ,1 ,mem_le_rxbuf_data_continue_length 
+0x2e7f 006506 fetch 2 ,mem_le_packet_len_recved 
+0x2e80 006507 iadd regb ,temp 
+0x2e81 006508 storet 2 ,mem_le_packet_len_recved 
+0x2e82 006509 arg mem_le_rxbuf_data_continue_payload ,rega 
+0x2e83 006510 branch le_writeatt_cb 
+:      006514 le_parse_attribute_check_complete_packet:
+0x2e84 006515 call disable_user 
+0x2e85 006516 fetch 2 ,mem_le_packet_len_recved 
+0x2e86 006517 fetcht 2 ,mem_le_l2cap_size 
+0x2e87 006518 isub temp ,null 
+0x2e88 006519 nrtn zero 
+0x2e89 006520 branch enable_user 
+:      006526 le_parse_signaling:
+0x2e8a 006527 ifetch 1 ,contr 
+0x2e8b 006528 ifetcht 1 ,contr 
+0x2e8c 006529 ifetcht 2 ,contr 
+0x2e8d 006530 beq l2cap_connection_parameter_update_response ,le_l2cap_parse_conn_parameter_update_rsp 
+0x2e8e 006531 rtn 
+:      006532 le_l2cap_parse_conn_parameter_update_rsp:
+0x2e8f 006533 ifetch 2 ,contr 
+0x2e90 006534 store 2 ,mem_le_l2cap_signaling_conn_param_update_rsp_result 
+0x2e91 006535 jam bt_evt_le_parse_conn_papa_update_rsp ,mem_fifo_temp 
+0x2e92 006536 branch ui_ipc_send_event 
+:      006542 le_l2cap_tx_update_req:
+0x2e93 006543 arg 0x0c ,rega 
+0x2e94 006544 arg l2cap_connection_parameter_update_request ,regc 
+0x2e95 006545 call le_fifo_malloc_tx_l2cap_signaling 
+0x2e96 006546 setarg 0x08 
+0x2e97 006547 istore 2 ,contw 
+0x2e98 006548 fetch 8 ,mem_le_interval_min 
+0x2e99 006549 istore 8 ,contw 
+0x2e9a 006550 rtn 
+:      006554 le_fifo_malloc_tx_l2cap_signaling:
+0x2e9b 006555 call le_l2cap_update_signaling_identifier 
+0x2e9c 006556 arg le_l2cap_cid_signal ,regb 
+0x2e9d 006557 call le_fifo_malloc_tx_l2cap 
+0x2e9e 006558 copy regc ,pdata 
+0x2e9f 006559 istore 1 ,contw 
+0x2ea0 006560 fetch 1 ,mem_le_signaling_identifier 
+0x2ea1 006561 istore 1 ,contw 
+0x2ea2 006562 rtn 
+:      006565 le_l2cap_update_signaling_identifier:
+0x2ea3 006566 fetch 1 ,mem_le_signaling_identifier 
+0x2ea4 006568 pincrease 1 
+0x2ea5 006569 store 1 ,mem_le_signaling_identifier 
+0x2ea6 006570 rtnne 0 
+:      006572 le_l2cap_reset_signaling_identifier:
+0x2ea7 006573 jam 1 ,mem_le_signaling_identifier 
+0x2ea8 006574 rtn 
+:      006579 le_pairing_mode_init:
+0x2ea9 006580 fetch 1 ,mem_le_pairing_mode 
+0x2eaa 006581 beq le_pairing_mode_none ,le_set_no_pairing 
+0x2eab 006582 beq le_pairing_mode_lagacy_justwork ,le_set_pairing_mode_lagacy_just_work 
+0x2eac 006583 beq le_pairing_mode_lagacy_passkey ,le_set_pairing_mode_lagacy_passkey 
+0x2ead 006584 beq le_pairing_mode_secure_connect_justwork ,le_set_pairing_mode_secure_justwork 
+0x2eae 006585 beq le_pairing_mode_secure_connect_numeric ,le_set_pairing_mode_secure_numeric 
+0x2eaf 006586 beq le_pairing_mode_secure_connect_passkey ,le_set_pairing_mode_secure_passkey 
+0x2eb0 006587 rtn 
+:      006589 le_set_pairing_mode_secure_justwork:
+0x2eb1 006590 jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
+0x2eb2 006591 branch le_set_noinputnooutput 
+:      006592 le_set_pairing_mode_secure_numeric:
+0x2eb3 006593 jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
+0x2eb4 006594 jam flag_iocap_displayyesno ,mem_le_pres_iocap 
+0x2eb5 006595 rtn 
+:      006596 le_set_pairing_mode_secure_passkey:
+0x2eb6 006597 jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
+0x2eb7 006598 branch le_set_displayonly 
+:      006600 le_set_no_pairing:
+0x2eb8 006601 jam flag_le_no_bonding_no_mitm ,mem_le_pres_auth 
+:      006602 le_set_noinputnooutput:
+0x2eb9 006603 jam flag_iocap_noinputnooutput ,mem_le_pres_iocap 
+0x2eba 006604 rtn 
+:      006605 le_set_pairing_mode_lagacy_just_work:
+0x2ebb 006606 jam flag_le_bonding_mitm ,mem_le_pres_auth 
+0x2ebc 006607 branch le_set_noinputnooutput 
+:      006608 le_set_pairing_mode_lagacy_passkey:
+0x2ebd 006609 jam flag_le_bonding_mitm ,mem_le_pres_auth 
+:      006610 le_set_displayonly:
+0x2ebe 006611 jam flag_iocap_displayonly ,mem_le_pres_iocap 
+0x2ebf 006612 rtn 
+:      006614 le_secure_connection_enable:
+0x2ec0 006615 fetch 1 ,mem_secure_connections_enable 
+0x2ec1 006616 set1 secure_connections_le_bit ,pdata 
+0x2ec2 006617 store 1 ,mem_secure_connections_enable 
+0x2ec3 006618 rtn 
+:      006620 le_secure_connection_disable:
+0x2ec4 006621 fetch 1 ,mem_secure_connections_enable 
+0x2ec5 006622 set0 secure_connections_le_bit ,pdata 
+0x2ec6 006623 store 1 ,mem_secure_connections_enable 
+0x2ec7 006624 rtn 
+:      006626 le_parse_smp:
+0x2ec8 006627 ifetch 1 ,contr 
+0x2ec9 006628 beq smp_pairing_request ,le_parse_smp_pairing_request 
+0x2eca 006630 beq smp_pairing_confirm ,le_parse_smp_pairing_confirm 
+0x2ecb 006631 beq smp_pairing_random ,le_parse_smp_pairing_random 
+0x2ecc 006632 beq smp_pairing_failed ,le_parse_smp_pairing_failed 
+0x2ecd 006634 beq smp_master_identification ,le_parse_smp_master_identification 
+0x2ece 006635 beq smp_identity_information ,le_parse_smp_identity_information 
+0x2ecf 006636 beq smp_identity_address_information ,le_parse_smp_identity_address_information 
+0x2ed0 006637 beq smp_signing_information ,le_parse_smp_signing_information 
+0x2ed1 006638 beq smp_security_request ,le_parse_smp_security_request 
+0x2ed2 006639 beq smp_pairing_public_key ,le_parse_smp_public_key 
+0x2ed3 006640 beq smp_pairing_dhkey_check ,le_parse_smp_dhkey_check 
+0x2ed4 006641 rtn 
+:      006645 le_send_smp_security_request:
+0x2ed5 006646 force 2 ,rega 
+0x2ed6 006647 call le_fifo_malloc_tx_l2cap_smp 
+0x2ed7 006648 setarg smp_security_request 
+0x2ed8 006649 istore 1 ,contw 
+0x2ed9 006650 fetch 1 ,mem_le_pres_auth 
+0x2eda 006651 istore 1 ,contw 
+0x2edb 006652 rtn 
+:      006654 le_parse_smp_pairing_request:
+0x2edc 006655 store 1 ,mem_le_preq 
+0x2edd 006656 ifetch 6 ,contr 
+0x2ede 006657 istore 6 ,contw 
+0x2edf 006658 fetch 1 ,mem_le_pairing_mode 
+0x2ee0 006659 beq le_pairing_mode_none ,le_smp_pairing_fail_reason_not_support_pairing 
+0x2ee1 006660 call le_send_smp_pairing_response 
+0x2ee2 006661 fetch 1 ,mem_sc_only_mode 
+0x2ee3 006662 branch le_parse_smp_pairing_request2 ,blank 
+0x2ee4 006663 fetch 1 ,mem_le_preq_auth 
+0x2ee5 006664 bbit0 le_auth_secure_connection_pairing_bit ,app_ble_disconnect 
+0x2ee6 006665 fetch 1 ,mem_le_pairing_mode 
+0x2ee7 006666 bbit0 le_pairing_mode_secure_connect_bit ,app_ble_disconnect 
+:      006667 le_parse_smp_pairing_request2:
+0x2ee8 006668 jam flag_le_pairing_rcv_pairing_req ,mem_le_pairing_state 
+0x2ee9 006669 fetch 1 ,mem_le_preq_iocap 
+0x2eea 006670 beq flag_iocap_displayonly ,le_set_tk_0 
+0x2eeb 006671 beq flag_iocap_displayyesno ,le_set_tk_0 
+0x2eec 006672 beq flag_iocap_noinputnooutput ,le_set_tk_0 
+0x2eed 006673 fetch 1 ,mem_le_pairing_mode 
+0x2eee 006674 beq le_pairing_mode_lagacy_passkey ,le_parse_smp_pairing_req_passkey 
+0x2eef 006675 rtneq le_pairing_mode_secure_connect_passkey 
+:      006676 le_set_tk_0:
+0x2ef0 006677 arg 0 ,pdata 
+0x2ef1 006678 store 4 ,mem_le_tk 
+0x2ef2 006679 rtn 
+:      006681 le_parse_smp_pairing_req_passkey:
+0x2ef3 006682 fetch 1 ,mem_le_configuration 
+0x2ef4 006683 bbit1 bit_ble_passkey_fixed_key ,le_parse_smp_pairing_req_fixed_passkey 
+:      006684 le_genernate_tk:
+0x2ef5 006685 arg mem_le_tk ,rega 
+0x2ef6 006686 copy rega ,contw 
+0x2ef7 006687 arg 3 ,loopcnt 
+0x2ef8 006688 call generate_random_loop 
+0x2ef9 006689 fetch 2 ,mem_le_tk + 2 
+0x2efa 006690 and_into 0x7 ,pdata 
+0x2efb 006691 store 2 ,mem_le_tk + 2 
+:      006692 le_parse_smp_pairing_req_fixed_passkey:
+0x2efc 006693 jam bt_evt_le_tk_generate ,mem_fifo_temp 
+0x2efd 006694 branch ui_ipc_send_event 
+:      006698 le_send_smp_pairing_response:
+0x2efe 006699 force 7 ,rega 
+0x2eff 006700 call le_fifo_malloc_tx_l2cap_smp 
+0x2f00 006701 fetch 7 ,mem_le_pres 
+0x2f01 006702 istore 7 ,contw 
+0x2f02 006703 rtn 
+:      006706 le_parse_smp_pairing_confirm:
+0x2f03 006707 jam flag_le_pairing_receive_pairing_confirm ,mem_le_pairing_state 
+0x2f04 006708 arg mem_le_rconfirm ,contw 
+0x2f05 006709 call memcpy16 
+0x2f06 006710 fetch 1 ,mem_le_pairing_mode 
+0x2f07 006711 beq le_pairing_mode_lagacy_passkey_res_input ,le_parse_smp_pairing_confirm_passkey_res_input 
+0x2f08 006712 beq le_pairing_mode_secure_connect_passkey ,le_parse_smp_pairing_confirm_secure_passkey 
+0x2f09 006713 beq le_pairing_mode_secure_connect_passkey_res_input ,le_parse_smp_pairing_confirm_sc_passkey_res_input 
+0x2f0a 006714 branch le_send_smp_pairing_confirm 
+:      006717 le_parse_smp_pairing_confirm_passkey_res_input:
+0x2f0b 006718 jam bt_evt_le_get_passkey ,mem_fifo_temp 
+0x2f0c 006719 branch ui_ipc_send_event 
+:      006721 le_parse_smp_pairing_confirm_secure_passkey:
+0x2f0d 006722 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+0x2f0e 006723 jam le_sc_stat_passkey_wait_confirm ,mem_le_secure_connect_state 
+0x2f0f 006724 rtn 
+:      006726 le_parse_smp_pairing_confirm_sc_passkey_res_input:
+0x2f10 006727 fetch 4 ,mem_le_tk 
+0x2f11 006728 branch le_parse_smp_pairing_confirm_passkey_res_input ,blank 
+0x2f12 006729 branch le_parse_smp_pairing_confirm_secure_passkey 
+:      006731 le_send_smp_pairing_confirm:
+0x2f13 006732 jam flag_le_pairing_send_pairing_confirm ,mem_le_pairing_state 
+0x2f14 006733 fetch 1 ,mem_le_pairing_mode 
+0x2f15 006734 bbit1 le_pairing_mode_secure_connect_bit ,le_send_smp_pairing_confirm_sc 
+0x2f16 006735 call generate_confirm 
+0x2f17 006736 force 17 ,rega 
+0x2f18 006737 call le_fifo_malloc_tx_l2cap_smp 
+0x2f19 006738 setarg smp_pairing_confirm 
+0x2f1a 006739 istore 1 ,contw 
+0x2f1b 006740 branch store_aes_result 
+:      006742 le_send_smp_pairing_confirm_sc:
+0x2f1c 006743 arg mem_le_srand ,contw 
+0x2f1d 006744 call generate_random 
+0x2f1e 006745 call function_f4_cb 
+0x2f1f 006746 force 17 ,rega 
+0x2f20 006747 call le_fifo_malloc_tx_l2cap_smp 
+0x2f21 006748 setarg smp_pairing_confirm 
+0x2f22 006749 istore 1 ,contw 
+0x2f23 006750 branch load_inverse_result 
+:      006752 le_parse_smp_pairing_random:
+0x2f24 006753 copy contr ,rega 
+0x2f25 006754 fetch 1 ,mem_le_pairing_mode 
+0x2f26 006755 bbit1 le_pairing_mode_secure_connect_bit ,le_parse_smp_pairing_random_sc 
+0x2f27 006756 copy rega ,contr 
+0x2f28 006757 call authenticate_rconfirm 
+0x2f29 006758 branch le_parse_smp_pairing_random_success ,zero 
+:      006759 le_send_pairing_confirm_value_failed:
+0x2f2a 006760 jam pairing_failed_confirm_value_failed ,mem_le_ll_pairing_fail_reason 
+:      006761 le_send_pairing_failed:
+0x2f2b 006762 force 2 ,rega 
+0x2f2c 006763 call le_fifo_malloc_tx_l2cap_smp 
+0x2f2d 006764 setarg smp_pairing_failed 
+0x2f2e 006765 istore 1 ,contw 
+0x2f2f 006766 fetch 1 ,mem_le_ll_pairing_fail_reason 
+0x2f30 006767 istore 1 ,contw 
+:      006768 le_parse_smp_pairing_failed:
+0x2f31 006769 bpatchx patch2c_5 ,mem_patch2c 
+0x2f32 006770 force smp_pairing_timer ,queue 
+0x2f33 006771 call timer_stop 
+0x2f34 006772 jam flag_le_pairing_null ,mem_le_pairing_state 
+0x2f35 006773 jam bt_evt_le_pairing_fail ,mem_fifo_temp 
+0x2f36 006774 branch ui_ipc_send_event 
+:      006776 le_smp_pairing_fail_reason_not_support_pairing:
+0x2f37 006777 jam pairing_failed_pairing_not_supported ,mem_le_ll_pairing_fail_reason 
+0x2f38 006778 branch le_send_pairing_failed 
+:      006780 le_parse_smp_pairing_random_sc:
+0x2f39 006781 arg mem_le_mrand ,contw 
+0x2f3a 006782 copy rega ,contr 
+0x2f3b 006783 call memcpy16 
+0x2f3c 006784 fetch 1 ,mem_le_pairing_mode 
+0x2f3d 006785 beq le_pairing_mode_secure_connect_passkey ,le_parse_smp_pairing_random_sc_passkey 
+0x2f3e 006786 beq le_pairing_mode_secure_connect_passkey_res_input ,le_parse_smp_pairing_random_sc_passkey 
+0x2f3f 006787 call function_g2 
+0x2f40 006788 call le_send_smp_pairing_random 
+0x2f41 006789 fetch 1 ,mem_le_pairing_mode 
+0x2f42 006790 rtnne le_pairing_mode_secure_connect_numeric 
+0x2f43 006791 jam bt_evt_le_gkey_generate ,mem_fifo_temp 
+0x2f44 006792 branch ui_ipc_send_event 
+:      006794 le_parse_smp_pairing_random_sc_passkey:
+0x2f45 006795 call function_f4_ca 
+0x2f46 006796 arg mem_aes_cmac_temp ,contw 
+0x2f47 006797 call load_inverse_result 
+0x2f48 006798 arg mem_aes_cmac_temp ,rega 
+0x2f49 006799 arg mem_le_rconfirm ,regb 
+0x2f4a 006800 arg 16 ,loopcnt 
+0x2f4b 006801 call string_compare 
+0x2f4c 006802 nbranch le_send_pairing_confirm_value_failed ,zero 
+0x2f4d 006803 branch le_send_smp_pairing_random 
+:      006805 le_parse_smp_pairing_random_success:
+0x2f4e 006806 call generate_stk 
+0x2f4f 006807 jam bt_evt_le_pairing_success ,mem_fifo_temp 
+0x2f50 006808 call ui_ipc_send_event 
+0x2f51 006809 jam 1 ,mem_ltk_exists 
+0x2f52 006810 jam flag_le_pairing_after_auth ,mem_le_pairing_state 
+:      006812 le_send_smp_pairing_random:
+0x2f53 006813 force 17 ,rega 
+0x2f54 006814 call le_fifo_malloc_tx_l2cap_smp 
+0x2f55 006815 setarg smp_pairing_random 
+0x2f56 006816 istore 1 ,contw 
+0x2f57 006817 arg mem_le_srand ,contr 
+0x2f58 006818 branch memcpy16 
+:      006820 le_send_smp_encryption_information:
+0x2f59 006821 force 17 ,rega 
+0x2f5a 006822 call le_fifo_malloc_tx_l2cap_smp 
+0x2f5b 006823 setarg smp_encryption_information 
+0x2f5c 006824 istore 1 ,contw 
+0x2f5d 006825 fetch 1 ,mem_le_configuration 
+0x2f5e 006826 bbit1 bit_ble_pairing_fixed_ltk ,le_send_fixed_ltk 
+0x2f5f 006827 arg mem_le_ltk ,contr 
+0x2f60 006828 branch memcpy16 
+:      006830 le_send_fixed_ltk:
+0x2f61 006831 arg mem_le_fixed_ltk ,contr 
+0x2f62 006832 branch memcpy16 
+:      006835 le_send_smp_master_identification:
+0x2f63 006836 arg mem_le_ediv ,contw 
+0x2f64 006837 force 10 ,loopcnt 
+0x2f65 006838 call generate_random_loop 
+0x2f66 006839 force 11 ,rega 
+0x2f67 006840 call le_fifo_malloc_tx_l2cap_smp 
+0x2f68 006841 setarg smp_master_identification 
+0x2f69 006842 istore 1 ,contw 
+0x2f6a 006843 fetch 2 ,mem_le_ediv 
+0x2f6b 006844 istore 2 ,contw 
+0x2f6c 006845 fetch 8 ,mem_le_rand 
+0x2f6d 006846 istore 8 ,contw 
+0x2f6e 006847 rtn 
+:      006849 le_send_smp_identity_information:
+0x2f6f 006850 force 17 ,rega 
+0x2f70 006851 call le_fifo_malloc_tx_l2cap_smp 
+0x2f71 006852 setarg smp_identity_information 
+0x2f72 006853 istore 1 ,contw 
+0x2f73 006854 setarg 0 
+0x2f74 006855 istore 8 ,contw 
+0x2f75 006856 istore 8 ,contw 
+0x2f76 006857 rtn 
+:      006860 le_send_smp_identity_address_information:
+0x2f77 006861 force 8 ,rega 
+0x2f78 006862 call le_fifo_malloc_tx_l2cap_smp 
+0x2f79 006863 setarg smp_identity_address_information 
+0x2f7a 006864 istore 1 ,contw 
+0x2f7b 006865 fetch 1 ,mem_le_conn_own_addr_type 
+0x2f7c 006866 istore 1 ,contw 
+0x2f7d 006867 fetch 6 ,mem_le_lap 
+0x2f7e 006868 istore 6 ,contw 
+0x2f7f 006869 rtn 
+:      006872 le_send_pairing_fail_unspecified_reason:
+0x2f80 006873 jam pairing_failed_unspecified_reason ,mem_le_ll_pairing_fail_reason 
+0x2f81 006874 branch le_send_pairing_failed 
+:      006876 le_check_init_key_distribution:
+0x2f82 006877 fetch 1 ,mem_le_pres_init_key_distribution 
+0x2f83 006878 fetcht 1 ,mem_le_pres_init_key_distribution 
+0x2f84 006879 iand temp ,pdata 
+0x2f85 006880 rtn 
+:      006882 le_parse_smp_identity_information:
+0x2f86 006883 arg mem_le_irk ,contw 
+0x2f87 006884 call memcpy16 
+0x2f88 006885 call le_check_init_key_distribution 
+0x2f89 006886 isolate0 le_initator_irk_bit ,pdata 
+0x2f8a 006887 branch le_send_pairing_fail_unspecified_reason ,true 
+0x2f8b 006888 fetch 1 ,mem_device_option 
+0x2f8c 006889 rtnne dvc_op_module 
+0x2f8d 006890 call le_check_master_addr_type 
+0x2f8e 006891 nrtn user 
+0x2f8f 006892 branch app_ble_store_reconn_info 
+:      006895 le_check_master_addr_type:
+0x2f90 006896 call disable_user 
+0x2f91 006897 fetch 1 ,mem_le_conn_peer_addr_type 
+0x2f92 006898 rtneq master_public_addr 
+0x2f93 006899 fetch 1 ,mem_le_preq_init_key_distribution 
+0x2f94 006900 rtnbit0 le_initator_irk_bit 
+0x2f95 006901 branch enable_user 
+:      006903 le_parse_smp_identity_address_information:
+0x2f96 006904 call le_check_init_key_distribution 
+0x2f97 006905 isolate0 le_initator_irk_bit ,pdata 
+0x2f98 006906 branch le_send_pairing_fail_unspecified_reason ,true 
+0x2f99 006907 rtn 
+:      006909 le_parse_smp_master_identification:
+:      006910 le_parse_smp_signing_information:
+:      006911 le_parse_smp_security_request:
+0x2f9a 006912 rtn 
+:      006914 le_parse_smp_public_key:
+0x2f9b 006915 arg mem_le_pubkey_remote_x_256 ,contw 
+0x2f9c 006916 call memcpy64 
+0x2f9d 006917 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+0x2f9e 006918 jam le_sc_stat_receive_public_key ,mem_le_secure_connect_state 
+0x2f9f 006919 rtn 
+:      006921 le_parse_smp_dhkey_check:
+0x2fa0 006922 arg mem_sp_confirm_remote ,contw 
+0x2fa1 006923 call memcpy16 
+0x2fa2 006924 jam le_sc_stat_receive_dhkey ,mem_le_secure_connect_state 
+0x2fa3 006925 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+0x2fa4 006926 rtn 
+:      006928 le_send_smp_pairing_public_key:
+0x2fa5 006929 force 65 ,rega 
+0x2fa6 006930 call le_fifo_malloc_tx_l2cap_smp 
+0x2fa7 006931 setarg smp_pairing_public_key 
+0x2fa8 006932 istore 1 ,contw 
+0x2fa9 006933 arg mem_sc_pubkey_local_x_256 ,contr 
+0x2faa 006934 branch memcpy64 
+:      006936 le_send_smp_pairing_dhkey_check:
+0x2fab 006937 call function_f6_eb 
+0x2fac 006938 force 17 ,rega 
+0x2fad 006939 call le_fifo_malloc_tx_l2cap_smp 
+0x2fae 006940 setarg smp_pairing_dhkey_check 
+0x2faf 006941 istore 1 ,contw 
+0x2fb0 006942 branch load_inverse_result 
+:      006944 le_check_paring_time:
+0x2fb1 006945 fetch 1 ,mem_le_pairing_state 
+0x2fb2 006946 rtneq flag_le_pairing_end 
+0x2fb3 006947 arg flag_le_pairing_rcv_pairing_req ,temp 
+0x2fb4 006948 isub temp ,null 
+0x2fb5 006949 nrtn positive 
+0x2fb6 006950 arg smp_pairing_timer ,queue 
+0x2fb7 006951 call timer_check 
+0x2fb8 006952 nrtn blank 
+0x2fb9 006953 branch le_send_pairing_fail_unspecified_reason 
+:      006955 le_pairing_sm:
+0x2fba 006956 bpatchx patch2c_6 ,mem_patch2c 
+0x2fbb 006957 call le_fifo_check_nearly_full 
+0x2fbc 006958 nrtn blank 
+0x2fbd 006959 fetch 1 ,mem_le_pairing_state 
+0x2fbe 006960 beq flag_le_pairing_null ,le_pairing_sm_null 
+0x2fbf 006961 beq flag_le_pairing_start ,le_pairing_sm_start 
+0x2fc0 006962 beq flag_le_pairing_send_recurity_req ,le_pairing_sm_send_sec_req 
+0x2fc1 006963 beq flag_le_pairing_rcv_pairing_req ,le_pairing_sm_rcv_pairing_req 
+0x2fc2 006964 beq flag_le_pairing_after_auth ,le_pairing_sm_after_auth 
+0x2fc3 006965 beq flag_le_paring_send_enc_information ,le_pairng_sm_send_enc_information 
+0x2fc4 006966 beq flag_le_paring_send_master_identification ,le_pairng_sm_send_master_indentification 
+0x2fc5 006967 beq flag_le_paring_send_indentity_information ,le_pairng_sm_send_indentity_information 
+0x2fc6 006968 rtn 
+:      006970 le_pairing_sm_null:
+:      006971 le_pairing_sm_send_sec_req:
+0x2fc7 006972 fetch 1 ,mem_le_enc_state 
+0x2fc8 006973 rtnne flag_le_send_start_enc_rsp 
+0x2fc9 006974 jam flag_le_enc_end ,mem_le_enc_state 
+0x2fca 006975 jam flag_le_pairing_end ,mem_le_pairing_state 
+0x2fcb 006976 jam bt_evt_le_reconnect_complete ,mem_fifo_temp 
+0x2fcc 006977 branch ui_ipc_send_event 
+:      006980 le_pairing_sm_start:
+0x2fcd 006981 jam flag_le_pairing_send_recurity_req ,mem_le_pairing_state 
+0x2fce 006982 branch le_send_smp_security_request 
+:      006984 le_pairing_sm_rcv_pairing_req:
+0x2fcf 006985 jam flag_le_pairing_wait_stk_generation ,mem_le_pairing_state 
+0x2fd0 006986 setarg timer_smp_pairing_timeout 
+0x2fd1 006987 arg smp_pairing_timer ,queue 
+0x2fd2 006988 branch timer_init 
+:      006990 le_pairing_sm_after_auth:
+0x2fd3 006991 fetch 1 ,mem_le_enc_state 
+0x2fd4 006992 beq flag_le_send_start_enc_rsp ,le_pairing_sm_after_auth_start_enc 
+0x2fd5 006993 rtn 
+:      006995 le_pairing_sm_after_auth_start_enc:
+0x2fd6 006996 fetch 1 ,mem_le_pairing_mode 
+0x2fd7 006997 bbit1 le_pairing_mode_secure_connect_bit ,le_pairing_sm_after_auth_start_enc_sc 
+0x2fd8 006999 jam flag_le_paring_send_enc_information ,mem_le_pairing_state 
+0x2fd9 007000 call le_send_smp_encryption_information 
+:      007001 le_pairing_sm_after_auth_start_enc_common:
+0x2fda 007002 jam bt_evt_le_enc_info ,mem_fifo_temp 
+0x2fdb 007003 call ui_ipc_send_event 
+0x2fdc 007004 fetch 1 ,mem_device_option 
+0x2fdd 007005 rtnne dvc_op_module 
+0x2fde 007006 call le_check_master_addr_type 
+0x2fdf 007007 rtn user 
+0x2fe0 007008 branch app_ble_store_reconn_info 
+:      007010 le_pairing_sm_after_auth_start_enc_sc:
+0x2fe1 007011 jam flag_le_paring_send_master_identification ,mem_le_pairing_state 
+0x2fe2 007012 branch le_pairing_sm_after_auth_start_enc_common 
+:      007014 le_pairng_sm_send_enc_information:
+0x2fe3 007015 jam flag_le_paring_send_master_identification ,mem_le_pairing_state 
+0x2fe4 007016 branch le_send_smp_master_identification 
+:      007018 le_pairng_sm_send_master_indentification:
+0x2fe5 007019 fetch 1 ,mem_le_preq_resp_key_distribution 
+0x2fe6 007020 fetcht 1 ,mem_le_pres_resp_key_distribution 
+0x2fe7 007021 iand temp ,pdata 
+0x2fe8 007022 isolate0 le_initator_irk_bit ,pdata 
+0x2fe9 007023 branch le_parse_start_enc_rsp_after_auth_end ,true 
+0x2fea 007024 jam flag_le_paring_send_indentity_information ,mem_le_pairing_state 
+0x2feb 007025 branch le_send_smp_identity_information 
+:      007027 le_pairng_sm_send_indentity_information:
+0x2fec 007028 call le_send_smp_identity_address_information 
+0x2fed 007029 branch le_parse_start_enc_rsp_after_auth_end 
+:      007032 le_parse_start_enc_rsp_after_auth_end:
+0x2fee 007033 bpatchx patch2c_7 ,mem_patch2c 
+0x2fef 007034 force smp_pairing_timer ,queue 
+0x2ff0 007035 call timer_stop 
+0x2ff1 007036 jam flag_le_enc_end ,mem_le_enc_state 
+0x2ff2 007037 jam flag_le_pairing_end ,mem_le_pairing_state 
+0x2ff3 007038 jam bt_evt_le_pairing_complete ,mem_fifo_temp 
+0x2ff4 007039 branch ui_ipc_send_event 
+:      007043 le_secure_connect_sm:
+0x2ff5 007044 bpatchx patch2d_0 ,mem_patch2d 
+0x2ff6 007045 fetch 1 ,mem_le_pairing_mode 
+0x2ff7 007046 rtnbit0 le_pairing_mode_secure_connect_bit 
+0x2ff8 007047 fetch 1 ,mem_le_secure_connect_flag 
+0x2ff9 007048 rtnne le_sp_flag_commit_256 
+0x2ffa 007049 jam sp_flag_standby ,mem_le_secure_connect_flag 
+0x2ffb 007050 fetch 1 ,mem_le_secure_connect_state 
+0x2ffc 007051 beq le_sc_stat_receive_public_key ,le_sc_sm_receive_public_key 
+0x2ffd 007052 beq le_sc_stat_wait_send_public_key ,le_sc_sm_wait_send_public_key 
+0x2ffe 007053 beq le_sc_stat_send_public_key ,le_sc_sm_send_public_key 
+0x2fff 007054 beq le_sc_stat_receive_dhkey ,le_sc_sm_receive_dhkey 
+0x3000 007055 beq le_sc_stat_wait_confirm_gkey ,le_sc_sm_wait_confirm_gkey 
+0x3001 007056 beq le_sc_stat_passkey_wait_confirm ,le_sc_sm_passkey_wait_confirm 
+0x3002 007057 rtn 
+:      007059 le_sc_state_clear:
+0x3003 007060 jam sp_flag_standby ,mem_le_secure_connect_flag 
+0x3004 007061 jam le_sc_stat_null ,mem_le_secure_connect_state 
+0x3005 007062 jam flag_le_sc_confrim_null ,mem_le_sc_confirm_gkey_flag 
+0x3006 007063 rtn 
+:      007065 le_sc_sm_passkey_wait_confirm:
+0x3007 007066 fetch 1 ,mem_authentication_passkey_times 
+0x3008 007067 copy pdata ,queue 
+0x3009 007068 increase 1 ,pdata 
+0x300a 007069 store 1 ,mem_authentication_passkey_times 
+0x300b 007070 fetch 4 ,mem_le_tk 
+0x300c 007071 qisolate1 pdata 
+0x300d 007072 setarg 0x80 
+0x300e 007073 setflag true ,0 ,pdata 
+0x300f 007074 store 1 ,mem_passkey_1bit 
+0x3010 007075 branch le_sc_sm_ready_send_pairing_confirm 
+:      007077 le_sc_sm_wait_confirm_gkey:
+0x3011 007078 fetch 1 ,mem_le_sc_confirm_gkey_flag 
+0x3012 007079 jam flag_le_sc_confrim_null ,mem_le_sc_confirm_gkey_flag 
+0x3013 007080 beq flag_le_sc_confrim_gkey_ok ,le_sc_confirm_gkey_ok 
+0x3014 007081 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+0x3015 007082 rtn 
+:      007084 le_sc_confirm_gkey_ok:
+0x3016 007085 jam bt_evt_le_pairing_success ,mem_fifo_temp 
+0x3017 007086 call ui_ipc_send_event 
+0x3018 007087 jam flag_le_pairing_after_auth ,mem_le_pairing_state 
+0x3019 007088 branch le_send_smp_pairing_dhkey_check 
+:      007090 le_sc_sm_receive_dhkey:
+0x301a 007091 fetch 1 ,mem_sp_dhkey_invalid 
+0x301b 007092 beq sp_key_valid_256 ,le_dhkey_ready 
+0x301c 007093 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+0x301d 007094 rtn 
+:      007096 le_dhkey_ready:
+0x301e 007097 call function_f5 
+0x301f 007098 fetch 1 ,mem_le_pairing_mode 
+0x3020 007099 beq le_pairing_mode_secure_connect_passkey ,le_dhkey_ready_common 
+0x3021 007100 beq le_pairing_mode_secure_connect_passkey_res_input ,le_dhkey_ready_common 
+0x3022 007101 call le_set_tk_0 
+:      007102 le_dhkey_ready_common:
+0x3023 007103 call function_f6_ea 
+0x3024 007104 arg mem_aes_cmac_temp ,rega 
+0x3025 007105 arg mem_sp_confirm_remote ,regb 
+0x3026 007106 arg 16 ,loopcnt 
+0x3027 007107 call string_compare 
+0x3028 007108 branch le_dhkey_check_ok ,zero 
+:      007109 le_dhkey_check_fail:
+0x3029 007110 jam pairing_failed_dhkey_check_failed ,mem_le_ll_pairing_fail_reason 
+0x302a 007111 branch le_send_pairing_failed 
+:      007114 le_dhkey_check_ok:
+0x302b 007115 call sp_calc_check_publickey_256 
+0x302c 007116 nbranch le_dhkey_check_fail ,zero 
+0x302d 007117 jam 1 ,mem_ltk_exists 
+0x302e 007118 fetch 1 ,mem_le_pairing_mode 
+0x302f 007119 beq le_pairing_mode_secure_connect_justwork ,le_sc_confirm_gkey_ok 
+0x3030 007120 beq le_pairing_mode_secure_connect_passkey ,le_sc_confirm_gkey_ok 
+0x3031 007121 beq le_pairing_mode_secure_connect_passkey_res_input ,le_sc_confirm_gkey_ok 
+0x3032 007122 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+0x3033 007123 jam le_sc_stat_wait_confirm_gkey ,mem_le_secure_connect_state 
+0x3034 007124 rtn 
+:      007126 le_sc_sm_send_public_key:
+0x3035 007127 fetch 1 ,mem_le_pairing_mode 
+0x3036 007128 beq le_pairing_mode_secure_connect_passkey ,le_sc_sm_send_public_key_passkey 
+0x3037 007129 beq le_pairing_mode_secure_connect_passkey_res_input ,le_sc_sm_send_public_key_passkey 
+0x3038 007130 jam 0 ,mem_passkey_1bit 
+:      007131 le_sc_sm_ready_send_pairing_confirm:
+0x3039 007132 branch le_send_smp_pairing_confirm 
+:      007134 le_sc_sm_send_public_key_passkey:
+0x303a 007135 jam 0 ,mem_authentication_passkey_times 
+0x303b 007136 rtneq le_pairing_mode_secure_connect_passkey_res_input 
+0x303c 007137 branch le_parse_smp_pairing_req_passkey 
+:      007140 le_sc_sm_receive_public_key:
+0x303d 007141 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+0x303e 007142 fetch 1 ,mem_sc_local_key_invalid 
+0x303f 007143 beq sp_key_valid_256 ,le_public_key_ready 
+0x3040 007144 rtn 
+:      007146 le_public_key_ready:
+0x3041 007147 jam le_sc_stat_wait_send_public_key ,mem_le_secure_connect_state 
+0x3042 007148 jam sp_key_invalid ,mem_sp_dhkey_invalid 
+0x3043 007149 branch sp_dhkey_calc_256 
+:      007151 le_sc_sm_wait_send_public_key:
+0x3044 007152 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+0x3045 007153 jam le_sc_stat_send_public_key ,mem_le_secure_connect_state 
+0x3046 007154 branch le_send_smp_pairing_public_key 
+:      007158 le_fifo_malloc_tx_l2cap_smp:
+0x3047 007159 bpatchx patch2d_1 ,mem_patch2d 
+0x3048 007160 force le_l2cap_cid_smp ,regb 
+0x3049 007161 branch le_fifo_malloc_tx_l2cap 
+:      007165 le_parse_ll:
+0x304a 007166 fetch 1 ,mem_le_rxbuf_data_ll_opcode 
+0x304b 007167 beq ll_connection_update_ind ,le_parse_connection_update_ind 
+0x304c 007168 beq ll_channel_map_ind ,le_parse_channel_map_ind 
+0x304d 007169 beq ll_terminate_ind ,le_parse_terminate_ind 
+0x304e 007170 beq ll_enc_req ,le_parse_enc_req 
+0x304f 007171 beq ll_enc_rsp ,le_parse_enc_rsp 
+0x3050 007172 beq ll_start_enc_req ,le_parse_start_enc_req 
+0x3051 007173 beq ll_start_enc_rsp ,le_parse_start_enc_rsp 
+0x3052 007174 beq ll_unknown_rsp ,le_parse_unknown_rsp 
+0x3053 007175 beq ll_feature_req ,le_parse_feature_req 
+0x3054 007176 beq ll_feature_rsp ,le_parse_feature_rsp 
+0x3055 007177 beq ll_pause_enc_req ,le_parse_pause_enc_req 
+0x3056 007178 beq ll_pause_enc_rsp ,le_parse_pause_enc_rsp 
+0x3057 007179 beq ll_version_ind ,le_parse_version_ind 
+0x3058 007180 beq ll_reject_ind ,le_parse_reject_ind 
+0x3059 007181 beq ll_ping_req ,le_parse_ping_req 
+0x305a 007182 beq ll_ping_rsp ,le_parse_ping_rsp 
+0x305b 007183 beq ll_length_req ,le_parse_length_req 
+0x305c 007184 beq ll_length_rsp ,le_parse_length_rsp 
+0x305d 007185 beq ll_phy_req ,le_parse_phy_req 
+0x305e 007186 beq ll_phy_update_ind ,le_parse_phy_update_ind 
+0x305f 007187 fetchr regc ,1 ,mem_le_rxbuf_data_ll_opcode 
+0x3060 007188 branch le_send_unknown_rsp 
+:      007192 le_parse_connection_update_ind:
+0x3061 007193 ifetch 9 ,contr 
+0x3062 007194 store 9 ,mem_le_new_param 
+0x3063 007195 ifetch 2 ,contr 
+0x3064 007196 store 2 ,mem_le_instant 
+0x3065 007197 fetch 1 ,mem_le_state 
+0x3066 007198 set1 lestate_update_param ,pdata 
+0x3067 007199 store 1 ,mem_le_state 
+0x3068 007200 rtn 
+:      007204 le_parse_channel_map_ind:
+0x3069 007205 ifetch 5 ,contr 
+0x306a 007206 store 5 ,mem_le_new_map 
+0x306b 007207 ifetch 2 ,contr 
+0x306c 007208 store 2 ,mem_le_instant 
+:      007209 le_update_map_enable:
+0x306d 007210 fetch 1 ,mem_le_state 
+0x306e 007211 set1 lestate_update_map ,pdata 
+0x306f 007212 store 1 ,mem_le_state 
+0x3070 007213 rtn 
+:      007217 le_parse_terminate_ind:
+0x3071 007218 setarg 20 
+0x3072 007219 store 2 ,mem_le_superto 
+0x3073 007220 store 2 ,mem_le_init_superto 
+0x3074 007221 rtn 
+:      007225 le_parse_enc_req:
+0x3075 007226 ifetch 8 ,contr 
+0x3076 007227 store 8 ,mem_le_rand 
+0x3077 007228 ifetch 2 ,contr 
+0x3078 007229 store 2 ,mem_le_ediv 
+0x3079 007230 ifetch 8 ,contr 
+0x307a 007231 store 8 ,mem_le_skdm 
+0x307b 007232 ifetch 4 ,contr 
+0x307c 007233 store 4 ,mem_ccm_ivm 
+0x307d 007234 call le_send_enc_rsp 
+0x307e 007235 bpatchx patch2d_2 ,mem_patch2d 
+0x307f 007236 fetch 1 ,mem_le_pairing_state 
+0x3080 007237 beq flag_le_pairing_after_auth ,le_parse_enc_req_after_auth 
+0x3081 007238 fetch 1 ,mem_le_configuration 
+0x3082 007239 bbit1 bit_ble_pairing_fixed_ltk ,le_parse_enc_req_fixed_ltk 
+0x3083 007240 fetch 1 ,mem_nv_data_number 
+0x3084 007241 ncall load_device_list_mode_4 ,blank 
+0x3085 007242 fetch 1 ,mem_ltk_exists 
+0x3086 007243 beq 0 ,le_ltk_lost 
+:      007244 le_parse_enc_req_after_auth:
+0x3087 007245 jam flag_le_rcv_enc_start ,mem_le_enc_state 
+0x3088 007246 call le_send_start_enc_req 
+0x3089 007247 branch generate_sk 
+:      007248 le_parse_enc_req_fixed_ltk:
+0x308a 007249 jam 1 ,mem_ltk_exists 
+0x308b 007250 arg mem_le_fixed_ltk ,contr 
+0x308c 007251 arg mem_le_ltk ,contw 
+0x308d 007252 call memcpy16 
+0x308e 007253 branch le_parse_enc_req_after_auth 
+:      007255 le_ltk_lost:
+0x308f 007256 jam flag_le_enc_null ,mem_le_enc_state 
+0x3090 007257 jam flag_le_enc_null ,mem_le_pairing_state 
+0x3091 007258 jam bt_evt_le_ltk_lost ,mem_fifo_temp 
+0x3092 007259 branch ui_ipc_send_event 
+:      007262 le_parse_enc_rsp:
+0x3093 007263 ifetch 8 ,contr 
+0x3094 007264 store 8 ,mem_le_skds 
+0x3095 007265 ifetch 4 ,contr 
+0x3096 007266 store 4 ,mem_ccm_ivs 
+0x3097 007267 branch generate_sk 
+:      007271 le_parse_start_enc_req:
+0x3098 007272 fetch 1 ,mem_le_state 
+0x3099 007273 set1 lestate_encryption ,pdata 
+0x309a 007274 store 1 ,mem_le_state 
+0x309b 007275 rtn 
+:      007278 le_parse_start_enc_rsp:
+0x309c 007279 rtn master 
+0x309d 007280 jam bt_evt_le_start_enc ,mem_fifo_temp 
+0x309e 007281 call ui_ipc_send_event 
+0x309f 007282 jam flag_le_send_start_enc_rsp ,mem_le_enc_state 
+0x30a0 007283 branch le_send_start_enc_rsp 
+:      007287 le_parse_unknown_rsp:
+0x30a1 007288 rtn 
+:      007292 le_parse_feature_req:
+0x30a2 007293 branch le_send_feature_rsp 
+:      007297 le_parse_feature_rsp:
+0x30a3 007298 rtn 
+:      007302 le_parse_pause_enc_req:
+0x30a4 007303 jam flag_le_enc_pause ,mem_le_enc_state 
+0x30a5 007304 call le_send_pause_enc_rsp 
+0x30a6 007305 jam bt_evt_le_pause_enc ,mem_fifo_temp 
+0x30a7 007306 branch ui_ipc_send_event 
+:      007310 le_parse_pause_enc_rsp:
+0x30a8 007311 rtn 
+:      007315 le_parse_version_ind:
+0x30a9 007316 rtn master 
+0x30aa 007317 branch le_send_version_ind 
+:      007321 le_parse_reject_ind:
+0x30ab 007322 rtn 
+:      007326 le_parse_ping_req:
+0x30ac 007327 branch le_send_ping_rsp 
+:      007331 le_parse_ping_rsp:
+0x30ad 007332 rtn 
+:      007335 le_parse_length_req:
+0x30ae 007336 call le_parse_length_rsp 
+0x30af 007337 branch le_send_data_length_res 
+:      007339 le_parse_length_rsp:
+0x30b0 007340 ifetch 8 ,contr 
+0x30b1 007341 store 8 ,mem_remote_rx_max_octets 
+0x30b2 007342 fetch 2 ,mem_remote_rx_max_octets 
+0x30b3 007343 fetcht 2 ,mem_local_tx_max_octets 
+0x30b4 007344 call not_greater_than 
+0x30b5 007345 store 2 ,mem_remote_rx_max_octets 
+0x30b6 007347 fetch 2 ,mem_remote_tx_max_octets 
+0x30b7 007348 fetcht 2 ,mem_local_rx_max_octets 
+0x30b8 007349 call not_greater_than 
+0x30b9 007350 store 2 ,mem_remote_tx_max_octets 
+0x30ba 007351 rtn 
+:      007355 le_parse_phy_req:
+0x30bb 007356 branch le_send_phy_rsp 
+:      007360 le_parse_phy_update_ind:
+0x30bc 007361 ifetch 2 ,contr 
+0x30bd 007362 store 2 ,mem_le_new_m2s_phy 
+0x30be 007363 ifetch 2 ,contr 
+0x30bf 007364 store 2 ,mem_le_instant 
+0x30c0 007365 rtn blank 
+0x30c1 007366 fetch 1 ,mem_le_state 
+0x30c2 007367 set1 lestate_update_phy ,pdata 
+0x30c3 007368 store 1 ,mem_le_state 
+0x30c4 007369 rtn 
+:      007374 le_send_terminate_ind_user_terminated:
+0x30c5 007375 arg error_remote_user_terminated_connection ,regc 
+:      007378 le_send_terminate_ind:
+0x30c6 007379 arg 2 ,rega 
+0x30c7 007380 arg ll_terminate_ind ,regb 
+0x30c8 007381 call le_fifo_malloc_tx_ll 
+0x30c9 007382 copy regc ,pdata 
+0x30ca 007383 istore 1 ,contw 
+0x30cb 007384 rtn 
+:      007388 le_send_enc_rsp:
+0x30cc 007389 arg mem_le_skds ,contw 
+0x30cd 007390 force 8 ,loopcnt 
+0x30ce 007391 call generate_random_loop 
+0x30cf 007392 arg mem_ccm_ivs ,contw 
+0x30d0 007393 force 4 ,loopcnt 
+0x30d1 007394 call generate_random_loop 
+0x30d2 007395 arg 13 ,rega 
+0x30d3 007396 arg ll_enc_rsp ,regb 
+0x30d4 007397 call le_fifo_malloc_tx_ll 
+0x30d5 007398 fetch 8 ,mem_le_skds 
+0x30d6 007399 istore 8 ,contw 
+0x30d7 007400 fetch 4 ,mem_ccm_ivs 
+0x30d8 007401 istore 4 ,contw 
+0x30d9 007402 rtn 
+:      007406 le_send_start_enc_req:
+0x30da 007407 jam flag_le_send_start_enc_req ,mem_le_enc_state 
+0x30db 007408 arg ll_start_enc_req ,regb 
+0x30dc 007409 branch le_send_ll_one_lenth 
+:      007413 le_send_start_enc_rsp:
+0x30dd 007414 arg ll_start_enc_rsp ,regb 
+0x30de 007415 branch le_send_ll_one_lenth 
+:      007420 le_send_unknown_rsp:
+0x30df 007421 arg 2 ,rega 
+0x30e0 007422 arg ll_unknown_rsp ,regb 
+0x30e1 007423 call le_fifo_malloc_tx_ll 
+0x30e2 007424 istorer regc ,1 ,contw 
+0x30e3 007425 rtn 
+:      007429 le_send_feature_rsp:
+0x30e4 007430 arg 9 ,rega 
+0x30e5 007431 arg ll_feature_rsp ,regb 
+0x30e6 007432 call le_fifo_malloc_tx_ll 
+0x30e7 007433 fetch 8 ,mem_le_local_feature 
+0x30e8 007434 or pdata ,fun_ll_feature_le_encryption ,pdata 
+0x30e9 007435 istore 8 ,contw 
+0x30ea 007436 rtn 
+:      007440 le_send_pause_enc_rsp:
+0x30eb 007441 arg ll_pause_enc_rsp ,regb 
+0x30ec 007442 branch le_send_ll_one_lenth 
+:      007446 le_send_version_ind:
+0x30ed 007447 arg 6 ,rega 
+0x30ee 007448 arg ll_version_ind ,regb 
+0x30ef 007449 call le_fifo_malloc_tx_ll 
+0x30f0 007450 fetch 5 ,mem_version 
+0x30f1 007451 istore 5 ,contw 
+0x30f2 007452 rtn 
+:      007455 le_send_reject_ind:
+0x30f3 007456 arg 2 ,rega 
+0x30f4 007457 arg ll_reject_ind ,regb 
+0x30f5 007458 call le_fifo_malloc_tx_ll 
+0x30f6 007459 setarg le_err_pin_or_key_missing 
+0x30f7 007460 istore 1 ,contw 
+0x30f8 007461 rtn 
+:      007465 le_send_ping_rsp:
+0x30f9 007466 arg ll_ping_rsp ,regb 
+0x30fa 007467 branch le_send_ll_one_lenth 
+:      007469 le_send_data_length_req:
+0x30fb 007470 arg ll_length_req ,regb 
+0x30fc 007471 branch le_send_data_length 
+:      007473 le_send_data_length_res:
+0x30fd 007474 arg ll_length_rsp ,regb 
+:      007475 le_send_data_length:
+0x30fe 007476 arg 9 ,rega 
+0x30ff 007477 call le_fifo_malloc_tx_ll 
+0x3100 007478 fetch 8 ,mem_local_rx_max_octets 
+0x3101 007479 istore 8 ,contw 
+0x3102 007480 rtn 
+:      007484 le_send_phy_rsp:
+0x3103 007485 arg 3 ,rega 
+0x3104 007486 arg ll_phy_rsp ,regb 
+0x3105 007487 call le_fifo_malloc_tx_ll 
+0x3106 007488 fetch 1 ,mem_le_tx_phys 
+0x3107 007489 and pdata ,0x07 ,pdata 
+0x3108 007490 istore 1 ,contw 
+0x3109 007491 fetch 1 ,mem_le_rx_phys 
+0x310a 007492 and pdata ,0x07 ,pdata 
+0x310b 007493 istore 1 ,contw 
+0x310c 007494 rtn 
+:      007498 le_send_ll_one_lenth:
+0x310d 007499 arg 1 ,rega 
+0x310e 007500 branch le_fifo_malloc_tx_ll 
+:      007505 g24_dispatch:
+0x310f 007506 bpatchx patch2d_3 ,mem_patch2d 
+0x3110 007507 bmark1 mark_24g_rxmode ,g24_receive_dispatch 
+0x3111 007508 branch g24_transmit_dispatch 
+:      007513 g24_prep:
+0x3112 007514 bpatchx patch2d_4 ,mem_patch2d 
+0x3113 007515 disable enable_crc 
+0x3114 007516 disable enable_white 
+0x3115 007517 setarg 0x555555 
+0x3116 007518 iforce crc24_init 
+0x3117 007519 fetch 1 ,mem_24g_ch 
+0x3118 007520 branch le_prep_next 
+:      007522 g24_receive_packet:
+0x3119 007523 bpatchx patch2d_5 ,mem_patch2d 
+0x311a 007524 fetch 1 ,mem_24g_rx_phy 
+0x311b 007525 call le_enable_phy_by_pdata 
+0x311c 007526 fetch 4 ,mem_24g_addr 
+0x311d 007527 iforce access 
+0x311e 007528 call set_sync_on 
+0x311f 007529 fetcht 1 ,mem_24g_ch 
+0x3120 007530 call le_rf_rx_enable 
+:      007531 g24_receive_rxon:
+0x3121 007532 call g24_prep 
+0x3122 007533 bmark0 mark_ble_lr ,g24_receive_nolr 
+0x3123 007534 pulse dewhiten_code_calc 
+0x3124 007535 nop 30 
+0x3125 007536 call g24_prep 
+:      007537 g24_receive_nolr:
+0x3126 007538 disable user3 
+0x3127 007539 enable decode_fec0 
+0x3128 007540 enable is_rx 
+0x3129 007541 disable is_tx 
+0x312a 007542 enable swfine 
+0x312b 007543 fetch 2 ,mem_24g_rx_window 
+0x312c 007544 iforce stop_watch 
+0x312d 007545 correlate null ,timeout 
+0x312e 007546 nbranch g24_sync_timeout ,sync 
+0x312f 007547 call rf_debug_rx_sync_line 
+0x3130 007548 bmark1 mark_ble_lr ,g24_receive_skip_fec1 
+0x3131 007549 fetch 1 ,mem_24g_disable_fec1 
+0x3132 007550 nbranch g24_receive_skip_fec1 ,blank 
+0x3133 007551 disable decode_fec0 
+0x3134 007552 enable decode_fec1 
+:      007553 g24_receive_skip_fec1:
+0x3135 007554 enable enable_white 
+0x3136 007555 enable enable_crc 
+0x3137 007556 call g24_receive_byte 
+0x3138 007557 store 1 ,mem_24g_get_syncword_crc8 
+0x3139 007558 fetcht 1 ,mem_24g_syncword_crc8 
+0x313a 007559 isub temp ,null 
+0x313b 007560 nbranch g24_hec_error ,zero 
+0x313c 007561 bpatchx patch2d_6 ,mem_patch2d 
+0x313d 007562 disable user7 
+0x313e 007563 isolate1 mark_ble_lr ,mark 
+0x313f 007564 call g24_lr_receive_pdu_len ,true 
+0x3140 007565 branch g24_lr_len_error ,user7 
+0x3141 007566 call g24_receive_byte 
+0x3142 007567 store 1 ,mem_24g_rxbuf 
+0x3143 007568 bmark1 mark_24g_rxmode ,g24_receive_skip 
+0x3144 007569 fetch 1 ,mem_24g_rxbuf 
+0x3145 007570 fetcht 1 ,mem_24g_data_type 
+0x3146 007571 icompare bits_data ,temp 
+0x3147 007572 nbranch g24_type_error ,true 
+:      007573 g24_receive_skip:
+0x3148 007574 call g24_receive_byte 
+0x3149 007575 isolate1 mark_ble_lr ,mark 
+0x314a 007576 call g24_lr_receive_payload_len ,true 
+0x314b 007577 istore 1 ,contw 
+0x314c 007578 rshift3 pdata ,pdata 
+0x314d 007579 sub pdata ,0x1f ,null 
+0x314e 007580 nbranch g24_len_over_error ,positive 
+0x314f 007581 copy pdata ,loopcnt 
+0x3150 007582 branch g24rx_nopayload ,zero 
+:      007583 g24rx_loop:
+0x3151 007584 call g24_receive_byte 
+0x3152 007585 istore 1 ,contw 
+0x3153 007586 loop g24rx_loop 
+:      007587 g24rx_nopayload:
+0x3154 007588 bmark1 mark_24g_rxmode ,g24_receive_skip_rssi 
+0x3155 007589 copy contw ,rega 
+0x3156 007590 call g24_receive_byte 
+0x3157 007591 store 1 ,mem_rssi_hex_received 
+0x3158 007592 copy rega ,contw 
+:      007593 g24_receive_skip_rssi:
+0x3159 007594 parse demod ,bucket ,24 
+0x315a 007595 rshift32 pdata ,pdata 
+0x315b 007596 rshift16 pdata ,pdata 
+0x315c 007597 istore 3 ,contw 
+0x315d 007598 fetch 1 ,mem_24g_disable_fec1 
+0x315e 007599 nbranch g24_receive_skip_disable_fec1 ,blank 
+0x315f 007600 disable decode_fec1 
+:      007601 g24_receive_skip_next:
+0x3160 007602 isolate1 mark_24g_rxmode ,mark 
+0x3161 007603 call save_rssi_dec ,true 
+0x3162 007604 branch g24_crc_error ,crc_failed 
+0x3163 007605 call rf_debug_rx_crc_line 
+0x3164 007606 bpatchx patch2d_7 ,mem_patch2d 
+0x3165 007607 enable user3 
+0x3166 007608 call le_match_set_txfreq 
+0x3167 007609 rtnmark1 mark_24g_rxmode 
+0x3168 007610 fetch 1 ,mem_rssi_hex_received 
+0x3169 007611 fetcht 1 ,mem_rssi_hex_received_max_value 
+0x316a 007612 isub temp ,null 
+0x316b 007613 call copy_temp2pdata ,positive 
+0x316c 007614 branch rssi_signal 
+:      007616 g24_receive_skip_disable_fec1:
+0x316d 007617 disable decode_fec0 
+0x316e 007618 branch g24_receive_skip_next 
+:      007621 g24_lr_receive_pdu_len:
+0x316f 007622 call g24_receive_byte 
+0x3170 007623 sub pdata ,1 ,null 
+0x3171 007624 branch enable_user7 ,positive 
+0x3172 007625 increase -2 ,pdata 
+0x3173 007626 bmark1 mark_24g_rxmode ,g24_lr_receive_pdu_norssi 
+0x3174 007627 branch enable_user7 ,blank 
+0x3175 007628 increase -1 ,pdata 
+:      007629 g24_lr_receive_pdu_norssi:
+0x3176 007630 store 1 ,mem_temp 
+0x3177 007631 rtn 
+:      007633 g24_lr_receive_payload_len:
+0x3178 007634 and_into 0x07 ,pdata 
+0x3179 007635 fetcht 1 ,mem_temp 
+0x317a 007636 lshift3 temp ,temp 
+0x317b 007637 ior temp ,pdata 
+0x317c 007638 rtn 
+:      007640 g24_receive_byte:
+0x317d 007641 parse demod ,bucket ,8 
+0x317e 007642 rshift3 pwindow ,pdata 
+0x317f 007643 rtn 
+:      007645 g24_sync_timeout:
+0x3180 007646 jam err_sync_to ,mem_24g_off_type 
+0x3181 007647 isolate1 mark_24g_rxmode ,mark 
+0x3182 007648 call rssi_noise ,true 
+:      007649 g24_end_of_packet:
+0x3183 007650 bpatchx patch2e_0 ,mem_patch2e 
+0x3184 007651 call le_disable 
+0x3185 007652 disable encode_fec1 
+0x3186 007653 disable decode_fec1 
+0x3187 007654 branch end_of_packet 
+:      007656 g24_hec_error:
+0x3188 007657 jam err_hec ,mem_24g_off_type 
+0x3189 007658 branch g24_end_of_packet 
+:      007660 g24_lr_len_error:
+0x318a 007661 jam err_lr_len ,mem_24g_off_type 
+0x318b 007662 branch g24_end_of_packet 
+:      007664 g24_type_error:
+0x318c 007665 jam err_type ,mem_24g_off_type 
+0x318d 007666 branch g24_end_of_packet 
+:      007668 g24_len_over_error:
+0x318e 007669 jam err_len_over ,mem_24g_off_type 
+0x318f 007670 branch g24_end_of_packet 
+:      007672 g24_crc_error:
+0x3190 007673 jam err_crc ,mem_24g_off_type 
+0x3191 007674 branch g24_end_of_packet 
+:      007676 g24_set_freq_tx:
+0x3192 007677 call set_sync_on 
+0x3193 007678 fetcht 1 ,mem_24g_ch 
+0x3194 007679 branch set_freq_tx 
+:      007681 g24_transmit:
+0x3195 007682 bpatchx patch2e_1 ,mem_patch2e 
+0x3196 007683 fetch 1 ,mem_24g_tx_phy 
+0x3197 007684 call le_enable_phy_by_pdata 
+0x3198 007685 fetch 4 ,mem_24g_addr 
+0x3199 007686 iforce access 
+0x319a 007687 call g24_prep 
+0x319b 007688 call g24_set_freq_tx 
+0x319c 007689 set1 txgfsk ,radio_ctrl 
+0x319d 007690 enable encode_fec0 
+0x319e 007691 enable is_tx 
+0x319f 007692 disable is_rx 
+0x31a0 007693 call rf_debug_tx_on_line 
+0x31a1 007694 disable lr_s2en 
+0x31a2 007695 bmark1 mark_ble_lr ,g24_transmit_lr 
+0x31a3 007696 bmark1 mark_ble_2m ,g24_transmit_2m 
+0x31a4 007697 rshift16 access ,pdata 
+0x31a5 007698 rshift8 pdata ,pdata 
+0x31a6 007699 rshift4 pdata ,pdata 
+0x31a7 007700 inject mod ,40 
+:      007701 g24_transmit_packet:
+0x31a8 007702 bpatchx patch2e_2 ,mem_patch2e 
+0x31a9 007703 bmark1 mark_ble_lr ,g24_transmit_nolr 
+0x31aa 007704 fetch 1 ,mem_24g_disable_fec1 
+0x31ab 007705 nbranch g24_transmit_nolr ,blank 
+0x31ac 007706 disable encode_fec0 
+0x31ad 007707 enable encode_fec1 
+:      007708 g24_transmit_nolr:
+0x31ae 007709 enable enable_white 
+0x31af 007710 enable enable_crc 
+0x31b0 007711 fetch 1 ,mem_24g_txlen 
+0x31b1 007712 iforce loopcnt 
+0x31b2 007713 arg mem_24g_txpayload ,contr 
+:      007714 g24tr_loop:
+0x31b3 007715 ifetch 1 ,contr 
+0x31b4 007716 inject mod ,8 
+0x31b5 007717 loop g24tr_loop 
+0x31b6 007718 enable enable_parity 
+0x31b7 007719 inject mod ,24 
+0x31b8 007720 disable enable_parity 
+0x31b9 007721 bmark0 mark_ble_lr ,g24_transmit_skip 
+0x31ba 007722 disable enable_white 
+0x31bb 007723 setarg 0 
+0x31bc 007724 inject mod ,3 
+:      007725 g24_transmit_skip:
+0x31bd 007726 until null ,tx_clear 
+0x31be 007727 nop 100 
+0x31bf 007728 disable lr_s2en 
+0x31c0 007729 disable encode_fec0 
+0x31c1 007730 fetch 1 ,mem_24g_disable_fec1 
+0x31c2 007731 nbranch g24_transmit_skip_disable_fec1 ,blank 
+0x31c3 007732 disable encode_fec1 
+:      007733 g24_transmit_skip_disable_fec1:
+0x31c4 007734 disable encode_fec3 
+0x31c5 007735 call set_sync_on 
+0x31c6 007736 branch rf_debug_tx_off_line 
+:      007738 g24_transmit_lr:
+0x31c7 007739 arg 10 ,loopcnt 
+:      007740 g24_transmit_lr_preamble_loop:
+0x31c8 007741 setarg 0x3c 
+0x31c9 007742 inject mod ,8 
+0x31ca 007743 loop g24_transmit_lr_preamble_loop 
+0x31cb 007744 disable encode_fec0 
+0x31cc 007745 enable encode_fec3 
+0x31cd 007746 rshift16 access ,pdata 
+0x31ce 007747 rshift16 pdata ,pdata 
+0x31cf 007748 rshift4 pdata ,pdata 
+0x31d0 007749 inject mod ,32 
+0x31d1 007750 bmark1 mark_ble_lr_s8 ,g24_transmit_lr_s8 
+:      007751 g24_transmit_lr_s2:
+0x31d2 007752 setarg 1 
+0x31d3 007753 inject mod ,5 
+0x31d4 007754 enable lr_s2en 
+0x31d5 007755 branch g24_transmit_packet 
+:      007757 g24_transmit_lr_s8:
+0x31d6 007758 setarg 0 
+0x31d7 007759 inject mod ,5 
+0x31d8 007760 branch g24_transmit_packet 
+:      007762 g24_transmit_2m:
+0x31d9 007763 fetch 1 ,mem_system_clk 
+0x31da 007764 rshift pdata ,loopcnt 
+:      007765 g24_transmit_2m_dealy:
+0x31db 007766 nop 2 
+0x31dc 007767 loop g24_transmit_2m_dealy 
+0x31dd 007769 rshift16 access ,pdata 
+0x31de 007770 rshift8 pdata ,pdata 
+0x31df 007771 rshift4 pdata ,temp 
+0x31e0 007772 copy temp ,pdata 
+0x31e1 007773 inject mod ,8 
+0x31e2 007774 copy temp ,pdata 
+0x31e3 007775 inject mod ,40 
+0x31e4 007776 branch g24_transmit_packet 
+:      007784 g24_transmit_prep:
+0x31e5 007785 bpatchx patch2e_3 ,mem_patch2e 
+0x31e6 007786 fetch 1 ,mem_24g_tx_phy 
+0x31e7 007787 bbit1 bit_le_coded_phy ,g24_lr_transmit_prep 
+0x31e8 007789 fetch 1 ,mem_24g_datalen 
+0x31e9 007790 increase 3 ,pdata 
+0x31ea 007791 store 1 ,mem_24g_txlen 
+0x31eb 007793 fetch 1 ,mem_24g_syncword_crc8 
+0x31ec 007794 store 1 ,mem_24g_txpayload 
+0x31ed 007796 fetch 1 ,mem_24g_data_type 
+0x31ee 007797 istore 1 ,contw 
+0x31ef 007799 fetch 1 ,mem_24g_datalen 
+:      007800 g24_transmit_prep_pdu:
+0x31f0 007801 lshift3 pdata ,pdata 
+0x31f1 007802 fetcht 1 ,mem_24g_pid 
+0x31f2 007803 and temp ,0x03 ,temp 
+0x31f3 007804 lshift temp ,temp 
+0x31f4 007805 ior temp ,pdata 
+0x31f5 007806 fetcht 1 ,mem_24g_no_ack 
+0x31f6 007807 iadd temp ,pdata 
+0x31f7 007808 istore 1 ,contw 
+0x31f8 007810 fetch 1 ,mem_24g_datalen 
+0x31f9 007811 iforce loopcnt 
+0x31fa 007812 arg mem_24g_txbuf ,contr 
+0x31fb 007813 call memcpy 
+0x31fc 007814 bpatchx patch2e_4 ,mem_patch2e 
+0x31fd 007816 rtnmark0 mark_24g_rxmode 
+0x31fe 007817 fetch 1 ,mem_rssi_hex 
+0x31ff 007818 istore 1 ,contw 
+0x3200 007819 fetch 1 ,mem_24g_tx_phy 
+0x3201 007820 rtnbit1 bit_le_coded_phy 
+0x3202 007821 fetch 1 ,mem_24g_txlen 
+0x3203 007822 increase 1 ,pdata 
+0x3204 007823 store 1 ,mem_24g_txlen 
+0x3205 007824 rtn 
+:      007826 g24_lr_transmit_prep:
+0x3206 007828 fetch 1 ,mem_24g_datalen 
+0x3207 007829 increase 4 ,pdata 
+0x3208 007830 bmark0 mark_24g_rxmode ,g24_lr_transmit_prep_skip 
+0x3209 007831 increase 1 ,pdata 
+:      007832 g24_lr_transmit_prep_skip:
+0x320a 007833 store 1 ,mem_24g_txlen 
+0x320b 007835 fetch 1 ,mem_24g_syncword_crc8 
+0x320c 007836 store 1 ,mem_24g_txpayload 
+0x320d 007838 fetch 1 ,mem_24g_txlen 
+0x320e 007839 increase -2 ,pdata 
+0x320f 007840 istore 1 ,contw 
+0x3210 007842 fetch 1 ,mem_24g_data_type 
+0x3211 007843 istore 1 ,contw 
+0x3212 007844 setarg 0 
+0x3213 007845 branch g24_transmit_prep_pdu 
+:      007847 g24_read_len_pid_crc:
+0x3214 007848 bpatchx patch2e_5 ,mem_patch2e 
+0x3215 007850 fetch 1 ,mem_24g_rxbuf + 1 
+0x3216 007851 rshift3 pdata ,pdata 
+0x3217 007852 store 1 ,mem_24g_rxdata_length 
+0x3218 007854 increase 1 ,pdata 
+0x3219 007855 arg mem_24g_rxbuf + 1 ,contr 
+0x321a 007856 iadd contr ,contr 
+0x321b 007857 ifetch 3 ,contr 
+0x321c 007858 store 3 ,mem_24g_sta_crc 
+0x321d 007860 fetch 1 ,mem_24g_rxbuf + 1 
+0x321e 007861 rshift pdata ,pdata 
+0x321f 007862 and pdata ,0x03 ,pdata 
+0x3220 007863 store 1 ,mem_24g_sta_pid 
+0x3221 007864 rtn 
+:      007867 g24_ch:
+0x3222 007868 bpatchx patch2e_6 ,mem_patch2e 
+0x3223 007869 fetcht 1 ,mem_24g_current_ch_number 
+0x3224 007870 call g24_ch_map_size 
+0x3225 007871 storet 1 ,mem_24g_current_ch_number 
+0x3226 007872 rtn 
+:      007874 g24_ch_map_size:
+0x3227 007875 bpatchx patch2e_7 ,mem_patch2e 
+0x3228 007876 call g24_ch_calc 
+0x3229 007877 increase 1 ,temp 
+0x322a 007878 and_into 3 ,temp 
+0x322b 007879 rtn 
+:      007881 g24_ch_calc:
+0x322c 007882 bpatchx patch2f_0 ,mem_patch2f 
+0x322d 007883 fetch 1 ,mem_24g_addr 
+0x322e 007884 and_into 0x03 ,pdata 
+0x322f 007885 mul32 pdata ,4 ,rega 
+0x3230 007886 setarg mem_24g_ch_map1 
+0x3231 007887 iadd rega ,pdata 
+0x3232 007888 iadd temp ,contr 
+0x3233 007889 ifetch 1 ,contr 
+0x3234 007890 store 1 ,mem_24g_ch 
+0x3235 007891 rtn 
+:      007894 g24_update_addr_and_synccrc8:
+0x3236 007895 store 4 ,mem_24g_addr 
+0x3237 007897 bpatchx patch2f_1 ,mem_patch2f 
+:      007898 g24_syncword_crc8:
+0x3238 007899 arg 0 ,rega 
+0x3239 007900 arg 4 ,loopcnt 
+0x323a 007901 arg mem_24g_addr ,contr 
+:      007902 g24_syncword_crc8_loop:
+0x323b 007903 ifetch 1 ,contr 
+0x323c 007904 iadd rega ,rega 
+0x323d 007905 loop g24_syncword_crc8_loop 
+0x323e 007906 copy rega ,pdata 
+0x323f 007907 store 2 ,mem_24g_syncword 
+0x3240 007908 fetch 1 ,mem_24g_syncword 
+0x3241 007909 fetcht 1 ,mem_24g_syncword + 1 
+0x3242 007910 iadd temp ,pdata 
+0x3243 007911 store 1 ,mem_24g_syncword_crc8 
+0x3244 007912 rtn 
+:      007915 g24_timer_check:
+0x3245 007916 bpatchx patch2f_2 ,mem_patch2f 
+0x3246 007917 call disable_user 
+0x3247 007918 fetcht 4 ,mem_24g_tx_btclk 
+0x3248 007919 copy clkn_bt ,pdata 
+0x3249 007920 isub temp ,null 
+0x324a 007921 ncall g24_timer_timeout ,positive 
+0x324b 007922 copy pdata ,regb 
+0x324c 007923 fetch 4 ,mem_24g_tx_btclk 
+0x324d 007924 fetcht 1 ,mem_24g_interval 
+0x324e 007925 iadd temp ,temp 
+0x324f 007926 copy regb ,pdata 
+0x3250 007927 isub temp ,null 
+0x3251 007928 nrtn positive 
+0x3252 007929 set0 28 ,pdata 
+0x3253 007930 store 4 ,mem_24g_tx_btclk 
+0x3254 007931 branch enable_user 
+:      007933 g24_timer_timeout:
+0x3255 007934 rtn zero 
+0x3256 007935 set1 28 ,pdata 
+0x3257 007936 rtn 
+:      007938 g24_timer_init:
+0x3258 007939 setarg 0 
+0x3259 007940 store 4 ,mem_24g_tx_btclk 
+0x325a 007941 rtn 
+:      007949 g24_chmap_param_init:
+0x325b 007950 bpatchx patch2f_3 ,mem_patch2f 
+0x325c 007951 setsect 0 ,0x1300 
+0x325d 007952 setsect 1 ,0x1908b 
+0x325e 007953 setsect 2 ,0x36150 
+0x325f 007954 setsect 3 ,0x3d20 
+0x3260 007955 store 9 ,mem_24g_ch_map1 
+0x3261 007956 setsect 0 ,0x3a1a 
+0x3262 007957 setsect 1 ,0xc453 
+0x3263 007958 setsect 2 ,0xd312 
+0x3264 007959 setsect 3 ,0x1 
+0x3265 007960 istore 7 ,contw 
+0x3266 007961 fetch 1 ,mem_24g_ch_map_update 
+0x3267 007962 rtn blank 
+0x3268 007963 arg mem_24g_ch_update_map1 ,contr 
+0x3269 007964 arg mem_24g_ch_map1 ,contw 
+0x326a 007965 branch memcpy16 
+:      007973 g24_chamap_param_update:
+0x326b 007974 bpatchx patch2f_4 ,mem_patch2f 
+0x326c 007975 setarg 0x4e001e 
+0x326d 007976 store 3 ,mem_24g_ch_update_map1 + 1 
+0x326e 007977 setarg 0x032303 
+0x326f 007978 istore 3 ,contw 
+0x3270 007979 setarg 0x250642 
+0x3271 007980 istore 3 ,contw 
+0x3272 007981 setarg 0x094c06 
+0x3273 007982 istore 3 ,contw 
+0x3274 007983 setarg 0x3c0927 
+0x3275 007984 istore 3 ,contw 
+0x3276 007985 jam 1 ,mem_24g_ch_map_update 
+0x3277 007986 rtn 
+:      007989 g24_rx_window_init:
+0x3278 007990 bpatchx patch2f_5 ,mem_patch2f 
+0x3279 007991 arg 0x6978 ,temp 
+0x327a 007992 bmark1 mark_24g_rxmode ,g24_rx_window_store 
+0x327b 007993 arg 0x12c0 ,temp 
+0x327c 007994 fetch 1 ,mem_24g_rx_phy 
+0x327d 007995 bbit0 2 ,g24_rx_window_store 
+0x327e 007996 arg 0x2ee0 ,temp 
+:      007997 g24_rx_window_store:
+0x327f 007998 storet 2 ,mem_24g_rx_window 
+0x3280 007999 rtn 
+:      008001 g24_enable_1m:
+0x3281 008002 jam 0x01 ,mem_24g_rx_phy 
+0x3282 008003 jam 0x01 ,mem_24g_tx_phy 
+0x3283 008004 rtn 
+:      008006 g24_enable_2m:
+0x3284 008007 jam 0x02 ,mem_24g_rx_phy 
+0x3285 008008 jam 0x02 ,mem_24g_tx_phy 
+0x3286 008009 rtn 
+:      008033 g24_pair_param_init:
+0x3287 008034 bpatchx patch2f_6 ,mem_patch2f 
+0x3288 008035 jam 0x4e ,mem_24g_pair_ch 
+0x3289 008036 setarg 0x101520 
+0x328a 008037 store 3 ,mem_24g_pair_addr 
+0x328b 008038 setarg 0x05 
+0x328c 008039 istore 1 ,contw 
+0x328d 008040 rtn 
+:      008046 g24_pair_timeout_timer:
+0x328e 008047 arg mem_24g_pair_timeout ,regc 
+0x328f 008048 arg g24_stop_24g_mode ,regb 
+0x3290 008049 branch timer_single_step_2b 
+:      008051 g24_pair_start:
+0x3291 008052 set1 mark_24g ,mark 
+0x3292 008053 fetch 1 ,mem_24g_conn_sm 
+0x3293 008054 set0 state_24g_reconn ,pdata 
+0x3294 008055 set1 state_24g_pair ,pdata 
+0x3295 008056 store 1 ,mem_24g_conn_sm 
+0x3296 008057 setarg 0 
+0x3297 008058 store 2 ,mem_24g_reconn_timeout 
+0x3298 008059 fetch 2 ,mem_24g_pair_timeout_init 
+0x3299 008060 store 2 ,mem_24g_pair_timeout 
+0x329a 008061 jam 0 ,mem_24g_pair_no_ack 
+0x329b 008062 call g24_pair_sm_reinit 
+:      008063 g24_pair_init_param:
+0x329c 008064 jam 0 ,mem_24g_pid 
+0x329d 008065 fetch 1 ,mem_24g_pair_ch 
+0x329e 008066 store 1 ,mem_24g_ch 
+0x329f 008067 fetch 1 ,mem_24g_pair_tx_power 
+0x32a0 008068 store 1 ,mem_tx_power 
+0x32a1 008069 fetch 4 ,mem_24g_pair_addr 
+0x32a2 008070 branch g24_update_addr_and_synccrc8 
+:      008073 g24_pair_dispatch:
+0x32a3 008074 bpatchx patch2f_7 ,mem_patch2f 
+0x32a4 008075 jam default_24g_device ,mem_24g_reconn_type 
+0x32a5 008076 fetch 2 ,mem_24g_pair_count 
+0x32a6 008077 increase 1 ,pdata 
+0x32a7 008078 store 2 ,mem_24g_pair_count 
+0x32a8 008079 fetch 1 ,mem_24g_pair_count 
+0x32a9 008080 and pdata ,0xff ,pdata 
+0x32aa 008081 nrtn blank 
+0x32ab 008082 fetch 1 ,mem_24g_pair_sm 
+0x32ac 008083 beq state_24g_pairing_success ,g24_pair_exit 
+0x32ad 008084 beq state_24g_pairing_1 ,g24_pair_sm_1 
+0x32ae 008085 beq state_24g_pairing_2 ,g24_pair_sm_2 
+0x32af 008086 beq state_24g_pairing_3 ,g24_pair_sm_3 
+0x32b0 008087 beq state_24g_pairing_4 ,g24_pair_sm_4 
+0x32b1 008088 rtn 
+:      008090 g24_pair_sm_1:
+0x32b2 008091 jam datatype_attemp ,mem_24g_txbuf 
+0x32b3 008092 branch g24_pair_sm_prep 
+:      008094 g24_pair_sm_2:
+0x32b4 008095 fetch 1 ,mem_24g_pair_switch 
+0x32b5 008096 branch g24_pair_sm_2_skip ,blank 
+0x32b6 008097 fetch 4 ,mem_24g_device_addr 
+0x32b7 008098 call g24_update_addr_and_synccrc8 
+:      008099 g24_pair_sm_2_skip:
+0x32b8 008100 jam datatype_bind ,mem_24g_txbuf 
+0x32b9 008101 branch g24_pair_sm_prep 
+:      008103 g24_pair_sm_3:
+0x32ba 008104 jam datatype_config ,mem_24g_txbuf 
+0x32bb 008105 fetch 1 ,mem_24g_pair_switch 
+0x32bc 008106 branch g24_pair_sm_prep ,blank 
+0x32bd 008107 fetch 4 ,mem_24g_receiver_addr 
+0x32be 008108 store 4 ,mem_24g_txbuf + 2 
+0x32bf 008109 branch g24_pair_sm_common 
+:      008111 g24_pair_sm_4:
+0x32c0 008112 jam datatype_ok ,mem_24g_txbuf 
+:      008113 g24_pair_sm_prep:
+0x32c1 008114 fetch 4 ,mem_24g_device_addr 
+0x32c2 008115 store 4 ,mem_24g_txbuf + 2 
+:      008116 g24_pair_sm_common:
+0x32c3 008117 fetch 1 ,mem_24g_data_type 
+0x32c4 008118 and_into bits_data ,pdata 
+0x32c5 008119 store 1 ,mem_24g_txbuf + 1 
+0x32c6 008120 jam 0 ,mem_24g_txbuf + 6 
+0x32c7 008121 jam 7 ,mem_24g_datalen 
+0x32c8 008122 call g24_transmit_prep 
+0x32c9 008123 call g24_transmit_receive_ack 
+0x32ca 008124 nrtn sync 
+0x32cb 008125 nrtn user3 
+0x32cc 008126 call g24_txbuf_clear 
+0x32cd 008127 call g24_ackpayload_parse 
+0x32ce 008128 bpatchx patch30_0 ,mem_patch30 
+0x32cf 008129 fetch 1 ,mem_24g_pair_sm 
+0x32d0 008130 rtneq state_24g_pairing_success 
+0x32d1 008131 beq state_24g_pairing_1 ,g24_pair_sm_1_waiting_ack 
+0x32d2 008132 beq state_24g_pairing_2 ,g24_pair_sm_2_waiting_ack 
+0x32d3 008133 beq state_24g_pairing_3 ,g24_pair_sm_3_waiting_ack 
+0x32d4 008134 beq state_24g_pairing_4 ,g24_pair_sm_4_waiting_ack 
+0x32d5 008135 rtn 
+:      008137 g24_pair_sm_reinit:
+0x32d6 008138 jam state_24g_pairing_2 ,mem_24g_pair_sm 
+0x32d7 008139 fetch 1 ,mem_24g_pair_switch 
+0x32d8 008140 rtn blank 
+0x32d9 008141 jam state_24g_pairing_1 ,mem_24g_pair_sm 
+0x32da 008142 rtn 
+:      008144 g24_pair_sm_1_waiting_ack:
+0x32db 008145 jam state_24g_pairing_2 ,mem_24g_pair_sm 
+0x32dc 008146 branch g24_transmit_abandon 
+:      008148 g24_pair_sm_2_waiting_ack:
+0x32dd 008149 fetch 1 ,mem_24g_pair_switch 
+0x32de 008150 branch g24_pair_sm_2_waiting_ack_skip ,blank 
+0x32df 008151 fetch 4 ,mem_24g_rxpayload + 2 
+0x32e0 008152 store 4 ,mem_24g_receiver_addr 
+:      008153 g24_pair_sm_2_waiting_ack_skip:
+0x32e1 008154 jam state_24g_pairing_3 ,mem_24g_pair_sm 
+0x32e2 008155 branch g24_transmit_abandon 
+:      008157 g24_pair_sm_3_waiting_ack:
+0x32e3 008158 fetch 1 ,mem_24g_pair_switch 
+0x32e4 008159 branch g24_pair_sm_3_waiting_ack_skip ,blank 
+0x32e5 008160 fetch 4 ,mem_24g_rxpayload + 2 
+0x32e6 008161 fetcht 4 ,mem_24g_device_addr 
+0x32e7 008162 isub temp ,null 
+0x32e8 008163 nrtn zero 
+:      008164 g24_pair_sm_3_waiting_ack_skip:
+0x32e9 008165 jam state_24g_pairing_4 ,mem_24g_pair_sm 
+0x32ea 008166 branch g24_transmit_abandon 
+:      008168 g24_pair_sm_4_waiting_ack:
+0x32eb 008169 fetch 1 ,mem_24g_pair_switch 
+0x32ec 008170 branch g24_pair_sm_4_waiting_ack_skip ,blank 
+0x32ed 008171 fetch 4 ,mem_24g_rxpayload + 2 
+0x32ee 008172 fetcht 4 ,mem_24g_receiver_addr 
+0x32ef 008173 isub temp ,null 
+0x32f0 008174 nrtn zero 
+:      008175 g24_pair_sm_4_waiting_ack_skip:
+0x32f1 008176 jam state_24g_pairing_success ,mem_24g_pair_sm 
+0x32f2 008177 jam bt_evt_24g_pairing_complete ,mem_fifo_temp 
+0x32f3 008178 call ui_ipc_send_event 
+0x32f4 008179 setarg 0 
+0x32f5 008180 store 2 ,mem_24g_pair_timeout 
+0x32f6 008181 fetch 4 ,mem_24g_rxpayload + 2 
+0x32f7 008182 call g24_update_addr_and_synccrc8 
+:      008183 g24_pair_exit:
+0x32f8 008184 fetch 1 ,mem_24g_conn_sm 
+0x32f9 008185 set0 state_24g_pair ,pdata 
+0x32fa 008186 store 1 ,mem_24g_conn_sm 
+0x32fb 008187 branch g24_transmit_abandon 
+:      008213 g24_bind_mode_enable:
+0x32fc 008214 jam dongle_bind ,mem_24g_work_mode 
+0x32fd 008215 jam clear_init ,mem_24g_mode_init 
+0x32fe 008216 rtn 
+:      008218 g24_bind_init:
+0x32ff 008219 fetch 1 ,mem_24g_mode_init 
+0x3300 008220 rtnbit1 dongle_bind 
+0x3301 008221 set1 dongle_bind ,pdata 
+0x3302 008222 store 1 ,mem_24g_mode_init 
+0x3303 008223 setarg 0 
+0x3304 008224 store 3 ,mem_24g_device1_bind_step 
+0x3305 008225 store 1 ,mem_24g_device1_bind_disable 
+0x3306 008226 store 1 ,mem_24g_device2_bind_disable 
+0x3307 008227 store 4 ,mem_24g_transmitter_addr 
+0x3308 008228 jam 1 ,mem_24g_ackpayload_enable 
+0x3309 008229 branch g24_pair_init_param 
+:      008232 g24_bind_ackpayload_prep:
+0x330a 008233 jam 1 ,mem_24g_ackpayload_enable 
+0x330b 008234 jam 0x08 ,mem_24g_datalen 
+0x330c 008235 arg mem_24g_bind_payload ,contr 
+0x330d 008236 arg mem_24g_txbuf ,contw 
+0x330e 008237 branch memcpy8 
+:      008240 g24_bind_data_process:
+0x330f 008241 bpatchx patch30_1 ,mem_patch30 
+0x3310 008242 call g24_rx_interrupt_clear 
+0x3311 008243 call g24_receive_packet 
+0x3312 008244 nbranch g24_rx_interrupt_clear ,user3 
+0x3313 008245 call g24_bind_data_parse 
+0x3314 008246 call g24_transmit_ack 
+0x3315 008247 call g24_bind_device_status_check 
+0x3316 008248 call dongle_kb_bind_soft_reset 
+0x3317 008249 fetch 1 ,mem_24g_pair_switch 
+0x3318 008250 rtn blank 
+0x3319 008251 fetch 4 ,mem_24g_transmitter_addr 
+0x331a 008252 rtn blank 
+0x331b 008253 branch g24_update_addr_and_synccrc8 
+:      008255 g24_bind_data_error:
+0x331c 008256 call g24_rx_interrupt_clear 
+0x331d 008257 branch g24_end_of_packet 
+:      008259 g24_bind_data_parse:
+0x331e 008260 jam bind_mode_continue ,mem_24g_bind_mode_continue 
+0x331f 008261 arg mem_24g_rxbuf ,contr 
+0x3320 008262 arg mem_24g_rxdata_temp ,contw 
+0x3321 008263 call memcpy8 
+0x3322 008264 bpatchx patch30_2 ,mem_patch30 
+0x3323 008265 fetch 1 ,mem_24g_rxdata_temp + 2 
+0x3324 008266 beq datatype_bind ,g24_bind_first_step 
+0x3325 008267 beq datatype_config ,g24_bind_second_step 
+0x3326 008268 beq datatype_ok ,g24_bind_third_step 
+0x3327 008269 beq datatype_attemp ,g24_data_attemp 
+0x3328 008270 rtn 
+:      008273 g24_bind_first_step:
+0x3329 008274 fetch 1 ,mem_24g_rxdata_temp + 3 
+0x332a 008275 beq datatype_device1 ,g24_bind_first_step_device1 
+0x332b 008276 beq datatype_device2 ,g24_bind_first_step_device2 
+0x332c 008277 rtn 
+:      008279 g24_bind_first_step_device1:
+0x332d 008280 fetch 1 ,mem_24g_device1_bind_disable 
+0x332e 008281 nrtn blank 
+0x332f 008282 jam 1 ,mem_24g_device1_bind_step 
+:      008283 g24_bind_dvc1_payload_cfg:
+0x3330 008284 jam datatype_device1 ,mem_24g_bind_payload 
+:      008285 g24_bind_payload_cfg:
+0x3331 008286 jam 0x80 ,mem_24g_bind_payload + 1 
+0x3332 008287 fetch 6 ,mem_24g_lap 
+0x3333 008288 store 6 ,mem_24g_bind_payload + 2 
+0x3334 008289 rtn 
+:      008291 g24_bind_first_step_device2:
+0x3335 008292 fetch 1 ,mem_24g_device2_bind_disable 
+0x3336 008293 nrtn blank 
+0x3337 008294 jam 1 ,mem_24g_device2_bind_step 
+:      008295 g24_bind_dvc2_payload_cfg:
+0x3338 008296 jam datatype_device2 ,mem_24g_bind_payload 
+0x3339 008297 branch g24_bind_payload_cfg 
+:      008300 g24_bind_second_step:
+0x333a 008301 fetch 1 ,mem_24g_pair_switch 
+0x333b 008302 branch g24_bind_second_step_skip ,blank 
+0x333c 008303 fetch 4 ,mem_24g_rxdata_temp + 4 
+0x333d 008304 fetcht 4 ,mem_24g_lap 
+0x333e 008305 isub temp ,null 
+0x333f 008306 nrtn zero 
+:      008307 g24_bind_second_step_skip:
+0x3340 008308 fetch 1 ,mem_24g_rxdata_temp + 3 
+0x3341 008309 beq datatype_device1 ,g24_bind_second_step_device1 
+0x3342 008310 beq datatype_device2 ,g24_bind_second_step_device2 
+0x3343 008311 rtn 
+:      008313 g24_bind_second_step_device1:
+0x3344 008314 fetch 1 ,mem_24g_device1_bind_disable 
+0x3345 008315 nrtn blank 
+0x3346 008316 fetch 1 ,mem_24g_device1_bind_step 
+0x3347 008317 beq 1 ,g24_bind_dvc1_step_set2 
+0x3348 008318 rtn 
+:      008319 g24_bind_dvc1_step_set2:
+0x3349 008320 jam 2 ,mem_24g_device1_bind_step 
+0x334a 008321 fetch 1 ,mem_24g_pair_switch 
+0x334b 008322 branch g24_bind_dvc1_payload_cfg ,blank 
+:      008323 g24_bind_dvc1_payload_cfg_transmitter_addr:
+0x334c 008324 jam datatype_device1 ,mem_24g_bind_payload 
+:      008325 g24_bind_payload_cfg_transmitter_addr:
+0x334d 008326 jam 0x80 ,mem_24g_bind_payload + 1 
+0x334e 008327 fetch 4 ,mem_24g_transmitter_addr 
+0x334f 008328 store 4 ,mem_24g_bind_payload + 2 
+0x3350 008329 branch enable_user 
+:      008331 g24_bind_second_step_device2:
+0x3351 008332 fetch 1 ,mem_24g_device2_bind_disable 
+0x3352 008333 nrtn blank 
+0x3353 008334 fetch 1 ,mem_24g_device2_bind_step 
+0x3354 008335 beq 1 ,g24_bind_dvc2_step_set2 
+0x3355 008336 rtn 
+:      008337 g24_bind_dvc2_step_set2:
+0x3356 008338 jam 2 ,mem_24g_device2_bind_step 
+0x3357 008339 fetch 1 ,mem_24g_pair_switch 
+0x3358 008340 branch g24_bind_dvc2_payload_cfg ,blank 
+0x3359 008341 jam datatype_device2 ,mem_24g_bind_payload 
+0x335a 008342 branch g24_bind_payload_cfg_transmitter_addr 
+:      008345 g24_bind_third_step:
+0x335b 008346 fetch 1 ,mem_24g_pair_switch 
+0x335c 008347 branch g24_bind_third_step_skip ,blank 
+0x335d 008348 fetch 4 ,mem_24g_rxdata_temp + 4 
+0x335e 008349 fetcht 4 ,mem_24g_transmitter_addr 
+0x335f 008350 isub temp ,null 
+0x3360 008351 nrtn zero 
+:      008352 g24_bind_third_step_skip:
+0x3361 008353 fetch 1 ,mem_24g_rxdata_temp + 3 
+0x3362 008354 beq datatype_device1 ,g24_bind_third_step_device1 
+0x3363 008355 beq datatype_device2 ,g24_bind_third_step_device2 
+0x3364 008356 rtn 
+:      008358 g24_bind_third_step_device1:
+0x3365 008359 fetch 1 ,mem_24g_device1_bind_disable 
+0x3366 008360 nrtn blank 
+0x3367 008361 fetch 1 ,mem_24g_device1_bind_step 
+0x3368 008362 beq 2 ,g24_bind_dvc1_step_success 
+0x3369 008363 rtn 
+:      008364 g24_bind_dvc1_step_success:
+0x336a 008365 jam 1 ,mem_24g_device1_bind_disable 
+0x336b 008367 call g24_bind_dvc1_payload_cfg 
+0x336c 008368 fetch 1 ,mem_24g_bind_device_status 
+0x336d 008369 or_into 0x01 ,pdata 
+0x336e 008370 store 1 ,mem_24g_bind_device_status 
+:      008371 g24_bind_exit:
+0x336f 008372 setarg 0 
+0x3370 008373 store 2 ,mem_24g_device1_bind_step 
+0x3371 008374 rtn 
+:      008376 g24_bind_third_step_device2:
+0x3372 008377 fetch 1 ,mem_24g_device2_bind_disable 
+0x3373 008378 nrtn blank 
+0x3374 008379 fetch 1 ,mem_24g_device2_bind_step 
+0x3375 008380 bne 0 ,g24_bind_dvc2_step_success 
+0x3376 008381 rtn 
+:      008382 g24_bind_dvc2_step_success:
+0x3377 008383 jam 1 ,mem_24g_device2_bind_disable 
+0x3378 008385 call g24_bind_dvc2_payload_cfg 
+0x3379 008386 fetch 1 ,mem_24g_bind_device_status 
+0x337a 008387 or_into 0x02 ,pdata 
+0x337b 008388 store 1 ,mem_24g_bind_device_status 
+0x337c 008389 call g24_bind_exit 
+0x337d 008390 branch dongle_g24_store_dvc2_bind_flag 
+:      008392 g24_binding_device_check:
+0x337e 008393 fetch 1 ,mem_24g_work_mode 
+0x337f 008394 rtnne dongle_bind 
+0x3380 008395 fetch 1 ,mem_24g_pair_mode 
+0x3381 008396 nrtn blank 
+0x3382 008397 fetch 1 ,mem_24g_rxbuf + 3 
+0x3383 008398 beq datatype_device1 ,g24_binding_dvc1_status 
+0x3384 008399 beq datatype_device2 ,g24_binding_dvc2_status 
+0x3385 008400 rtn 
+:      008401 g24_binding_dvc1_status:
+0x3386 008402 fetch 1 ,mem_24g_bind_device_living 
+0x3387 008403 rtnbit0 0 
+:      008404 disable_user3:
+0x3388 008405 disable user3 
+0x3389 008406 rtn 
+:      008407 g24_binding_dvc2_status:
+0x338a 008408 fetch 1 ,mem_24g_bind_device_living 
+0x338b 008409 rtnbit0 1 
+0x338c 008410 branch disable_user3 
+:      008412 g24_binding_dvc1_living:
+0x338d 008413 fetch 1 ,mem_24g_pair_mode 
+0x338e 008414 nrtn blank 
+0x338f 008415 fetch 1 ,mem_24g_bind_device_living 
+0x3390 008416 or_into 0x01 ,pdata 
+0x3391 008417 store 1 ,mem_24g_bind_device_living 
+0x3392 008418 rtn 
+:      008420 g24_binding_dvc2_living:
+0x3393 008421 fetch 1 ,mem_24g_pair_mode 
+0x3394 008422 nrtn blank 
+0x3395 008423 fetch 1 ,mem_24g_bind_device_living 
+0x3396 008424 or_into 0x02 ,pdata 
+0x3397 008425 store 1 ,mem_24g_bind_device_living 
+0x3398 008426 rtn 
+:      008429 g24_bind_device_status_check:
+0x3399 008430 fetch 1 ,mem_24g_bind_device_status 
+0x339a 008431 rtn blank 
+:      008432 g24_bind_device_status:
+0x339b 008433 fetch 1 ,mem_24g_rxdata_temp + 3 
+0x339c 008434 beq datatype_device1 ,g24_binding_dvc1_living 
+0x339d 008435 beq datatype_device2 ,g24_binding_dvc2_living 
+0x339e 008436 rtn 
+:      008455 g24_receive_init:
+0x339f 008456 set1 mark_24g_rxmode ,mark 
+0x33a0 008457 fetch 1 ,mem_tx_power 
+0x33a1 008458 store 1 ,mem_tx_power_temp 
+0x33a2 008459 branch rssi_receiver_buff_init 
+:      008461 g24_receive_dispatch:
+0x33a3 008462 fetch 2 ,mem_cb_24g_receive_process 
+0x33a4 008463 branch callback_func 
+:      008465 g24_ackpayload_prep:
+0x33a5 008466 bpatchx patch30_3 ,mem_patch30 
+0x33a6 008467 jam 0 ,mem_24g_datalen 
+0x33a7 008468 fetch 1 ,mem_24g_ackpayload_enable 
+0x33a8 008469 rtn blank 
+0x33a9 008470 fetch 2 ,mem_cb_24g_ackpayload 
+0x33aa 008471 branch callback_func 
+:      008474 g24_receive_packet_start:
+0x33ab 008475 call g24_receive_transmit_ack 
+0x33ac 008476 nbranch g24_rx_interrupt_clear ,user3 
+:      008477 g24_receive_packet_parse:
+0x33ad 008478 call g24_receive_packet_parse_pid_crc 
+0x33ae 008479 nbranch g24_rx_interrupt_clear ,user 
+0x33af 008480 fetch 1 ,mem_24g_rxdata_length 
+0x33b0 008481 branch g24_rx_interrupt_clear ,blank 
+0x33b1 008482 increase 2 ,pdata 
+0x33b2 008483 iforce loopcnt 
+0x33b3 008484 arg mem_24g_rxbuf ,contr 
+0x33b4 008485 arg mem_24g_rxdata_temp ,contw 
+0x33b5 008486 call memcpy 
+0x33b6 008487 jam 0 ,mem_24g_mode_switch 
+0x33b7 008488 fetch 1 ,mem_24g_pair_mode 
+0x33b8 008489 call g24_enable_nodata_timer ,blank 
+0x33b9 008490 bpatchx patch30_4 ,mem_patch30 
+0x33ba 008491 fetch 1 ,mem_24g_rxdata_temp + 2 
+0x33bb 008492 beq datatype_device1 ,g24_data_device1 
+0x33bc 008493 beq datatype_device2 ,g24_data_device2 
+0x33bd 008494 beq datatype_attemp ,g24_data_receive_attemp 
+:      008495 g24_rx_interrupt_clear:
+0x33be 008496 bpatchx patch30_5 ,mem_patch30 
+0x33bf 008497 arg mem_24g_rxbuf ,contw 
+0x33c0 008498 arg 66 ,loopcnt 
+0x33c1 008499 branch clear_mem 
+:      008501 g24_data_receive_attemp:
+0x33c2 008502 call g24_bind_device_status 
+0x33c3 008503 branch g24_data_attemp 
+:      008505 g24_data_device1:
+0x33c4 008506 call g24_binding_dvc1_living 
+0x33c5 008507 call g24_ch_timer_reinit 
+0x33c6 008508 fetch 1 ,mem_24g_abort_packet 
+0x33c7 008509 fetcht 1 ,mem_24g_rxdata_temp 
+0x33c8 008510 isolate1 bit_abort ,temp 
+0x33c9 008511 setflag true ,0 ,pdata 
+0x33ca 008512 store 1 ,mem_24g_abort_packet 
+0x33cb 008513 beq 1 ,g24_data_attemp_device1_abort 
+0x33cc 008514 fetch 1 ,mem_24g_hop_packet 
+0x33cd 008515 fetcht 1 ,mem_24g_rxdata_temp 
+0x33ce 008516 isolate1 bit_hop ,temp 
+0x33cf 008517 setflag true ,0 ,pdata 
+0x33d0 008518 store 1 ,mem_24g_hop_packet 
+0x33d1 008519 fetch 2 ,mem_cb_24g_data_device1 
+0x33d2 008520 branch callback_func 
+:      008522 g24_data_device2:
+0x33d3 008523 call g24_binding_dvc2_living 
+0x33d4 008524 fetcht 1 ,mem_24g_rxdata_temp 
+0x33d5 008525 isolate1 bit_abort ,temp 
+0x33d6 008526 branch g24_data_attemp_device2_abort ,true 
+0x33d7 008527 fetch 2 ,mem_cb_24g_data_device2 
+0x33d8 008528 branch callback_func 
+:      008530 g24_data_attemp_device1_abort:
+0x33d9 008531 fetch 1 ,mem_device_option 
+0x33da 008532 sub pdata ,dvc_op_car ,null 
+0x33db 008533 call car_stop_blink ,zero 
+0x33dc 008534 fetch 1 ,mem_24g_device1_bind_disable 
+0x33dd 008535 nrtn blank 
+0x33de 008536 jam 1 ,mem_24g_device1_bind_disable 
+0x33df 008537 fetch 4 ,mem_24g_rxdata_temp + 10 
+0x33e0 008538 branch g24_store_device1_addr 
+:      008539 g24_data_attemp_device2_abort:
+0x33e1 008540 fetch 4 ,mem_24g_rxdata_temp + 10 
+0x33e2 008541 branch g24_store_device2_addr 
+:      008544 g24_receive_packet_parse_pid_crc:
+0x33e3 008545 call disable_user 
+0x33e4 008546 fetch 1 ,mem_24g_sta_pid 
+0x33e5 008547 fetcht 1 ,mem_24g_last_pid 
+0x33e6 008548 isub temp ,null 
+0x33e7 008549 ncall enable_user ,zero 
+0x33e8 008550 fetch 1 ,mem_24g_sta_pid 
+0x33e9 008551 store 1 ,mem_24g_last_pid 
+0x33ea 008552 fetch 3 ,mem_24g_sta_crc 
+0x33eb 008553 fetcht 3 ,mem_24g_last_crc 
+0x33ec 008554 isub temp ,null 
+0x33ed 008555 ncall enable_user ,zero 
+0x33ee 008556 fetch 3 ,mem_24g_sta_crc 
+0x33ef 008557 store 3 ,mem_24g_last_crc 
+0x33f0 008558 rtn 
+:      008560 g24_receive_transmit_ack:
+0x33f1 008561 call g24_rx_interrupt_clear 
+0x33f2 008562 call g24_receive_packet 
+0x33f3 008563 nrtn user3 
+:      008564 g24_transmit_ack:
+0x33f4 008566 fetch 1 ,mem_24g_rxbuf 
+0x33f5 008567 store 1 ,mem_24g_data_type 
+0x33f6 008569 call g24_read_len_pid_crc 
+0x33f7 008571 fetch 1 ,mem_24g_rxbuf + 1 
+0x33f8 008572 isolate1 bit_ack_24g ,pdata 
+0x33f9 008573 branch g24tx_no_ack ,true 
+:      008574 g24tx_with_ack:
+0x33fa 008575 call g24_ackpayload_prep 
+0x33fb 008576 call g24_transmit_prep 
+0x33fc 008577 call g24_transmit 
+:      008578 g24tx_no_ack:
+0x33fd 008579 branch g24_end_of_packet 
+:      008582 g24_enable_nodata_timer:
+0x33fe 008583 jam 1 ,mem_24g_nodata_timer_enable 
+:      008584 g24_enable_nodata_timer_init:
+0x33ff 008585 setarg timer_nodata_delay 
+0x3400 008586 arg g24_timer_nodata ,queue 
+0x3401 008587 branch timer_init 
+:      008593 g24_mode_switch_init:
+0x3402 008594 bpatchx patch30_6 ,mem_patch30 
+0x3403 008595 jam 1 ,mem_24g_mode_switch 
+0x3404 008596 jam 0 ,mem_24g_time_slice 
+0x3405 008597 jam 0xff ,mem_24g_interval 
+0x3406 008598 branch g24_timer_init 
+:      008600 g24_mode_switch_bind_work:
+0x3407 008601 bpatchx patch30_7 ,mem_patch30 
+0x3408 008602 fetch 1 ,mem_24g_mode_switch 
+0x3409 008603 rtn blank 
+0x340a 008604 call g24_timer_check 
+0x340b 008605 nrtn user 
+0x340c 008606 call g24_bind_mode_continue 
+0x340d 008607 fetch 1 ,mem_24g_time_slice 
+0x340e 008608 increase 1 ,pdata 
+0x340f 008609 and_into 1 ,pdata 
+0x3410 008610 store 1 ,mem_24g_time_slice 
+0x3411 008611 beq 0 ,g24_work_mode_switch 
+0x3412 008612 beq 1 ,g24_bind_mode_switch 
+0x3413 008613 rtn 
+:      008615 g24_bind_mode_continue:
+0x3414 008616 fetch 1 ,mem_24g_bind_mode_continue 
+0x3415 008617 rtn blank 
+0x3416 008618 increase -1 ,pdata 
+0x3417 008619 store 1 ,mem_24g_bind_mode_continue 
+0x3418 008620 rtn 
+:      008622 g24_work_mode_switch:
+0x3419 008623 fetch 1 ,mem_24g_bind_mode_continue 
+0x341a 008624 nrtn blank 
+0x341b 008625 branch g24_switch_work_mode 
+:      008627 g24_bind_mode_switch:
+0x341c 008628 fetch 1 ,mem_24g_bind_mode_continue 
+0x341d 008629 nrtn blank 
+0x341e 008630 branch g24_bind_mode_enable 
+:      008633 g24_mode_b_s_switch_init:
+0x341f 008634 fetch 1 ,mem_24g_b_s_mode_switch_disable 
+0x3420 008635 nrtn blank 
+0x3421 008636 fetch 1 ,mem_24g_mode_b_s_switch_exit 
+0x3422 008637 call g24_mode_b_s_switch_start ,blank 
+0x3423 008638 fetch 1 ,mem_24g_mode_b_s_switch_init 
+0x3424 008639 rtnbit1 0 
+0x3425 008640 set1 0 ,pdata 
+0x3426 008641 store 1 ,mem_24g_mode_b_s_switch_init 
+0x3427 008642 jam 1 ,mem_24g_mode_b_s_switch 
+0x3428 008643 jam 0 ,mem_24g_b_s_time_slice 
+0x3429 008644 setarg 0 
+0x342a 008645 store 2 ,mem_24g_mode_b_s_switch_cnt 
+0x342b 008646 jam 0x60 ,mem_24g_interval 
+0x342c 008647 branch g24_timer_init 
+:      008649 g24_mode_switch_bind_search:
+0x342d 008650 bpatchx patch31_0 ,mem_patch31 
+0x342e 008651 fetch 1 ,mem_24g_work_mode 
+0x342f 008652 rtneq dongle_work 
+0x3430 008653 fetch 1 ,mem_24g_b_s_mode_switch_disable 
+0x3431 008654 nrtn blank 
+0x3432 008655 fetch 1 ,mem_24g_mode_b_s_switch_exit 
+0x3433 008656 nrtn blank 
+0x3434 008657 fetch 1 ,mem_24g_mode_b_s_switch 
+0x3435 008658 rtn blank 
+0x3436 008659 fetch 1 ,mem_24g_bind_device_living 
+0x3437 008660 compare 3 ,pdata ,3 
+0x3438 008661 branch g24_mode_b_s_switch_exit ,true 
+0x3439 008662 call g24_timer_check 
+0x343a 008663 nrtn user 
+0x343b 008664 fetch 2 ,mem_24g_mode_b_s_switch_cnt 
+0x343c 008665 increase 1 ,pdata 
+0x343d 008666 store 2 ,mem_24g_mode_b_s_switch_cnt 
+0x343e 008667 arg 0x7d0 ,temp 
+0x343f 008668 isub temp ,null 
+0x3440 008669 branch g24_mode_b_s_switch_exit ,positive 
+0x3441 008670 fetch 1 ,mem_24g_b_s_time_slice 
+0x3442 008671 increase 1 ,pdata 
+0x3443 008672 and_into 1 ,pdata 
+0x3444 008673 store 1 ,mem_24g_b_s_time_slice 
+0x3445 008674 beq 0 ,g24_search_mode_enable 
+0x3446 008675 beq 1 ,g24_bind_mode_enable 
+0x3447 008676 rtn 
+:      008678 g24_mode_switch_search:
+0x3448 008679 fetch 1 ,mem_24g_bind_mode_continue 
+0x3449 008680 nbranch g24_bind_mode_enable ,blank 
+0x344a 008681 branch g24_search_mode_enable 
+:      008683 g24_mode_b_s_switch_exit:
+0x344b 008684 jam 1 ,mem_24g_mode_b_s_switch_exit 
+0x344c 008685 branch g24_search_mode_enable 
+:      008687 g24_mode_b_s_switch_stop:
+0x344d 008688 jam 0 ,mem_24g_mode_b_s_switch 
+0x344e 008689 rtn 
+:      008690 g24_mode_b_s_switch_start:
+0x344f 008691 jam 1 ,mem_24g_mode_b_s_switch 
+0x3450 008692 rtn 
+:      008703 g24_work_init:
+0x3451 008704 bpatchx patch31_1 ,mem_patch31 
+0x3452 008705 fetch 1 ,mem_24g_mode_init 
+0x3453 008706 rtnbit1 dongle_work 
+0x3454 008707 set1 dongle_work ,pdata 
+0x3455 008708 store 1 ,mem_24g_mode_init 
+0x3456 008709 fetch 1 ,mem_tx_power_temp 
+0x3457 008710 store 1 ,mem_tx_power 
+0x3458 008711 jam 0 ,mem_24g_ackpayload_enable 
+0x3459 008712 jam 0 ,mem_usb_tx_enable 
+0x345a 008713 jam 1 ,mem_24g_abort_packet 
+0x345b 008714 jam 0 ,mem_24g_pid 
+0x345c 008715 fetch 4 ,mem_24g_lap 
+0x345d 008716 call g24_update_addr_and_synccrc8 
+0x345e 008717 call g24_ch 
+0x345f 008718 branch g24_rx_interrupt_clear 
+:      008721 g24_switch_work_mode:
+0x3460 008722 jam 0 ,mem_24g_ackpayload_enable 
+:      008723 g24_work_mode_enable:
+0x3461 008724 jam dongle_work ,mem_24g_work_mode 
+0x3462 008725 jam clear_init ,mem_24g_mode_init 
+0x3463 008726 rtn 
+:      008729 g24_work_mode_start:
+0x3464 008730 fetch 1 ,mem_24g_work_mode 
+0x3465 008731 rtnne dongle_work 
+0x3466 008732 call g24_work_init 
+0x3467 008733 call g24_ch_process 
+0x3468 008734 branch g24_receive_packet_start 
+:      008747 g24_bind_mode_auto:
+0x3469 008748 bpatchx patch31_2 ,mem_patch31 
+0x346a 008749 fetch 1 ,mem_24g_work_mode 
+0x346b 008750 rtnne dongle_bind 
+0x346c 008751 call g24_bind_init 
+0x346d 008752 call g24_bind_data_process 
+0x346e 008753 fetch 1 ,mem_24g_pair_mode 
+0x346f 008754 nrtn blank 
+0x3470 008755 fetch 1 ,mem_24g_bind_device_status 
+0x3471 008756 rtn blank 
+0x3472 008757 jam 0 ,mem_24g_mode_switch 
+0x3473 008758 call g24_switch_work_mode 
+0x3474 008759 call g24_enable_nodata_timer 
+0x3475 008760 branch g24_timer_init 
+:      008772 g24_search_mode_init:
+0x3476 008773 fetch 1 ,mem_24g_mode_init 
+0x3477 008774 rtnbit1 dongle_search 
+0x3478 008775 set1 dongle_search ,pdata 
+0x3479 008776 store 1 ,mem_24g_mode_init 
+0x347a 008777 fetch 1 ,mem_tx_power_temp 
+0x347b 008778 store 1 ,mem_tx_power 
+0x347c 008780 jam 0 ,mem_24g_time_slice 
+0x347d 008781 jam 1 ,mem_24g_ackpayload_enable 
+0x347e 008782 setarg 0 
+0x347f 008783 store 3 ,mem_rssi_noise_self_index 
+0x3480 008784 store 7 ,mem_24g_self_config_ch_once 
+0x3481 008785 call g24_receiver_addr_check 
+0x3482 008786 nrtn zero 
+0x3483 008787 fetch 1 ,mem_24g_current_ch_number 
+0x3484 008788 store 1 ,mem_24g_self_ch_number 
+0x3485 008789 fetch 1 ,mem_24g_ch 
+0x3486 008790 store 1 ,mem_24g_self_last_ch 
+0x3487 008791 rtn 
+:      008794 g24_search_mode_auto:
+0x3488 008795 bpatchx patch31_3 ,mem_patch31 
+0x3489 008796 fetch 1 ,mem_24g_work_mode 
+0x348a 008797 rtnne dongle_search 
+0x348b 008798 call g24_search_mode_init 
+0x348c 008799 call g24_auto_addr_ch_search 
+0x348d 008800 call g24_receive_transmit_ack 
+0x348e 008801 nbranch g24_rx_interrupt_clear ,user3 
+0x348f 008803 call g24_receiver_addr_check 
+0x3490 008804 call g24_receive_packet_parse ,zero 
+0x3491 008806 fetch 1 ,mem_24g_abort_packet 
+0x3492 008807 call g24_mode_b_s_switch_stop ,blank 
+0x3493 008810 jam dongle_work ,mem_24g_work_mode 
+0x3494 008811 fetch 1 ,mem_24g_mode_init 
+0x3495 008812 set1 dongle_work ,pdata 
+0x3496 008813 store 1 ,mem_24g_mode_init 
+0x3497 008815 fetch 1 ,mem_24g_ackpayload_enable 
+0x3498 008816 sub pdata ,2 ,null 
+0x3499 008817 ncall g24_ackpayload_disable ,zero 
+0x349a 008819 call g24_rx_interrupt_clear 
+0x349b 008820 call g24_enable_nodata_timer 
+0x349c 008821 call g24_receiver_addr_check 
+0x349d 008822 branch g24_self_ch_num_reinit ,zero 
+0x349e 008823 fetch 4 ,mem_24g_addr 
+0x349f 008824 fetcht 4 ,mem_24g_device2_addr 
+0x34a0 008825 isub temp ,null 
+0x34a1 008826 branch g24_device2_ch_num_reinit ,zero 
+0x34a2 008827 fetch 4 ,mem_24g_addr 
+0x34a3 008828 fetcht 4 ,mem_24g_device1_addr 
+0x34a4 008829 isub temp ,null 
+0x34a5 008830 branch g24_device1_ch_num_reinit ,zero 
+0x34a6 008831 rtn 
+:      008834 g24_self_ch_num_reinit:
+0x34a7 008835 fetch 1 ,mem_24g_self_ch_number 
+:      008836 g24_current_ch_num_reinit:
+0x34a8 008837 store 1 ,mem_24g_current_ch_number 
+0x34a9 008838 rtn 
+:      008840 g24_device2_ch_num_reinit:
+0x34aa 008841 fetch 1 ,mem_24g_device2_ch_number 
+0x34ab 008842 branch g24_current_ch_num_reinit 
+:      008844 g24_device1_ch_num_reinit:
+0x34ac 008845 fetch 1 ,mem_24g_device1_ch_number 
+0x34ad 008846 branch g24_current_ch_num_reinit 
+:      008849 g24_auto_addr_ch_search:
+0x34ae 008850 bpatchx patch31_4 ,mem_patch31 
+0x34af 008851 fetch 1 ,mem_24g_time_slice 
+0x34b0 008852 increase 1 ,pdata 
+0x34b1 008853 and_into 3 ,pdata 
+0x34b2 008854 store 1 ,mem_24g_time_slice 
+0x34b3 008856 beq 0 ,g24_auto_bind_config_device2 
+0x34b4 008857 beq 1 ,g24_auto_bind_config_self 
+0x34b5 008858 beq 2 ,g24_auto_bind_config_device1 
+0x34b6 008859 beq 3 ,g24_auto_bind_config_self 
+0x34b7 008860 rtn 
+:      008862 g24_auto_bind_config_device1:
+0x34b8 008863 call g24_bind_dvc1_payload_cfg 
+0x34b9 008864 fetch 4 ,mem_24g_device1_addr 
+0x34ba 008865 branch g24_auto_addr_ch_search ,blank 
+0x34bb 008866 call g24_update_addr_and_synccrc8 
+0x34bc 008867 fetch 1 ,mem_24g_device1_config_ch_once 
+0x34bd 008868 call g24_device1_config_ch_once ,blank 
+0x34be 008869 fetch 1 ,mem_24g_device1_last_ch 
+0x34bf 008870 store 1 ,mem_24g_ch 
+0x34c0 008871 fetcht 1 ,mem_rssi_noise_device1_index 
+0x34c1 008872 fetchr rega ,2 ,mem_rssi_noise_device1_buffer_ptr 
+0x34c2 008873 call rssi_store 
+0x34c3 008874 storet 1 ,mem_rssi_noise_device1_index 
+0x34c4 008875 call rssi_average 
+0x34c5 008876 storet 1 ,mem_rssi_noise_device1_avg 
+0x34c6 008877 sub temp ,rssi_thresh_noise ,null 
+0x34c7 008878 nrtn positive 
+0x34c8 008879 fetcht 1 ,mem_24g_device1_ch_number 
+0x34c9 008880 call g24_ch_map_size 
+0x34ca 008881 storet 1 ,mem_24g_device1_ch_number 
+0x34cb 008882 store 1 ,mem_24g_device1_last_ch 
+0x34cc 008883 rtn 
+:      008885 g24_device1_config_ch_once:
+0x34cd 008886 jam 1 ,mem_24g_device1_config_ch_once 
+0x34ce 008887 arg 0 ,temp 
+0x34cf 008888 call g24_ch_calc 
+0x34d0 008889 store 1 ,mem_24g_device1_last_ch 
+0x34d1 008890 rtn 
+:      008892 g24_auto_bind_config_device2:
+0x34d2 008893 call g24_bind_dvc2_payload_cfg 
+0x34d3 008894 fetch 4 ,mem_24g_device2_addr 
+0x34d4 008895 branch g24_auto_addr_ch_search ,blank 
+0x34d5 008896 call g24_update_addr_and_synccrc8 
+0x34d6 008897 fetch 1 ,mem_24g_device2_config_ch_once 
+0x34d7 008898 call g24_device2_config_ch_once ,blank 
+0x34d8 008899 fetch 1 ,mem_24g_device2_last_ch 
+0x34d9 008900 store 1 ,mem_24g_ch 
+0x34da 008901 fetcht 1 ,mem_rssi_noise_device2_index 
+0x34db 008902 fetchr rega ,2 ,mem_rssi_noise_device2_buffer_ptr 
+0x34dc 008903 call rssi_store 
+0x34dd 008904 storet 1 ,mem_rssi_noise_device2_index 
+0x34de 008905 call rssi_average 
+0x34df 008906 storet 1 ,mem_rssi_noise_device2_avg 
+0x34e0 008907 sub temp ,rssi_thresh_noise ,null 
+0x34e1 008908 nrtn positive 
+0x34e2 008909 fetcht 1 ,mem_24g_device2_ch_number 
+0x34e3 008910 call g24_ch_map_size 
+0x34e4 008911 storet 1 ,mem_24g_device2_ch_number 
+0x34e5 008912 store 1 ,mem_24g_device2_last_ch 
+0x34e6 008913 rtn 
+:      008915 g24_device2_config_ch_once:
+0x34e7 008916 jam 1 ,mem_24g_device2_config_ch_once 
+0x34e8 008917 arg 0 ,temp 
+0x34e9 008918 call g24_ch_calc 
+0x34ea 008919 store 1 ,mem_24g_device2_last_ch 
+0x34eb 008920 rtn 
+:      008922 g24_auto_bind_config_self:
+0x34ec 008923 call g24_bind_dvc1_payload_cfg 
+0x34ed 008924 fetch 4 ,mem_24g_lap 
+0x34ee 008925 call g24_update_addr_and_synccrc8 
+0x34ef 008926 fetch 1 ,mem_24g_self_config_ch_once 
+0x34f0 008927 call g24_self_config_ch_once ,blank 
+0x34f1 008928 fetch 1 ,mem_24g_self_last_ch 
+0x34f2 008929 store 1 ,mem_24g_ch 
+0x34f3 008930 fetcht 1 ,mem_rssi_noise_self_index 
+0x34f4 008931 fetchr rega ,2 ,mem_rssi_noise_self_buffer_ptr 
+0x34f5 008932 call rssi_store 
+0x34f6 008933 storet 1 ,mem_rssi_noise_self_index 
+0x34f7 008934 call rssi_average 
+0x34f8 008935 storet 1 ,mem_rssi_noise_self_avg 
+0x34f9 008936 sub temp ,rssi_thresh_noise ,null 
+0x34fa 008937 nrtn positive 
+0x34fb 008938 fetcht 1 ,mem_24g_self_ch_number 
+0x34fc 008939 call g24_ch_map_size 
+0x34fd 008940 storet 1 ,mem_24g_self_ch_number 
+0x34fe 008941 store 1 ,mem_24g_self_last_ch 
+0x34ff 008942 rtn 
+:      008944 g24_self_config_ch_once:
+0x3500 008945 jam 1 ,mem_24g_self_config_ch_once 
+0x3501 008946 fetch 1 ,mem_24g_self_last_ch 
+0x3502 008947 store 1 ,mem_24g_ch 
+0x3503 008948 rtn 
+:      008951 g24_ackpayload_disable:
+0x3504 008952 jam 0 ,mem_24g_ackpayload_enable 
+0x3505 008953 rtn 
+:      008956 g24_receiver_addr_check:
+0x3506 008957 fetch 4 ,mem_24g_addr 
+0x3507 008958 fetcht 4 ,mem_24g_lap 
+0x3508 008959 isub temp ,null 
+0x3509 008960 rtn 
+:      008972 g24_nodata_process:
+0x350a 008973 fetch 1 ,mem_24g_ackpayload_enable 
+0x350b 008974 rtneq 2 
+0x350c 008975 fetch 1 ,mem_24g_nodata_timer_enable 
+0x350d 008976 rtn blank 
+0x350e 008977 arg g24_timer_nodata ,queue 
+0x350f 008978 call timer_check 
+0x3510 008979 nrtn blank 
+0x3511 008980 jam 0 ,mem_24g_nodata_timer_enable 
+0x3512 008981 jam 0 ,mem_24g_bind_mode_continue 
+0x3513 008982 call g24_mode_b_s_switch_init 
+:      008984 g24_search_mode_enable:
+0x3514 008985 bpatchx patch31_5 ,mem_patch31 
+0x3515 008986 jam dongle_search ,mem_24g_work_mode 
+0x3516 008987 jam clear_init ,mem_24g_mode_init 
+0x3517 008988 branch g24_rx_interrupt_clear 
+:      008994 g24_ch_process:
+0x3518 008995 bpatchx patch31_6 ,mem_patch31 
+0x3519 008996 fetch 1 ,mem_24g_abort_packet 
+0x351a 008997 beq 1 ,rssi_noise_monitor 
+0x351b 008998 fetch 1 ,mem_24g_hop_packet 
+0x351c 008999 beq 1 ,g24_ch_receive_hop_pac 
+0x351d 009000 fetcht 4 ,mem_24g_hop_btclk 
+0x351e 009001 copy clkn_bt ,pdata 
+0x351f 009002 isub temp ,null 
+0x3520 009003 ncall g24_timer_timeout ,positive 
+0x3521 009004 copy pdata ,regb 
+0x3522 009005 fetch 4 ,mem_24g_hop_btclk 
+0x3523 009006 fetcht 1 ,mem_24g_hop_interval 
+0x3524 009007 iadd temp ,temp 
+0x3525 009008 copy regb ,pdata 
+0x3526 009009 isub temp ,null 
+0x3527 009010 nrtn positive 
+0x3528 009011 set0 28 ,pdata 
+0x3529 009012 store 4 ,mem_24g_hop_btclk 
+0x352a 009013 jam 1 ,mem_24g_abort_packet 
+0x352b 009014 branch g24_ch 
+:      009016 g24_ch_receive_hop_pac:
+0x352c 009017 jam 0 ,mem_24g_hop_packet 
+0x352d 009018 branch g24_ch 
+:      009020 g24_ch_timer_reinit:
+0x352e 009021 copy clkn_bt ,pdata 
+0x352f 009022 store 4 ,mem_24g_hop_btclk 
+0x3530 009023 rtn 
+:      009028 g24_reconn_timeout_timer:
+0x3531 009029 arg mem_24g_reconn_timeout ,regc 
+0x3532 009030 arg g24_stop_24g_mode ,regb 
+0x3533 009031 branch timer_single_step_2b 
+:      009034 g24_reconn_start:
+0x3534 009035 bpatchx patch31_7 ,mem_patch31 
+0x3535 009036 set1 mark_24g ,mark 
+0x3536 009037 fetch 1 ,mem_24g_conn_sm 
+0x3537 009038 set0 state_24g_pair ,pdata 
+0x3538 009039 set1 state_24g_reconn ,pdata 
+0x3539 009040 store 1 ,mem_24g_conn_sm 
+0x353a 009041 fetch 1 ,mem_24g_fast_conn_enable 
+0x353b 009042 branch g24_reconn_receiver_addr ,blank 
+0x353c 009043 fetch 1 ,mem_24g_reconn_type 
+0x353d 009044 beq fast_conn_and_receiver ,g24_reconn_fast_conn 
+0x353e 009045 beq fast_conn_and_3_0_addr ,g24_reconn_fast_conn 
+0x353f 009046 beq receiver_and_3_0_addr ,g24_reconn_device_3_0_addr 
+0x3540 009047 beq pair_and_3_0_addr ,g24_reconn_device_3_0_addr 
+:      009048 g24_reconn_fast_conn:
+0x3541 009049 fetch 1 ,mem_24g_pair_tx_power 
+0x3542 009050 store 1 ,mem_tx_power 
+0x3543 009051 fetcht 1 ,mem_24g_fast_conn_temp_ch 
+0x3544 009052 storet 1 ,mem_24g_current_ch_number 
+0x3545 009053 fetch 4 ,mem_24g_fast_conn_addr 
+0x3546 009054 call g24_ch_syncword_crc8_init 
+0x3547 009055 storet 1 ,mem_24g_fast_conn_temp_ch 
+0x3548 009056 rtn 
+:      009058 g24_reconn_receiver_addr:
+0x3549 009059 jam tx_power_3db ,mem_tx_power 
+0x354a 009060 fetcht 1 ,mem_24g_receiver_temp_ch 
+0x354b 009061 storet 1 ,mem_24g_current_ch_number 
+0x354c 009062 fetch 4 ,mem_24g_receiver_addr 
+0x354d 009063 call g24_ch_syncword_crc8_init 
+0x354e 009064 storet 1 ,mem_24g_receiver_temp_ch 
+0x354f 009065 rtn 
+:      009067 g24_reconn_device_3_0_addr:
+0x3550 009068 jam tx_power_3db ,mem_tx_power 
+0x3551 009069 fetcht 1 ,mem_24g_device_temp_ch 
+0x3552 009070 storet 1 ,mem_24g_current_ch_number 
+0x3553 009071 fetch 4 ,mem_24g_device_addr 
+0x3554 009072 call g24_ch_syncword_crc8_init 
+0x3555 009073 storet 1 ,mem_24g_device_temp_ch 
+0x3556 009074 rtn 
+:      009076 g24_store_receiver_addr:
+0x3557 009077 fetch 4 ,mem_24g_rxpayload + 2 
+0x3558 009078 rtn blank 
+0x3559 009079 store 4 ,mem_24g_receiver_addr 
+:      009080 g24_ch_syncword_crc8_init:
+0x355a 009081 call g24_update_addr_and_synccrc8 
+0x355b 009082 branch g24_ch 
+:      009085 g24_reconn_dispatch:
+0x355c 009086 bpatchx patch32_0 ,mem_patch32 
+0x355d 009087 fetch 2 ,mem_24g_reconn_count 
+0x355e 009088 arg 0x01f8 ,temp 
+0x355f 009089 iand temp ,pdata 
+0x3560 009090 branch g24_reconn_dispatch_next ,blank 
+0x3561 009091 fetch 2 ,mem_24g_reconn_count 
+0x3562 009092 increase 1 ,pdata 
+0x3563 009093 store 2 ,mem_24g_reconn_count 
+0x3564 009094 rtn 
+:      009096 g24_reconn_dispatch_next:
+0x3565 009097 call g24_reconn_data_prep 
+0x3566 009098 call g24_transmit_receive_ack 
+0x3567 009099 nbranch g24_reconn_device_fail ,sync 
+0x3568 009100 nbranch g24_reconn_device_fail ,user3 
+0x3569 009101 call g24_ackpayload_parse 
+0x356a 009102 fetch 4 ,mem_24g_pair_addr 
+0x356b 009103 fetcht 4 ,mem_24g_addr 
+0x356c 009104 isub temp ,null 
+0x356d 009105 branch g24_pair_start ,zero 
+0x356e 009106 fetch 4 ,mem_24g_device_addr 
+0x356f 009107 fetcht 4 ,mem_24g_addr 
+0x3570 009108 isub temp ,null 
+0x3571 009109 call g24_store_receiver_addr ,zero 
+0x3572 009110 fetch 1 ,mem_24g_conn_sm 
+0x3573 009111 set0 state_24g_reconn ,pdata 
+0x3574 009112 store 1 ,mem_24g_conn_sm 
+0x3575 009113 setarg 0 
+0x3576 009114 store 2 ,mem_24g_pair_timeout 
+0x3577 009115 store 2 ,mem_24g_reconn_count 
+0x3578 009116 store 2 ,mem_24g_reconn_timeout 
+0x3579 009117 jam bt_evt_24g_attempt_success ,mem_fifo_temp 
+0x357a 009118 call ui_ipc_send_event 
+:      009119 g24_txbuf_clear:
+0x357b 009120 bpatchx patch32_1 ,mem_patch32 
+0x357c 009121 arg 32 ,loopcnt 
+0x357d 009122 arg mem_24g_txbuf ,contw 
+0x357e 009123 branch memset0 
+:      009125 g24_reconn_data_prep:
+0x357f 009126 jam datatype_attemp ,mem_24g_txbuf 
+0x3580 009127 fetch 1 ,mem_24g_data_type 
+0x3581 009128 store 1 ,mem_24g_txbuf + 1 
+0x3582 009129 fetch 4 ,mem_24g_device_addr 
+0x3583 009130 store 4 ,mem_24g_txbuf + 2 
+0x3584 009131 jam 6 ,mem_24g_datalen 
+0x3585 009132 branch g24_transmit_prep 
+:      009134 g24_reconn_device_fail:
+0x3586 009135 bpatchx patch32_2 ,mem_patch32 
+0x3587 009136 fetch 1 ,mem_24g_fast_conn_enable 
+0x3588 009137 branch g24_ch ,blank 
+0x3589 009138 fetch 2 ,mem_24g_reconn_count 
+0x358a 009139 increase 1 ,pdata 
+0x358b 009140 store 2 ,mem_24g_reconn_count 
+0x358c 009141 isolate1 9 ,pdata 
+0x358d 009142 fetch 1 ,mem_24g_reconn_type 
+0x358e 009143 beq fast_conn_and_receiver ,g24_reconn_fast_conn_and_receiver 
+0x358f 009144 beq fast_conn_and_3_0_addr ,g24_reconn_fast_conn_and_3_0 
+0x3590 009145 beq receiver_and_3_0_addr ,g24_reconn_receiver_and_3_0 
+0x3591 009146 beq pair_and_3_0_addr ,g24_reconn_pair_and_3_0 
+0x3592 009147 branch g24_reconn_receiver_addr 
+:      009150 g24_reconn_fast_conn_and_receiver:
+0x3593 009151 branch g24_reconn_receiver_addr ,true 
+0x3594 009152 branch g24_reconn_fast_conn 
+:      009154 g24_reconn_fast_conn_and_3_0:
+0x3595 009155 branch g24_reconn_device_3_0_addr ,true 
+0x3596 009156 branch g24_reconn_fast_conn 
+:      009158 g24_reconn_receiver_and_3_0:
+0x3597 009159 branch g24_reconn_device_3_0_addr ,true 
+0x3598 009160 branch g24_reconn_receiver_addr 
+:      009162 g24_reconn_pair_and_3_0:
+0x3599 009163 branch g24_reconn_device_3_0_addr ,true 
+0x359a 009164 branch g24_pair_init_param 
+:      009174 g24_data_attemp:
+0x359b 009175 fetch 1 ,mem_24g_rxdata_temp + 3 
+0x359c 009176 beq datatype_device1 ,g24_data_attemp_device1 
+0x359d 009177 beq datatype_device2 ,g24_data_attemp_device2 
+0x359e 009178 rtn 
+:      009179 g24_data_attemp_device1:
+0x359f 009180 fetch 1 ,mem_24g_device1_bind_disable 
+0x35a0 009181 nrtn blank 
+0x35a1 009182 fetch 4 ,mem_24g_rxdata_temp + 4 
+0x35a2 009183 store 4 ,mem_24g_transmitter_addr 
+:      009184 g24_store_device1_addr:
+0x35a3 009185 store 4 ,mem_24g_device1_addr 
+0x35a4 009186 rtn 
+:      009187 g24_data_attemp_device2:
+0x35a5 009188 fetch 1 ,mem_24g_device2_bind_disable 
+0x35a6 009189 nrtn blank 
+0x35a7 009190 fetch 4 ,mem_24g_rxdata_temp + 4 
+0x35a8 009191 store 4 ,mem_24g_transmitter_addr 
+:      009192 g24_store_device2_addr:
+0x35a9 009193 store 4 ,mem_24g_device2_addr 
+0x35aa 009194 rtn 
+:      009204 rssi_store:
+0x35ab 009205 bpatchx patch32_3 ,mem_patch32 
+0x35ac 009206 copy rega ,pdata 
+0x35ad 009207 iadd temp ,contw 
+0x35ae 009208 fetch 1 ,mem_rssi 
+0x35af 009209 istore 1 ,contw 
+0x35b0 009210 increase 1 ,temp 
+0x35b1 009211 fetch 1 ,mem_rssi_buff_index 
+0x35b2 009212 iand temp ,temp 
+0x35b3 009213 rtn 
+:      009215 rssi_average:
+0x35b4 009216 bpatchx patch32_4 ,mem_patch32 
+0x35b5 009217 fetch 1 ,mem_rssi_buff_index 
+0x35b6 009218 increase 1 ,pdata 
+0x35b7 009219 store 2 ,mem_loopcnt 
+0x35b8 009220 copy pdata ,loopcnt 
+0x35b9 009221 copy rega ,contr 
+0x35ba 009222 arg 0 ,pdata 
+:      009223 rssi_average_loop:
+0x35bb 009224 ifetcht 1 ,contr 
+0x35bc 009225 iadd temp ,pdata 
+0x35bd 009226 loop rssi_average_loop 
+0x35be 009227 fetcht 2 ,mem_loopcnt 
+0x35bf 009228 idiv temp 
+0x35c0 009229 call wait_div_end 
+0x35c1 009230 quotient temp 
+0x35c2 009231 rtnmark1 mark_24g_rxmode 
+0x35c3 009232 copy temp ,pdata 
+0x35c4 009233 rtnmark0 mark_24g 
+0x35c5 009234 call bcd 
+0x35c6 009235 copy pdata ,temp 
+0x35c7 009236 rtn 
+:      009238 save_rssi_dec:
+0x35c8 009239 branch save_rssi 
+:      009249 rssi_transmitter_buff_init:
+0x35c9 009250 fetch 2 ,mem_rssi_signal_buf_ptr 
+0x35ca 009251 branch rssi_buff_clear 
+:      009253 rssi_signal:
+0x35cb 009254 copy pdata ,rega 
+0x35cc 009255 fetcht 1 ,mem_rssi_signal_index 
+0x35cd 009256 fetch 2 ,mem_rssi_signal_buf_ptr 
+0x35ce 009257 iadd temp ,contw 
+0x35cf 009258 copy rega ,pdata 
+0x35d0 009259 istore 1 ,contw 
+0x35d1 009260 increase 1 ,temp 
+0x35d2 009261 fetch 1 ,mem_rssi_buff_index 
+0x35d3 009262 iand temp ,temp 
+0x35d4 009263 storet 1 ,mem_rssi_signal_index 
+0x35d5 009264 rtn 
+:      009274 rssi_receiver_buff_init:
+0x35d6 009275 fetch 2 ,mem_rssi_noise_buffer_ptr 
+0x35d7 009276 call rssi_buff_clear 
+0x35d8 009277 fetch 2 ,mem_rssi_noise_self_buffer_ptr 
+0x35d9 009278 call rssi_buff_clear 
+0x35da 009279 fetch 2 ,mem_rssi_noise_device1_buffer_ptr 
+0x35db 009280 call rssi_buff_clear 
+0x35dc 009281 fetch 2 ,mem_rssi_noise_device2_buffer_ptr 
+:      009282 rssi_buff_clear:
+0x35dd 009283 rtn blank 
+0x35de 009284 copy pdata ,contw 
+0x35df 009285 fetch 1 ,mem_rssi_buff_index 
+0x35e0 009286 increase 1 ,pdata 
+0x35e1 009287 copy pdata ,loopcnt 
+0x35e2 009288 branch clear_mem 
+:      009291 rssi_noise:
+0x35e3 009292 call save_rssi_dec 
+0x35e4 009293 rtn blank 
+0x35e5 009294 fetcht 1 ,mem_rssi_noise_index 
+0x35e6 009295 fetchr rega ,2 ,mem_rssi_noise_buffer_ptr 
+0x35e7 009296 call rssi_store 
+0x35e8 009297 storet 1 ,mem_rssi_noise_index 
+0x35e9 009298 rtn 
+:      009301 rssi_noise_monitor:
+0x35ea 009302 fetchr rega ,2 ,mem_rssi_noise_buffer_ptr 
+0x35eb 009303 call rssi_average 
+0x35ec 009304 storet 1 ,mem_rssi_noise_avg 
+0x35ed 009305 sub temp ,rssi_thresh_noise ,null 
+0x35ee 009306 nrtn positive 
+0x35ef 009307 branch g24_ch 
+:      009315 g24_transmit_init:
+0x35f0 009316 fetch 4 ,mem_24g_lap 
+0x35f1 009317 store 4 ,mem_24g_device_addr 
+0x35f2 009318 branch rssi_transmitter_buff_init 
+:      009320 g24_interval_param_4ms:
+0x35f3 009321 setarg g24_4ms_interval_param 
+0x35f4 009322 store 3 ,mem_24g_short_sleep_set 
+0x35f5 009323 setarg 0x100c0c 
+0x35f6 009324 store 3 ,mem_24g_interval 
+0x35f7 009325 setarg 0x00bb80 
+0x35f8 009326 store 3 ,mem_24g_long_sleep_set 
+0x35f9 009327 jam 5 ,mem_24g_fast_hop_count 
+0x35fa 009328 rtn 
+:      009330 g24_interval_param_8ms:
+0x35fb 009331 setarg g24_8ms_interval_param 
+0x35fc 009332 store 3 ,mem_24g_short_sleep_set 
+0x35fd 009333 setarg 0x1c1919 
+0x35fe 009334 store 3 ,mem_24g_interval 
+0x35ff 009335 setarg 0x017700 
+0x3600 009336 store 3 ,mem_24g_long_sleep_set 
+0x3601 009337 jam 11 ,mem_24g_fast_hop_count 
+0x3602 009338 rtn 
+:      009341 g24_transmit_dispatch:
+0x3603 009342 rtnmark0 mark_24g 
+0x3604 009343 fetch 1 ,mem_24g_conn_sm 
+0x3605 009344 bbit1 state_24g_pair ,g24_pair_dispatch 
+0x3606 009345 bbit1 state_24g_reconn ,g24_reconn_dispatch 
+0x3607 009346 fetch 1 ,mem_24g_transmit_by_interrupt 
+0x3608 009347 beq g24_tx_timer_int_enable ,g24_transmit_by_interrupt 
+:      009348 g24_transmit_no_interrupt:
+0x3609 009349 bpatchx patch32_5 ,mem_patch32 
+0x360a 009350 call g24_txdata_prep 
+0x360b 009351 nbranch g24_nodata_transmit ,user 
+:      009352 g24_transmit_start:
+0x360c 009353 call g24_transmit_process 
+0x360d 009354 call power_ctrl_start 
+0x360e 009355 fetch 1 ,mem_device_option 
+0x360f 009356 beq dvc_op_mouse ,mouse_24g_transmit_start 
+:      009357 g24_transmit_start_next:
+0x3610 009358 fetch 8 ,mem_24g_long_sleep_set 
+0x3611 009359 store 8 ,mem_24g_enter_hibernate 
+0x3612 009360 fetch 2 ,mem_24g_long_sleep_param_update_timer_init 
+0x3613 009361 store 2 ,mem_24g_long_sleep_param_update_timer 
+0x3614 009362 fetch 2 ,mem_cb_24g_transmit_short_sleep 
+0x3615 009363 branch callback_func 
+:      009365 g24_short_sleep:
+0x3616 009366 bpatchx patch32_6 ,mem_patch32 
+0x3617 009367 call g24_lpm_wait 
+0x3618 009368 nrtn user 
+0x3619 009369 call g24_setgpio_lpm_before 
+0x361a 009370 call clear_wake 
+0x361b 009371 fetch 3 ,mem_24g_short_sleep_set 
+0x361c 009372 branch g24_long_seep2 
+:      009374 g24_long_sleep:
+0x361d 009375 bpatchx patch32_7 ,mem_patch32 
+0x361e 009376 call g24_lpm_wait 
+0x361f 009377 nrtn user 
+0x3620 009378 call g24_setgpio_lpm_before 
+0x3621 009379 fetch 8 ,mem_24g_enter_hibernate 
+:      009380 g24_long_seep2:
+0x3622 009381 call clk2lpo 
+0x3623 009382 storet 4 ,mem_sleep_counter 
+0x3624 009383 branch lpm_sleep 
+:      009387 g24_txdata_prep:
+0x3625 009388 call g24_package_data 
+0x3626 009389 nrtn user 
+0x3627 009390 branch g24_transmit_prep 
+:      009393 g24_package_data:
+0x3628 009394 fetch 2 ,mem_cb_24g_transmit_data 
+0x3629 009395 call callback_func 
+0x362a 009396 branch g24_accumulate_data ,user 
+0x362b 009397 fetch 7 ,mem_24g_txbuf + 1 
+0x362c 009398 rtn blank 
+0x362d 009399 branch enable_user 
+:      009401 g24_accumulate_data:
+0x362e 009402 jam 0 ,mem_24g_abort_pac 
+0x362f 009403 add rega ,1 ,pdata 
+0x3630 009404 store 1 ,mem_24g_datalen 
+0x3631 009405 call g24_transmit_rf_ctrl_clear 
+0x3632 009406 store 1 ,mem_24g_txbuf 
+0x3633 009407 copy regb ,contr 
+0x3634 009408 copy rega ,loopcnt 
+0x3635 009409 branch memcpy 
+:      009411 g24_transmit_rf_ctrl_clear:
+0x3636 009412 fetch 1 ,mem_24g_data_type 
+0x3637 009413 and_into bits_data ,pdata 
+0x3638 009414 store 1 ,mem_24g_data_type 
+0x3639 009415 rtn 
+:      009424 g24_transmit_process:
+0x363a 009425 setarg 0 
+0x363b 009426 store 1 ,mem_24g_retry 
+0x363c 009427 store 2 ,mem_24g_retransmit 
+:      009428 g24_transmit_loop:
+0x363d 009429 call g24_transmit_receive_ack 
+0x363e 009430 fetch 1 ,mem_24g_no_ack 
+0x363f 009431 beq no_ack_24g ,g24_transmit_no_ack 
+0x3640 009432 nbranch g24_retransmit ,sync 
+0x3641 009433 nbranch g24_retransmit ,user3 
+0x3642 009434 call g24_ackpayload_parse 
+0x3643 009435 fetch 1 ,mem_device_option 
+0x3644 009436 sub pdata ,dvc_op_mouse ,null 
+0x3645 009437 call mouse_24g_transmit_callback ,zero 
+:      009438 g24_transmit_no_ack:
+0x3646 009439 call power_ctrl_pac_succ_incrs 
+:      009440 g24_transmit_next_packet:
+0x3647 009441 call g24_txbuf_clear 
+0x3648 009442 fetch 1 ,mem_24g_pid 
+0x3649 009443 increase 1 ,pdata 
+0x364a 009444 store 1 ,mem_24g_pid 
+0x364b 009445 call g24_hop_enable_packet 
+:      009446 g24_transmit_abandon:
+0x364c 009447 bpatchx patch33_0 ,mem_patch33 
+0x364d 009448 setarg 0 
+0x364e 009449 store 1 ,mem_24g_ensure 
+0x364f 009450 store 2 ,mem_24g_txfail_cnt 
+0x3650 009451 rtn 
+:      009453 g24_transmit_receive_ack:
+0x3651 009454 bpatchx patch33_1 ,mem_patch33 
+0x3652 009455 disable user3 
+0x3653 009456 call g24_transmit 
+0x3654 009457 fetch 1 ,mem_24g_no_ack 
+0x3655 009458 beq no_ack_24g ,g24_end_of_packet 
+0x3656 009459 force 0 ,radio_ctrl 
+0x3657 009460 fetch 4 ,mem_24g_addr 
+0x3658 009461 iforce access 
+0x3659 009462 fetcht 1 ,mem_last_freq 
+0x365a 009463 call set_freq_rx 
+0x365b 009464 call rf_rx_enable 
+0x365c 009465 call g24_receive_rxon 
+0x365d 009466 call g24_end_of_packet ,user3 
+0x365e 009467 rtn 
+:      009469 g24_retransmit:
+0x365f 009470 bpatchx patch33_2 ,mem_patch33 
+0x3660 009471 fetch 1 ,mem_device_option 
+0x3661 009472 beq dvc_op_mouse ,mouse_g24_retransmit 
+:      009473 g24_retransmit0:
+0x3662 009474 fetch 1 ,mem_24g_abort_pac 
+0x3663 009475 nrtn blank 
+0x3664 009476 fetch 2 ,mem_24g_txfail_cnt 
+0x3665 009477 increase 1 ,pdata 
+0x3666 009478 store 2 ,mem_24g_txfail_cnt 
+0x3667 009479 fetch 1 ,mem_24g_txfail_cnt + 1 
+0x3668 009480 bbit1 4 ,g24_tx_attempt_fail 
+0x3669 009481 call g24_transmit_hop_process 
+0x366a 009482 fetch 2 ,mem_24g_retransmit 
+0x366b 009483 increase 1 ,pdata 
+0x366c 009484 store 2 ,mem_24g_retransmit 
+0x366d 009485 branch g24_transmit_loop 
+:      009487 g24_ackpayload_parse:
+0x366e 009488 bpatchx patch33_3 ,mem_patch33 
+0x366f 009489 call g24_read_len_pid_crc 
+0x3670 009490 fetch 1 ,mem_24g_rxdata_length 
+0x3671 009491 rtn blank 
+0x3672 009492 iforce loopcnt 
+0x3673 009493 arg mem_24g_rxbuf + 2 ,contr 
+0x3674 009494 arg mem_24g_rxpayload ,contw 
+0x3675 009495 branch memcpy 
+:      009498 g24_tx_attempt_fail:
+0x3676 009499 bpatchx patch33_4 ,mem_patch33 
+0x3677 009500 setarg 0 
+0x3678 009501 store 2 ,mem_24g_txfail_cnt 
+0x3679 009502 jam 1 ,mem_24g_attempt_fail_flag 
+:      009503 g24_stop_24g_mode:
+0x367a 009504 jam bt_evt_24g_attempt_fail ,mem_fifo_temp 
+0x367b 009505 branch ui_ipc_send_event 
+:      009515 g24_transmit_hop_process:
+0x367c 009516 bpatchx patch33_5 ,mem_patch33 
+0x367d 009517 fetcht 1 ,mem_24g_retry 
+0x367e 009518 fetch 1 ,mem_24g_fast_hop_count 
+0x367f 009519 isub temp ,null 
+0x3680 009520 nbranch g24_tx_fast_hop ,positive 
+0x3681 009521 increase 1 ,temp 
+0x3682 009522 storet 1 ,mem_24g_retry 
+0x3683 009523 fetch 1 ,mem_24g_fast_hop_count 
+0x3684 009524 beq 5 ,g24_transmit_hop_process_4ms 
+0x3685 009525 fetch 1 ,mem_24g_retry 
+0x3686 009526 beq 6 ,g24_hop_ch_disable 
+0x3687 009527 beq 12 ,g24_hop_ch_disable 
+0x3688 009528 rtn 
+:      009531 g24_transmit_hop_process_4ms:
+0x3689 009532 fetch 1 ,mem_24g_retry 
+0x368a 009533 beq 3 ,g24_hop_ch_disable 
+0x368b 009534 beq 6 ,g24_hop_ch_disable 
+0x368c 009535 rtn 
+:      009539 g24_hop_ch_enable:
+:      009544 g24_txpayload_type_update:
+0x368d 009545 bmark1 mark_ble_lr ,g24_lr_type_update 
+0x368e 009546 store 1 ,mem_24g_txpayload + offset_data_type 
+0x368f 009547 rtn 
+:      009548 g24_lr_type_update:
+0x3690 009549 store 1 ,mem_24g_txpayload + offset_lr_data_type 
+0x3691 009550 rtn 
+:      009552 g24_hop_enable_packet:
+0x3692 009553 fetch 1 ,mem_24g_data_type 
+0x3693 009554 rtnbit0 bit_hop 
+:      009555 g24_hop_ch_disable:
+0x3694 009556 fetch 1 ,mem_24g_data_type 
+0x3695 009557 set0 bit_hop ,pdata 
+0x3696 009558 store 1 ,mem_24g_data_type 
+0x3697 009559 call g24_txpayload_type_update 
+0x3698 009560 call power_ctrl_pac_succ_decrs 
+0x3699 009561 branch g24_ch 
+:      009563 g24_tx_fast_hop:
+0x369a 009564 call power_ctrl_txpower_incrs 
+0x369b 009565 call power_ctrl_pac_succ_decrs 
+0x369c 009566 branch g24_ch 
+:      009584 g24_search_receiver:
+0x369d 009585 fetch 2 ,mem_cb_24g_search_receiver 
+0x369e 009586 branch callback_func 
+:      009588 g24_nodata_transmit:
+0x369f 009589 fetch 1 ,mem_24g_abort_pac 
+0x36a0 009590 call g24_send_abort_packet ,blank 
+0x36a1 009591 fetch 1 ,mem_24g_transmit_by_interrupt 
+0x36a2 009592 rtneq g24_tx_timer_int_enable 
+0x36a3 009593 call g24_search_receiver 
+0x36a4 009594 fetch 2 ,mem_cb_24g_transmit_long_sleep 
+0x36a5 009595 branch callback_func 
+:      009597 g24_send_abort_packet:
+0x36a6 009598 jam type_ms ,mem_24g_data_type 
+0x36a7 009599 jam 1 ,mem_24g_abort_pac 
+0x36a8 009600 call g24_transmit_rf_ctrl_clear 
+0x36a9 009601 store 1 ,mem_24g_txbuf 
+0x36aa 009602 setarg 0 
+0x36ab 009603 store 7 ,mem_24g_txbuf + 1 
+0x36ac 009604 fetch 4 ,mem_24g_device_addr 
+0x36ad 009605 store 4 ,mem_24g_txbuf + 8 
+0x36ae 009606 jam 12 ,mem_24g_datalen 
+0x36af 009607 fetch 1 ,mem_24g_data_type 
+0x36b0 009608 set1 bit_abort ,pdata 
+0x36b1 009609 store 1 ,mem_24g_data_type 
+0x36b2 009610 call g24_transmit_prep 
+0x36b3 009611 branch g24_transmit_start 
+:      009615 g24_lpm_wait:
+0x36b4 009616 bpatchx patch33_6 ,mem_patch33 
+0x36b5 009617 enable user 
+0x36b6 009618 call lpo_calibration 
+0x36b7 009619 fetch 3 ,mem_clks_per_lpo 
+0x36b8 009620 branch disable_user ,blank 
+0x36b9 009621 fetch 1 ,mem_lpm_mode 
+0x36ba 009622 branch disable_user ,blank 
+0x36bb 009623 fetch 1 ,mem_24g_transmit_by_interrupt 
+0x36bc 009624 beq g24_tx_timer_int_enable ,disable_user 
+0x36bd 009625 rtn 
+:      009627 g24_setgpio_lpm_before:
+0x36be 009628 fetch 2 ,mem_cb_24g_lpm_before 
+0x36bf 009629 branch callback_func 
+:      009642 g24_transmit_by_interrupt:
+0x36c0 009643 call g24_timer_check 
+0x36c1 009644 nrtn user 
+0x36c2 009645 call g24_interval_calibrate 
+0x36c3 009646 fetch 2 ,mem_24g_transmit_by_interrupt_exit_count 
+0x36c4 009647 increase 1 ,pdata 
+0x36c5 009648 store 2 ,mem_24g_transmit_by_interrupt_exit_count 
+0x36c6 009649 fetcht 2 ,mem_24g_transmit_by_interrupt_exit_count_init 
+0x36c7 009650 isub temp ,null 
+0x36c8 009651 call g24_transmit_by_interrupt_exit ,zero 
+0x36c9 009652 branch g24_transmit_no_interrupt 
+:      009655 g24_transmit_by_interrupt_exit:
+0x36ca 009656 jam g24_tx_timer_int_disable ,mem_24g_transmit_by_interrupt 
+0x36cb 009657 setarg 0 
+0x36cc 009658 store 2 ,mem_24g_transmit_by_interrupt_exit_count 
+0x36cd 009659 setarg 100 
+0x36ce 009660 store 2 ,mem_24g_transmit_by_interrupt_exit_count_init 
+:      009661 g24_interval_min:
+0x36cf 009662 jam 0 ,mem_24g_pac_index 
+0x36d0 009663 fetch 1 ,mem_24g_interval_min 
+:      009664 g24_interval_store:
+0x36d1 009665 store 1 ,mem_24g_interval 
+0x36d2 009666 rtn 
+:      009667 g24_interval_max:
+0x36d3 009668 fetch 1 ,mem_24g_interval_max 
+0x36d4 009669 branch g24_interval_store 
+:      009671 g24_interval_calibrate:
+0x36d5 009672 fetch 1 ,mem_24g_pac_index 
+0x36d6 009673 increase 1 ,pdata 
+0x36d7 009674 store 1 ,mem_24g_pac_index 
+0x36d8 009675 beq 4 ,g24_interval_max 
+0x36d9 009676 beq 5 ,g24_interval_min 
+0x36da 009677 rtn 
+:      009679 g24_transmit_by_interrupt_enable:
+0x36db 009680 jam g24_tx_timer_int_enable ,mem_24g_transmit_by_interrupt 
+0x36dc 009681 setarg 0 
+0x36dd 009682 store 2 ,mem_24g_transmit_by_interrupt_exit_count 
+0x36de 009683 rtn 
+:      009693 g24_factory_check:
+0x36df 009694 arg 2 ,loopcnt 
+0x36e0 009695 arg mem_24g_addr ,contr 
+:      009696 pdata_0xff_check:
+0x36e1 009697 call enable_user 
+0x36e2 009698 setarg 0xffff 
+:      009699 pdata_0xff_check_loop:
+0x36e3 009700 ifetcht 2 ,contr 
+0x36e4 009701 isub temp ,null 
+0x36e5 009702 ncall disable_user ,zero 
+0x36e6 009703 loop pdata_0xff_check_loop 
+0x36e7 009704 rtn 
+:      009714 power_ctrl_start:
+0x36e8 009715 bpatchx patch33_7 ,mem_patch33 
+0x36e9 009716 fetch 1 ,mem_power_ctrl_disable 
+0x36ea 009717 nrtn blank 
+0x36eb 009718 fetch 2 ,mem_ui_state_map 
+0x36ec 009719 rtnbit1 ui_state_ble_adv 
+0x36ed 009722 fetchr rega ,2 ,mem_rssi_signal_buf_ptr 
+0x36ee 009723 call rssi_average 
+0x36ef 009724 storet 1 ,mem_rssi_avg_received 
+0x36f0 009725 fetch 1 ,mem_rssi_dis_max_24g 
+0x36f1 009726 bmark1 mark_24g ,power_ctrl_start_next 
+0x36f2 009727 fetch 1 ,mem_rssi_dis_max_ble 
+:      009728 power_ctrl_start_next:
+0x36f3 009729 isub temp ,null 
+0x36f4 009730 nbranch power_ctrl_txpower_incrs_force ,positive 
+0x36f5 009731 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+0x36f6 009732 sub pdata ,2 ,null 
+0x36f7 009733 nbranch power_ctrl_txpower_decrs_check ,positive 
+0x36f8 009734 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+0x36f9 009735 beq 0 ,power_ctrl_txpower_incrs 
+0x36fa 009736 rtn 
+:      009738 power_ctrl_txpower_decrs_check:
+0x36fb 009739 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+0x36fc 009740 fetcht 1 ,mem_power_ctrl_pac_succ_cnt_init 
+0x36fd 009741 isub temp ,null 
+0x36fe 009742 nrtn zero 
+0x36ff 009743 jam 0 ,mem_power_ctrl_pac_succ_cnt 
+:      009744 power_ctrl_txpower_decrs:
+0x3700 009745 fetcht 1 ,mem_rssi_avg_received 
+0x3701 009746 fetch 1 ,mem_rssi_dis_min_24g 
+0x3702 009747 bmark1 mark_24g ,power_ctrl_txpower_decrs_next 
+0x3703 009748 fetch 1 ,mem_rssi_dis_min_ble 
+:      009749 power_ctrl_txpower_decrs_next:
+0x3704 009750 isub temp ,null 
+0x3705 009751 nrtn positive 
+0x3706 009752 fetch 1 ,mem_power_ctrl_level 
+0x3707 009753 beq 0 ,power_ctrl_decrs_level0 
+0x3708 009754 increase -1 ,pdata 
+0x3709 009755 store 1 ,mem_power_ctrl_level 
+0x370a 009756 beq 0 ,power_ctrl_decrs_level0 
+:      009757 power_ctrl_decrs_level1:
+:      009758 power_ctrl_incrs_level1:
+0x370b 009759 jam tx_power_0db ,mem_tx_power 
+0x370c 009760 rtn 
+:      009762 power_ctrl_txpower_incrs_force:
+0x370d 009763 jam 0 ,mem_power_ctrl_pac_succ_cnt 
+:      009764 power_ctrl_txpower_incrs:
+0x370e 009765 fetch 1 ,mem_power_ctrl_level 
+0x370f 009766 beq 2 ,power_ctrl_incrs_level2 
+0x3710 009767 increase 1 ,pdata 
+0x3711 009768 store 1 ,mem_power_ctrl_level 
+0x3712 009769 beq 1 ,power_ctrl_incrs_level1 
+:      009770 power_ctrl_incrs_level2:
+0x3713 009771 jam tx_power_6db ,mem_tx_power 
+0x3714 009772 rtn 
+:      009774 power_ctrl_decrs_level0:
+0x3715 009775 jam tx_power_f5db ,mem_tx_power 
+0x3716 009776 rtn 
+:      009778 power_ctrl_pac_succ_cnt_init:
+0x3717 009779 jam 1 ,mem_power_ctrl_level 
+0x3718 009780 jam 0 ,mem_power_ctrl_pac_succ_cnt 
+0x3719 009781 rtn 
+:      009783 power_ctrl_pac_succ_incrs:
+0x371a 009784 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+0x371b 009785 increase 1 ,pdata 
+0x371c 009786 store 1 ,mem_power_ctrl_pac_succ_cnt 
+0x371d 009787 rtn 
+:      009789 power_ctrl_pac_succ_decrs:
+0x371e 009790 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+0x371f 009791 sub pdata ,2 ,null 
+0x3720 009792 ncall power_ctrl_pac_succ_cnt_reinit ,positive 
+0x3721 009793 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+0x3722 009794 rtneq 0 
+0x3723 009795 increase -1 ,pdata 
+0x3724 009796 store 1 ,mem_power_ctrl_pac_succ_cnt 
+0x3725 009797 rtn 
+:      009799 power_ctrl_pac_succ_cnt_reinit:
+0x3726 009800 jam 3 ,mem_power_ctrl_pac_succ_cnt 
+0x3727 009801 rtn 
+:      009811 ali_mesh_access_layer_resolve_message:
+0x3728 009812 fetch 1 ,mem_ccm_data_len 
+0x3729 009813 store 1 ,mem_mesh_receive_model_message_payload_len 
+0x372a 009814 copy alarm ,contr 
+0x372b 009815 call memcpy24 
+0x372c 009816 fetch 2 ,mem_mesh_cb_receive_access_message 
+0x372d 009817 branch callback_func 
+:      009819 ali_mesh_access_layer_check_access_message_opcode:
+0x372e 009820 jam mesh_receive_new_message_timer ,mem_mesh_upper_receive_new_message_timer 
+0x372f 009821 call ali_mesh_app_recv_new_mesh_pkt 
+0x3730 009824 fetch 1 ,mem_mesh_receive_model_message_payload_opcode 
+0x3731 009825 beq mesh_message_opcode_config_appkey_add ,ali_mesh_access_layer_message_opcode_config_appkey_add 
+0x3732 009826 beq mesh_configuration_and_health_message_opcode_header ,ali_mesh_access_layer_config_or_health_message_opcode 
+0x3733 009827 beq mesh_module_message_opcode_header ,ali_mesh_model_layer_check_model_message_opcode 
+0x3734 009828 beq vendor_message_attr_set ,ali_mesh_ali_vendor_message_attribute_set 
+0x3735 009829 beq vendor_message_attr_get ,ali_mesh_ali_vendor_message_opcode_attr_get 
+0x3736 009830 beq vendor_message_attr_set_unacknowledged ,ali_mesh_ali_vendor_message_attribute_set 
+0x3737 009831 beq vendor_message_attr_confirmation ,ali_mesh_ali_vendor_message_opcode_attr_confrimation 
+0x3738 009832 rtn 
+:      009835 ali_mesh_access_layer_message_opcode_config_appkey_add:
+0x3739 009836 arg mem_mesh_receive_application_key ,contr 
+0x373a 009837 arg mem_mesh_application_key ,contw 
+0x373b 009838 call memcpy16 
+0x373c 009839 jam paired_status ,mem_mesh_provisioned_flag 
+0x373d 009840 call ali_mesh_encrypt_base_function_k3 
+0x373e 009841 call ali_mesh_encrypt_base_function_k4 
+0x373f 009842 call ali_mesh_access_layer_finish_pairing_init_subscription_list 
+0x3740 009843 call ali_mesh_accesss_layer_check_message_type 
+0x3741 009844 call ali_mesh_access_layer_send_config_appkey_status 
+0x3742 009845 jam paired_status ,mem_mesh_provisioned_flag 
+0x3743 009846 fetch 2 ,mem_mesh_cb_receive_config_appkey_add 
+0x3744 009847 branch callback_func 
+:      009849 ali_mesh_access_layer_recv_cfg_appkey_add_cb:
+0x3745 009850 setarg 0 
+0x3746 009851 store 2 ,mem_mesh_fast_pairing_timer 
+0x3747 009853 random pdata 
+0x3748 009854 and pdata ,0x1f ,pdata 
+0x3749 009855 add pdata ,30 ,pdata 
+0x374a 009856 store 1 ,mem_mesh_report_full_attribute_timer 
+0x374b 009857 add pdata ,5 ,pdata 
+0x374c 009858 store 1 ,mem_mesh_report_power_on_timer 
+0x374d 009859 call mesh_clear_timer_data 
+0x374e 009860 branch mesh_receive_config_appkey_add_cb 
+:      009862 ali_mesh_accesss_layer_check_message_type:
+0x374f 009863 fetch 1 ,mem_mesh_network_packet_type 
+0x3750 009864 jam received_config_appkey_add ,mem_mesh_provisioned_flag 
+0x3751 009865 rtneq mesh_message_app 
+0x3752 009866 jam paired_status ,mem_mesh_provisioned_flag 
+0x3753 009867 rtn 
+:      009869 ali_mesh_access_layer_send_config_appkey_status:
+0x3754 009870 setarg mesh_configuration_and_health_message_opcode_header 
+0x3755 009871 store 1 ,mem_mesh_access_layer_payload 
+0x3756 009872 setarg mesh_message_opcode_config_config_model_publication_set 
+0x3757 009873 istore 1 ,contw 
+0x3758 009874 setarg status_code_success 
+0x3759 009875 istore 1 ,contw 
+0x375a 009876 fetch 3 ,mem_mesh_netkeyindex_and_appkeyindex 
+0x375b 009877 istore 3 ,contw 
+0x375c 009878 jam 6 ,mem_mesh_access_layer_payload_len 
+0x375d 009879 branch ali_mesh_upper_transport_layer_send_access_message 
+:      009882 ali_mesh_access_layer_finish_pairing_init_subscription_list:
+0x375e 009883 fetch 2 ,mem_mesh_core_feature 
+0x375f 009884 rtnbit1 mesh_feature_disable_subscription 
+0x3760 009885 call mesh_get_element_info_config 
+:      009886 ali_mesh_access_layer_finish_pairing_init_subscription_list_loop:
+0x3761 009887 add rega ,element_device_subscription_label ,regc 
+0x3762 009888 setarg -1 
+0x3763 009889 istore subscription_max_count ,regc 
+0x3764 009890 istore subscription_max_count ,contw 
+0x3765 009891 ifetch 2 ,rega 
+0x3766 009892 istore 2 ,regc 
+0x3767 009893 copy regb ,pdata 
+0x3768 009894 iadd rega ,rega 
+0x3769 009895 loop ali_mesh_access_layer_finish_pairing_init_subscription_list_loop 
+0x376a 009896 fetch 2 ,mem_mesh_cb_subscriptuion_list_changed 
+0x376b 009897 branch callback_func 
+:      009900 ali_mesh_access_layer_send_generic_onoff_status:
+0x376c 009901 setarg mesh_module_message_opcode_header 
+0x376d 009902 store 1 ,mem_mesh_access_layer_payload 
+0x376e 009903 setarg mesh_module_message_opcode_generic_onoff_status_no_head 
+0x376f 009904 istore 1 ,contw 
+0x3770 009905 fetch 1 ,mem_mesh_generic_onoff_set_payload_onoff 
+0x3771 009906 istore 1 ,contw 
+0x3772 009907 jam 3 ,mem_mesh_access_layer_payload_len 
+0x3773 009908 branch ali_mesh_upper_transport_layer_send_access_message 
+:      009911 ali_mesh_access_layer_send_light_lightness_status:
+0x3774 009912 setarg mesh_module_message_opcode_header 
+0x3775 009913 store 1 ,mem_mesh_access_layer_payload 
+0x3776 009914 setarg mesh_module_message_opcode_light_lightness_status_no_head 
+0x3777 009915 istore 1 ,contw 
+0x3778 009916 fetch 2 ,mem_mesh_light_lightness_set_payload_lightness 
+0x3779 009917 istore 2 ,contw 
+0x377a 009918 jam 4 ,mem_mesh_access_layer_payload_len 
+0x377b 009919 branch ali_mesh_upper_transport_layer_send_access_message 
+:      009922 ali_mesh_access_layer_send_light_ctl_stauts:
+0x377c 009923 setarg mesh_module_message_opcode_header 
+0x377d 009924 store 1 ,mem_mesh_access_layer_payload 
+0x377e 009925 setarg mesh_module_message_opcode_light_ctl_status_no_head 
+0x377f 009926 istore 1 ,contw 
+0x3780 009927 fetch 4 ,mem_mesh_ctl_lightness 
+0x3781 009928 istore 4 ,contw 
+0x3782 009929 jam 6 ,mem_mesh_access_layer_payload_len 
+0x3783 009930 branch ali_mesh_upper_transport_layer_send_access_message 
+:      009934 ali_mesh_access_layer_send_scene_status:
+0x3784 009935 setarg mesh_module_message_opcode_scene_status 
+0x3785 009936 store 1 ,mem_mesh_access_layer_payload 
+0x3786 009937 setarg mesh_success 
+0x3787 009938 istore 1 ,contw 
+0x3788 009939 fetch 2 ,mem_mesh_scene_recall_payload_scene_number 
+0x3789 009940 istore 2 ,contw 
+0x378a 009941 jam 4 ,mem_mesh_access_layer_payload_len 
+0x378b 009942 branch ali_mesh_upper_transport_layer_send_access_message 
+:      009946 ali_mesh_app_recv_new_mesh_pkt:
+0x378c 009948 fetch 1 ,mem_mesh_report_full_attribute_timer 
+0x378d 009949 rtn blank 
+0x378e 009950 pincrease 30 
+0x378f 009951 store 1 ,mem_mesh_report_full_attribute_timer 
+0x3790 009952 rtn 
+:      009954 ali_mesh_report_power_on_timer:
+0x3791 009955 arg mem_mesh_report_power_on_timer ,regc 
+0x3792 009956 arg ali_mesh_ali_vendor_message_opcode_device_power_on ,regb 
+0x3793 009957 branch timer_single_step 
+:      009959 ali_mesh_report_full_attribute_timer:
+0x3794 009960 arg mem_mesh_report_full_attribute_timer ,regc 
+0x3795 009961 arg ali_mesh_app_report_device_state ,regb 
+0x3796 009962 branch timer_single_step 
+:      009964 ali_mesh_app_report_device_state:
+0x3797 009965 fetch 2 ,mem_mesh_app_deport_device_state 
+0x3798 009966 branch callback_func 
+:      009973 ali_mesh_ali_vendor_message_attribute_set:
+0x3799 009974 call ali_mesh_ali_vendor_message_attrbute_check_company_id_and_tid 
+0x379a 009975 nrtn user 
+0x379b 009976 bpatchx patch34_0 ,mem_patch34 
+0x379c 009977 fetch 2 ,mem_mesh_vendor_message_attr_type 
+0x379d 009978 arg vendor_message_attr_type_time ,temp 
+0x379e 009979 isub temp ,null 
+0x379f 009980 branch ali_mesh_ali_vendor_message_opcode_timer_set_curr_time ,zero 
+0x37a0 009982 arg vendor_mseeage_attr_type_set_time_repeat ,temp 
+0x37a1 009983 isub temp ,null 
+0x37a2 009984 branch ali_mesh_ali_vendor_message_opcode_timer_set_timing_cyclically ,zero 
+0x37a3 009986 arg vendor_mseeage_attr_type_set_time_single ,temp 
+0x37a4 009987 isub temp ,null 
+0x37a5 009988 branch ali_mesh_ali_vendor_message_opcode_timer_set_timing ,zero 
+0x37a6 009990 arg vendor_message_attr_type_timer_deleate ,temp 
+0x37a7 009991 isub temp ,null 
+0x37a8 009992 branch ali_mesh_ali_vendor_message_opcode_delete_timer ,zero 
+0x37a9 009993 arg vendor_message_attr_type_timer_inquire ,temp 
+0x37aa 009994 isub temp ,null 
+0x37ab 009995 branch ali_mesh_ali_vendor_message_opcode_timer_inquire ,zero 
+0x37ac 009996 arg vendor_mseeage_attr_type_timer_enable ,temp 
+0x37ad 009997 isub temp ,null 
+0x37ae 009998 branch ali_mesh_ali_vendor_message_opcode_timer_set_state ,zero 
+0x37af 010001 arg vendor_message_attr_type_main_light ,temp 
+0x37b0 010002 isub temp ,null 
+0x37b1 010003 branch ali_mesh_ali_vendor_message_attribute_set_main_light ,zero 
+0x37b2 010004 arg vendor_message_attr_type_background_light ,temp 
+0x37b3 010005 isub temp ,null 
+0x37b4 010006 branch ali_mesh_ali_vendor_message_attribute_set_background_light ,zero 
+0x37b5 010007 arg vendor_message_attr_type_color ,temp 
+0x37b6 010008 isub temp ,null 
+0x37b7 010009 branch ali_mesh_ali_vendor_message_attribute_set_color ,zero 
+0x37b8 010010 fetch 2 ,mem_mesh_cb_recv_vendor 
+0x37b9 010011 branch callback_func 
+:      010013 ali_mesh_ali_vendor_message_opcode_attr_get:
+0x37ba 010014 rtn 
+:      010015 ali_mesh_ali_vendor_message_opcode_attr_confrimation:
+0x37bb 010016 ifetch 2 ,contr 
+0x37bc 010017 arg vendor_message_opcode_company_id ,temp 
+0x37bd 010018 isub temp ,null 
+0x37be 010019 nrtn zero 
+0x37bf 010020 ifetch 1 ,contr 
+0x37c0 010021 fetcht 1 ,mem_mesh_upper_tran_layer_packet_tid 
+0x37c1 010022 isub temp ,null 
+0x37c2 010023 nrtn zero 
+0x37c3 010024 branch ali_mesh_stop_send_indication_packet 
+:      010026 ali_mesh_ali_vendor_message_attrbute_check_company_id_and_tid:
+0x37c4 010027 call disable_user 
+0x37c5 010028 fetch 2 ,mem_mesh_vendor_message_cid 
+0x37c6 010029 arg vendor_message_opcode_company_id ,temp 
+0x37c7 010030 isub temp ,null 
+0x37c8 010031 nrtn zero 
+0x37c9 010032 fetcht 1 ,mem_mesh_vendor_mesh_receive_tid 
+0x37ca 010033 fetch 1 ,mem_mesh_vendor_message_tid 
+0x37cb 010034 isub temp ,null 
+0x37cc 010035 rtn zero 
+0x37cd 010036 store 1 ,mem_mesh_vendor_mesh_receive_tid 
+0x37ce 010037 branch enable_user 
+:      010039 ali_mesh_ali_vendor_message_attribute_set_main_light:
+0x37cf 010040 call ali_mesh_ali_vendor_message_ack_attr_status_uint8 
+0x37d0 010041 fetch 2 ,mem_mesh_cb_main_light_onoff_set 
+0x37d1 010042 branch callback_func 
+:      010045 ali_mesh_ali_vendor_message_attribute_set_background_light:
+0x37d2 010046 call ali_mesh_ali_vendor_message_ack_attr_status_uint8 
+0x37d3 010047 fetch 2 ,mem_mesh_cb_background_onoff_set 
+0x37d4 010048 branch callback_func 
+:      010050 ali_mesh_ali_vendor_message_attribute_set_color:
+0x37d5 010051 call ali_mesh_ali_vendor_message_ack_attr_status_uint48 
+0x37d6 010052 fetch 2 ,mem_mesh_cb_color_set 
+0x37d7 010053 branch callback_func 
+:      010056 ali_mesh_ali_vendor_message_opcode_timer_set_curr_time:
+0x37d8 010057 call ali_mesh_ali_vendor_message_ack_attr_status_uint32 
+0x37d9 010059 fetch 4 ,mem_mesh_vendor_message_current_time 
+0x37da 010060 store 4 ,mem_mesh_vendor_timer_current_time 
+0x37db 010061 branch ali_mesh_time_init_system_time 
+:      010065 ali_mesh_ali_vendor_message_status_add_head:
+0x37dc 010066 setarg vendor_message_attr_status 
+0x37dd 010067 store 1 ,mem_mesh_access_layer_payload 
+0x37de 010068 setarg vendor_message_opcode_company_id 
+0x37df 010069 istore 2 ,contw 
+0x37e0 010070 fetch 1 ,mem_mesh_vendor_mesh_receive_tid 
+0x37e1 010071 istore 1 ,contw 
+0x37e2 010072 istoret 2 ,contw 
+0x37e3 010073 rtn 
+:      010076 ali_mesh_ali_vendor_message_opcode_device_power_on:
+0x37e4 010077 arg 0 ,queue 
+0x37e5 010078 arg vendor_message_event_device_power_on ,temp 
+0x37e6 010079 arg vendor_attr_type_event_trigger ,rega 
+0x37e7 010080 branch ali_mesh_ali_vendor_message_opcode_para_uint8 
+:      010091 ali_mesh_ali_vendor_message_opcode_generic_onoff:
+0x37e8 010092 arg vendor_attr_generic_onoff_server ,rega 
+0x37e9 010093 branch ali_mesh_ali_vendor_message_opcode_para_uint8 
+:      010097 ali_mesh_ali_vendor_message_ack_attr_status_uint64:
+0x37ea 010098 arg 8 ,loopcnt 
+0x37eb 010099 branch ali_mesh_ali_vendor_message_ack_attr_status 
+:      010101 ali_mesh_ali_vendor_message_ack_attr_status_uint56:
+0x37ec 010102 arg 8 ,loopcnt 
+0x37ed 010103 branch ali_mesh_ali_vendor_message_ack_attr_status 
+:      010105 ali_mesh_ali_vendor_message_ack_attr_status_uint48:
+0x37ee 010106 arg 6 ,loopcnt 
+0x37ef 010107 branch ali_mesh_ali_vendor_message_ack_attr_status 
+:      010109 ali_mesh_ali_vendor_message_ack_attr_status_uint32:
+0x37f0 010110 arg 4 ,loopcnt 
+0x37f1 010111 branch ali_mesh_ali_vendor_message_ack_attr_status 
+:      010113 ali_mesh_ali_vendor_message_ack_attr_status_uint16:
+0x37f2 010114 arg 2 ,loopcnt 
+0x37f3 010115 branch ali_mesh_ali_vendor_message_ack_attr_status 
+:      010117 ali_mesh_ali_vendor_message_ack_attr_status_uint8:
+0x37f4 010118 arg 1 ,loopcnt 
+0x37f5 010119 branch ali_mesh_ali_vendor_message_ack_attr_status 
+:      010122 ali_mesh_ali_vendor_message_ack_attr_status:
+0x37f6 010123 add loopcnt ,6 ,pdata 
+0x37f7 010124 store 1 ,mem_mesh_access_layer_payload_len 
+0x37f8 010125 call ali_mesh_ali_vendor_message_status_add_head 
+0x37f9 010126 arg mem_mesh_vendor_attr_parameter ,contr 
+0x37fa 010127 call memcpy 
+0x37fb 010128 branch ali_mesh_upper_transport_layer_send_access_message 
+:      010135 ali_mesh_ali_vendor_message_opcode_para_uint8:
+0x37fc 010136 call ali_mesh_ali_vendor_message_indication_info_add_head 
+0x37fd 010137 istorer rega ,2 ,contw 
+0x37fe 010138 istoret 1 ,contw 
+0x37ff 010139 jam 7 ,mem_mesh_access_layer_payload_len 
+0x3800 010140 branch ali_mesh_ali_vendor_message_send_message 
+:      010146 ali_mesh_ali_vendor_message_opcode_para_uint16:
+0x3801 010147 call ali_mesh_ali_vendor_message_indication_info_add_head 
+0x3802 010148 istorer rega ,2 ,contw 
+0x3803 010149 istoret 2 ,contw 
+0x3804 010150 jam 8 ,mem_mesh_access_layer_payload_len 
+0x3805 010151 branch ali_mesh_ali_vendor_message_send_message 
+:      010155 ali_mesh_ali_vendor_message_send_message:
+0x3806 010156 call ali_mesh_more_element_calc_queue_address 
+0x3807 010157 branch ali_mesh_upper_transport_layer_send_access_message_without_cleat_tx_buffer 
+:      010160 ali_mesh_ali_vendor_message_indication_info_add_head:
+0x3808 010161 fetch 1 ,mem_mesh_transport_aid 
+0x3809 010162 store 1 ,mem_mesh_message_transport_head 
+0x380a 010163 setarg vendor_message_tmall_dst 
+0x380b 010164 store 2 ,mem_mesh_send_message_dst 
+0x380c 010165 fetch 1 ,mem_mesh_vendor_mesh_send_tid 
+0x380d 010166 pincrease 1 
+0x380e 010167 store 1 ,mem_mesh_vendor_mesh_send_tid 
+0x380f 010168 beq vendor_message_send_tid_max ,ali_mesh_ali_vendor_message_indication_info_reset_tid 
+0x3810 010169 setarg vendor_message_attr_indication 
+0x3811 010170 store 1 ,mem_mesh_access_layer_payload 
+0x3812 010171 setarg vendor_message_opcode_company_id 
+0x3813 010172 istore 2 ,contw 
+0x3814 010173 fetch 1 ,mem_mesh_vendor_mesh_send_tid 
+0x3815 010174 istore 1 ,contw 
+0x3816 010175 rtn 
+:      010177 ali_mesh_ali_vendor_message_indication_info_reset_tid:
+0x3817 010178 jam vendor_message_send_tid_min ,mem_mesh_vendor_mesh_send_tid 
+0x3818 010179 rtn 
+:      010182 ali_mesh_ali_vendor_message_opcode_delete_timer:
+0x3819 010183 copy contr ,rega 
+0x381a 010184 fetch 1 ,mem_mesh_receive_model_message_payload_len 
+0x381b 010185 arg 6 ,temp 
+0x381c 010186 isub temp ,pdata 
+0x381d 010187 store 1 ,mem_mesh_timer_index_buffer_len 
+0x381e 010188 copy pdata ,loopcnt 
+0x381f 010189 copy rega ,contr 
+0x3820 010190 arg mem_mesh_timer_index_buffer ,contw 
+0x3821 010191 call memcpy 
+0x3822 010192 arg 0 ,regb 
+:      010193 ali_mesh_ali_vendor_message_opcode_delete_timer_loop:
+0x3823 010194 arg mem_mesh_timer_index_buffer ,pdata 
+0x3824 010195 iadd regb ,temp 
+0x3825 010196 ifetch 1 ,temp 
+0x3826 010197 beq 0xff ,ali_mesh_ali_vendor_aim_timer_buffer_clear_all 
+0x3827 010198 and pdata ,0x7f ,pdata 
+0x3828 010199 call ali_mesh_ali_vendor_aim_timer_buffer_clear 
+0x3829 010200 increase 1 ,regb 
+0x382a 010201 fetch 1 ,mem_mesh_timer_index_buffer_len 
+0x382b 010202 isub regb ,null 
+0x382c 010203 branch ali_mesh_ali_vendor_message_opcode_delete_timer_loop ,positive 
+0x382d 010204 call peripherals_write_mesh_timer_infmatn 
+:      010205 ali_mesh_access_layer_send_ali_vendor_message_delete_timer:
+0x382e 010206 arg vendor_message_attr_type_timer_deleate ,temp 
+0x382f 010207 call ali_mesh_ali_vendor_message_status_add_head 
+0x3830 010208 arg 0 ,temp 
+0x3831 010209 istoret 1 ,contw 
+0x3832 010210 copy contw ,temp 
+0x3833 010211 call ali_mesh_get_all_timer_index_timer 
+0x3834 010212 pincrease 7 
+0x3835 010213 store 1 ,mem_mesh_access_layer_payload_len 
+0x3836 010214 branch ali_mesh_upper_transport_layer_send_access_message 
+:      010216 ali_mesh_ali_vendor_aim_timer_buffer_clear:
+0x3837 010217 rtn blank 
+0x3838 010218 pincrease -1 
+0x3839 010219 mul32 pdata ,18 ,pdata 
+0x383a 010220 arg mem_mesh_vendor_timer_timing_buffer ,rega 
+0x383b 010221 iadd rega ,rega 
+0x383c 010222 setarg 0 
+0x383d 010223 istore 1 ,rega 
+0x383e 010224 rtn 
+:      010226 ali_mesh_ali_vendor_aim_timer_buffer_clear_all:
+0x383f 010227 arg 18 ,loopcnt 
+0x3840 010228 mul32 loopcnt ,mesh_x_timers ,loopcnt 
+0x3841 010229 arg mem_mesh_vendor_timer_timing_buffer ,contw 
+0x3842 010230 call clear_mem 
+0x3843 010231 call peripherals_write_mesh_timer_infmatn 
+0x3844 010232 branch ali_mesh_access_layer_send_ali_vendor_message_delete_timer 
+:      010234 ali_mesh_ali_vendor_message_opcode_timer_inquire:
+0x3845 010235 ifetch 1 ,contr 
+0x3846 010236 beq 0xff ,ali_mesh_ali_vendor_message_opcode_timer_inquire_all_timer 
+0x3847 010237 store 1 ,mem_mesh_vendor_timer_timing_temp 
+0x3848 010238 ifetch 1 ,contr 
+0x3849 010239 pincrease -1 
+0x384a 010240 mul32 pdata ,18 ,pdata 
+0x384b 010241 arg mem_mesh_vendor_timer_timing_buffer ,contr 
+0x384c 010242 iadd contr ,contr 
+0x384d 010243 arg mem_mesh_vendor_timer_timing_palyload ,contw 
+0x384e 010244 arg 18 ,loopcnt 
+0x384f 010245 call memcpy 
+0x3850 010246 arg vendor_message_attr_type_timer_inquire ,temp 
+0x3851 010247 call ali_mesh_ali_vendor_message_status_add_head 
+0x3852 010248 fetch 1 ,mem_mesh_vendor_timer_timing_index 
+0x3853 010249 branch ali_mesh_ali_vendor_message_opcode_timer_inquire_time_error ,blank 
+0x3854 010250 arg 0 ,temp 
+0x3855 010251 istoret 1 ,contw 
+:      010252 ali_mesh_ali_vendor_message_opcode_timer_inquire_time:
+0x3856 010253 fetch 1 ,mem_mesh_vendor_timer_timing_temp 
+0x3857 010254 istore 1 ,contw 
+0x3858 010255 fetch 1 ,mem_mesh_vendor_timer_timing_index 
+0x3859 010256 istore 1 ,contw 
+0x385a 010257 fetch 8 ,mem_mesh_vendor_timer_timing_time 
+0x385b 010258 istore 8 ,contw 
+0x385c 010259 jam 17 ,mem_mesh_access_layer_payload_len 
+0x385d 010260 branch ali_mesh_upper_transport_layer_send_access_message 
+:      010263 ali_mesh_ali_vendor_message_opcode_timer_inquire_all_timer:
+0x385e 010264 arg vendor_message_attr_type_timer_inquire ,temp 
+0x385f 010265 call ali_mesh_ali_vendor_message_status_add_head 
+0x3860 010266 arg 0xff ,temp 
+0x3861 010267 istoret 2 ,contw 
+0x3862 010270 copy contw ,temp 
+0x3863 010271 call ali_mesh_get_all_timer_index_timer 
+0x3864 010272 pincrease 8 
+0x3865 010273 store 1 ,mem_mesh_access_layer_payload_len 
+0x3866 010274 branch ali_mesh_upper_transport_layer_send_access_message 
+:      010279 ali_mesh_ali_vendor_message_opcode_timer_inquire_time_error:
+0x3867 010280 arg 0x80 ,temp 
+0x3868 010281 istore 1 ,contw 
+0x3869 010282 branch ali_mesh_ali_vendor_message_opcode_timer_inquire_time 
+:      010284 ali_mesh_ali_vendor_message_opcode_timer_set_state:
+0x386a 010285 ifetch 1 ,contr 
+0x386b 010286 store 1 ,mem_mesh_vendor_timer_timing_temp 
+0x386c 010287 and pdata ,0x7f ,pdata 
+0x386d 010288 pincrease -1 
+0x386e 010289 mul32 pdata ,18 ,pdata 
+0x386f 010290 arg mem_mesh_vendor_timer_timing_buffer ,contw 
+0x3870 010291 iadd contw ,contw 
+0x3871 010292 fetch 1 ,mem_mesh_vendor_timer_timing_temp 
+0x3872 010293 istore 1 ,contw 
+0x3873 010294 call peripherals_write_mesh_timer_infmatn 
+0x3874 010295 arg vendor_mseeage_attr_type_timer_enable ,temp 
+0x3875 010296 call ali_mesh_ali_vendor_message_status_add_head 
+0x3876 010297 setarg 0 
+0x3877 010298 istore 1 ,contw 
+0x3878 010299 copy contw ,temp 
+0x3879 010300 call ali_mesh_get_all_timer_index_timer 
+0x387a 010301 pincrease 7 
+0x387b 010302 store 1 ,mem_mesh_access_layer_payload_len 
+0x387c 010303 branch ali_mesh_upper_transport_layer_send_access_message 
+:      010308 ali_mesh_time_function:
+0x387d 010309 copy clkn_bt ,temp 
+0x387e 010310 fetch 4 ,mem_system_time 
+0x387f 010311 isub temp ,null 
+0x3880 010312 call ali_mesh_timer_timeout ,positive 
+0x3881 010313 call ali_mesh_clkn_bt_add_1s 
+0x3882 010314 isub temp ,null 
+0x3883 010315 rtn positive 
+0x3884 010316 call ali_mesh_time_init_system_time_without_clk 
+0x3885 010317 fetch 4 ,mem_mesh_vendor_timer_current_time 
+0x3886 010318 pincrease 1 
+0x3887 010319 store 4 ,mem_mesh_vendor_timer_current_time 
+0x3888 010320 branch ali_mesh_ali_vendor_check_time 
+:      010323 ali_mesh_time_init_system_time:
+0x3889 010324 copy clkn_bt ,pdata 
+:      010325 ali_mesh_time_init_system_time_without_clk:
+0x388a 010326 store 4 ,mem_system_time 
+0x388b 010327 fetch 1 ,mem_system_time + 3 
+0x388c 010328 and_into 0x0f ,pdata 
+0x388d 010329 store 1 ,mem_system_time + 3 
+0x388e 010330 rtn 
+:      010332 ali_mesh_timer_timeout:
+0x388f 010333 rtn zero 
+0x3890 010334 copy pdata ,regb 
+0x3891 010335 setarg 0x100000 
+0x3892 010336 lshift8 pdata ,pdata 
+0x3893 010337 iadd temp ,temp 
+0x3894 010338 copy regb ,pdata 
+0x3895 010339 rtn 
+:      010341 ali_mesh_clkn_bt_add_1s:
+0x3896 010342 arg 20 ,loopcnt 
+:      010343 ali_mesh_time_loop:
+0x3897 010344 pincrease 160 
+0x3898 010345 loop ali_mesh_time_loop 
+0x3899 010346 rtn 
+:      010348 ali_mesh_ali_vendor_check_time:
+0x389a 010349 setarg mesh_x_timers 
+0x389b 010350 store 1 ,mem_mesh_vendor_timer_check_loop 
+0x389c 010351 pincrease -1 
+0x389d 010352 mul32 pdata ,18 ,pdata 
+0x389e 010353 arg mem_mesh_vendor_timer_timing_buffer ,alarm 
+0x389f 010354 iadd alarm ,alarm 
+:      010355 ali_mesh_ali_vendor_check_time_loop:
+0x38a0 010356 ifetch 1 ,alarm 
+0x38a1 010357 ncall ali_mesh_ali_vendor_had_timing ,blank 
+0x38a2 010358 increase -18 ,alarm 
+0x38a3 010360 fetch 1 ,mem_mesh_vendor_timer_check_loop 
+0x38a4 010361 pincrease -1 
+0x38a5 010362 rtn blank 
+0x38a6 010363 store 1 ,mem_mesh_vendor_timer_check_loop 
+0x38a7 010364 branch ali_mesh_ali_vendor_check_time_loop 
+:      010366 ali_mesh_ali_vendor_had_timing:
+0x38a8 010367 arg 7 ,queue 
+0x38a9 010368 qisolate0 pdata 
+0x38aa 010369 rtn true 
+0x38ab 010370 and pdata ,0x7f ,pdata 
+0x38ac 010371 arg mesh_x_timers ,temp 
+0x38ad 010372 isub temp ,null 
+0x38ae 010373 rtn positive 
+0x38af 010374 copy alarm ,contr 
+0x38b0 010375 arg mem_mesh_vendor_timer_timing_palyload ,contw 
+0x38b1 010376 arg 18 ,loopcnt 
+0x38b2 010377 call memcpy 
+0x38b3 010378 fetch 1 ,mem_mesh_vendor_timer_timing_palyload + 17 
+0x38b4 010379 beq 0x59 ,ali_mesh_ali_vendor_had_timing_cyclically 
+:      010380 ali_mesh_ali_vendor_had_timing_single_time:
+0x38b5 010381 fetcht 4 ,mem_mesh_vendor_timer_current_time 
+0x38b6 010382 fetch 4 ,mem_mesh_vendor_timer_timing_time 
+0x38b7 010383 isub temp ,null 
+0x38b8 010384 fetch 1 ,mem_mesh_vendor_timer_timing_attr_para 
+0x38b9 010385 branch ali_mesh_ali_vendor_time_timeout ,zero 
+0x38ba 010386 nbranch ali_mesh_ali_vendor_time_out_of_date ,positive 
+0x38bb 010387 rtn 
+:      010389 ali_mesh_ali_vendor_time_out_of_date:
+0x38bc 010390 setarg 0 
+0x38bd 010391 istore 1 ,alarm 
+0x38be 010392 rtn 
+:      010394 ali_mesh_ali_vendor_had_timing_cyclically:
+0x38bf 010396 fetch 4 ,mem_mesh_vendor_timer_current_time 
+0x38c0 010397 arg seconds_of_min ,temp 
+0x38c1 010398 idiv temp 
+0x38c2 010399 call wait_div_end 
+0x38c3 010400 remainder pdata 
+0x38c4 010401 nrtn blank 
+0x38c5 010403 fetch 4 ,mem_mesh_vendor_timer_current_time 
+0x38c6 010404 arg seconds_of_four_days ,temp 
+0x38c7 010405 isub temp ,pdata 
+0x38c8 010407 arg seconds_of_week ,temp 
+0x38c9 010408 idiv temp 
+0x38ca 010409 call wait_div_end 
+0x38cb 010410 remainder pdata 
+0x38cc 010411 arg seconds_of_day ,temp 
+0x38cd 010412 idiv temp 
+0x38ce 010413 call wait_div_end 
+0x38cf 010414 remainder rega 
+0x38d0 010415 quotient queue 
+0x38d1 010416 fetch 1 ,mem_mesh_vendor_timer_timing_weekdays_cyclic 
+0x38d2 010417 branch ali_mesh_ali_vendor_had_timing_cyclically_continue ,blank 
+0x38d3 010418 qisolate1 pdata 
+0x38d4 010419 nrtn true 
+:      010420 ali_mesh_ali_vendor_had_timing_cyclically_continue:
+0x38d5 010422 deposit rega 
+0x38d6 010423 arg seconds_of_min ,temp 
+0x38d7 010424 idiv temp 
+0x38d8 010425 call wait_div_end 
+0x38d9 010426 quotient temp 
+0x38da 010427 setarg eight_hours_time_zone_offset 
+0x38db 010428 iadd temp ,temp 
+0x38dc 010429 fetch 2 ,mem_mesh_vendor_timer_timing_time_cyclic 
+0x38dd 010430 arg 0xfff ,rega 
+0x38de 010431 iand rega ,pdata 
+0x38df 010432 isub temp ,null 
+0x38e0 010433 nrtn zero 
+0x38e1 010434 fetch 1 ,mem_mesh_vendor_timer_timing_attr_para_cyclic 
+0x38e2 010435 branch ali_mesh_ali_vendor_time_timeout 
+:      010437 ali_mesh_ali_vendor_time_timeout:
+0x38e3 010438 store 1 ,mem_mesh_generic_onoff_set_payload_onoff 
+0x38e4 010439 jam 1 ,mem_mesh_vendor_timer_check_loop 
+0x38e5 010441 copy alarm ,pdata 
+0x38e6 010442 store 2 ,mem_mesh_alarm_temp 
+0x38e7 010444 fetcht 1 ,mem_mesh_generic_onoff_set_payload_onoff 
+0x38e8 010445 fetchr queue ,1 ,mem_mesh_receive_element_number 
+0x38e9 010446 call ali_mesh_ali_vendor_message_opcode_generic_onoff 
+0x38ea 010448 fetch 2 ,mem_mesh_alarm_temp 
+0x38eb 010449 copy pdata ,alarm 
+0x38ec 010450 add alarm ,17 ,contr 
+0x38ed 010451 ifetch 1 ,contr 
+0x38ee 010452 beq timer_cyclical_falg ,ali_mesh_ali_vendor_time_timeout_cyclic 
+:      010453 ali_mesh_ali_vendor_time_timeout_continue:
+0x38ef 010454 setarg 0 
+0x38f0 010455 istore 1 ,alarm 
+0x38f1 010456 fetchr queue ,1 ,mem_mesh_receive_element_number 
+0x38f2 010457 call ali_mesh_ali_vendor_message_opcode_timing_finish 
+0x38f3 010458 branch peripherals_write_mesh_timer_infmatn 
+:      010462 ali_mesh_ali_vendor_time_timeout_cyclic:
+0x38f4 010463 fetch 1 ,mem_mesh_vendor_timer_timing_weekdays_cyclic 
+0x38f5 010464 branch ali_mesh_ali_vendor_time_timeout_continue ,blank 
+0x38f6 010465 arg vendor_attr_type_event_trigger ,temp 
+0x38f7 010466 call ali_mesh_ali_vendor_message_status_add_head 
+0x38f8 010467 setarg 0x11 
+0x38f9 010468 istore 1 ,contw 
+0x38fa 010469 ifetch 1 ,alarm 
+0x38fb 010470 or pdata ,0x80 ,pdata 
+0x38fc 010471 istore 1 ,contw 
+0x38fd 010472 jam 8 ,mem_mesh_access_layer_payload 
+0x38fe 010473 branch ali_mesh_ali_vendor_message_send_message 
+:      010475 ali_mesh_ali_vendor_message_opcode_timing_finish:
+0x38ff 010476 arg vendor_attr_type_event_index_report ,temp 
+0x3900 010477 call ali_mesh_ali_vendor_message_status_add_head 
+0x3901 010478 copy contw ,temp 
+0x3902 010479 call ali_mesh_get_all_timer_index_timer 
+0x3903 010481 pincrease 6 
+0x3904 010482 store 1 ,mem_mesh_access_layer_payload_len 
+0x3905 010483 jam vendor_message_attr_status ,mem_mesh_access_layer_payload 
+0x3906 010484 branch ali_mesh_ali_vendor_message_send_message 
+:      010487 ali_mesh_ali_vendor_message_opcode_timer_set_timing:
+0x3907 010488 arg mem_mesh_vendor_timer_timing_index ,contw 
+0x3908 010489 arg 16 ,loopcnt 
+0x3909 010490 call memcpy 
+0x390a 010491 fetch 1 ,mem_mesh_vendor_timer_timing_index 
+0x390b 010492 and pdata ,0x7f ,pdata 
+0x390c 010493 store 1 ,mem_mesh_vendor_timer_timing_temp 
+0x390d 010494 sub pdata ,mesh_x_timers ,null 
+0x390e 010495 nrtn positive 
+0x390f 010496 fetch 4 ,mem_mesh_vendor_timer_timing_time 
+0x3910 010497 arg 60 ,temp 
+0x3911 010498 idiv temp 
+0x3912 010499 call wait_div_end 
+0x3913 010500 remainder temp 
+0x3914 010501 isub temp ,pdata 
+0x3915 010502 store 4 ,mem_mesh_vendor_timer_timing_time 
+0x3916 010503 setarg 0 
+0x3917 010504 store 2 ,mem_mesh_vendor_timer_timing_flag 
+0x3918 010505 arg mem_mesh_vendor_timer_timing_index ,rega 
+0x3919 010506 call ali_mesh_ali_vendor_store_mesh_timer_infmatn 
+0x391a 010507 arg vendor_mseeage_attr_type_set_time_single ,temp 
+0x391b 010508 branch ali_mesh_access_layer_send_ali_vendor_message_current_timing 
+:      010513 ali_mesh_ali_vendor_message_opcode_timer_set_timing_cyclically:
+0x391c 010515 arg mem_mesh_vendor_timer_timing_index_cyclic ,contw 
+0x391d 010516 arg 17 ,loopcnt 
+0x391e 010517 call memcpy 
+0x391f 010520 fetch 1 ,mem_mesh_vendor_timer_timing_index_cyclic 
+0x3920 010521 and pdata ,0x7f ,pdata 
+0x3921 010522 store 1 ,mem_mesh_vendor_timer_timing_temp 
+0x3922 010523 sub pdata ,mesh_x_timers ,null 
+0x3923 010524 nrtn positive 
+0x3924 010526 jam 0x59 ,mem_mesh_vendor_timer_timing_cyclic_flag 
+0x3925 010527 arg mem_mesh_vendor_timer_timing_index_cyclic ,rega 
+0x3926 010528 call ali_mesh_ali_vendor_store_mesh_timer_infmatn 
+0x3927 010529 arg vendor_mseeage_attr_type_set_time_repeat ,temp 
+:      010532 ali_mesh_access_layer_send_ali_vendor_message_current_timing:
+0x3928 010534 call ali_mesh_ali_vendor_message_status_add_head 
+0x3929 010535 setarg 0 
+0x392a 010536 store 1 ,mem_mesh_access_layer_payload + 6 
+0x392b 010537 copy contw ,temp 
+0x392c 010538 call ali_mesh_get_all_timer_index_timer 
+0x392d 010539 pincrease 7 
+0x392e 010540 store 1 ,mem_mesh_access_layer_payload_len 
+0x392f 010541 branch ali_mesh_upper_transport_layer_send_access_message 
+:      010544 ali_mesh_ali_vendor_store_mesh_timer_infmatn:
+0x3930 010545 call ali_mesh_vendor_timer_buffer_offset_cal 
+0x3931 010546 copy rega ,contr 
+0x3932 010547 arg mem_mesh_vendor_timer_timing_buffer ,contw 
+0x3933 010548 iadd contw ,contw 
+0x3934 010549 arg 18 ,loopcnt 
+0x3935 010550 call memcpy 
+0x3936 010551 branch peripherals_write_mesh_timer_infmatn 
+:      010553 ali_mesh_vendor_timer_buffer_offset_cal:
+0x3937 010554 fetch 1 ,mem_mesh_vendor_timer_timing_temp 
+0x3938 010555 pincrease -1 
+0x3939 010556 mul32 pdata ,18 ,pdata 
+0x393a 010557 rtn 
+:      010559 ali_mesh_get_all_timer_index_timer:
+0x393b 010560 arg mem_mesh_vendor_timer_timing_buffer ,rega 
+0x393c 010561 arg 0 ,regb 
+0x393d 010562 copy temp ,contw 
+0x393e 010563 arg mesh_x_timers ,loopcnt 
+0x393f 010564 increase -1 ,loopcnt 
+:      010565 ali_mesh_get_all_timer_index_timer_loop:
+0x3940 010566 ifetch 1 ,rega 
+0x3941 010567 beq 0xff ,ali_mesh_get_all_timer_index_timer_loop_end 
+0x3942 010568 branch ali_mesh_get_all_timer_index_timer_loop_end ,blank 
+0x3943 010569 increase 1 ,regb 
+0x3944 010570 istore 1 ,contw 
+:      010571 ali_mesh_get_all_timer_index_timer_loop_end:
+0x3945 010572 setarg 18 
+0x3946 010573 iadd rega ,rega 
+0x3947 010574 loop ali_mesh_get_all_timer_index_timer_loop 
+0x3948 010575 copy regb ,pdata 
+0x3949 010576 rtn 
+:      010578 peripherals_write_mesh_timer_infmatn:
+0x394a 010579 fetch 2 ,mem_mesh_cb_vendor_timing_changed 
+0x394b 010580 branch callback_func 
+:      010590 ali_mesh_bearer_layer_send_packet_by_network_layer:
+0x394c 010591 bpatchx patch34_1 ,mem_patch34 
+0x394d 010592 setarg mem_mesh_queue_each_size 
+0x394e 010593 store 2 ,mem_mesh_element_device_queue_buffer_ptr 
+0x394f 010594 setarg mem_mesh_element_device 
+0x3950 010595 store 2 ,mem_mesh_rega_temp 
+0x3951 010596 jam adv_pairing_mesh_message_duration ,mem_mesh_queue_ele_duration 
+0x3952 010597 fetch 1 ,mem_mesh_gatt_package_send_msg_id 
+0x3953 010598 store 1 ,mem_mesh_queue_ele_gatt_msg_id 
+0x3954 010600 fetch 1 ,mem_mesh_lower_transport_layer_payload_len 
+0x3955 010601 pincrease 11 
+0x3956 010602 add pdata ,-2 ,loopcnt 
+0x3957 010611 store 1 ,mem_mesh_queue_ele_len 
+0x3958 010612 pincrease -1 
+0x3959 010615 istore 1 ,contw 
+0x395a 010616 setarg gap_adtype_mesh_message 
+0x395b 010617 istore 1 ,contw 
+0x395c 010618 arg mem_mesh_send_upper_layer_ivi_and_nid ,contr 
+0x395d 010619 call memcpy_fast 
+0x395e 010620 fetchr rega ,2 ,mem_mesh_rega_temp 
+0x395f 010621 call ali_mesh_advertising_bearer_layer_init_queue 
+0x3960 010622 call queue_push 
+:      010623 ali_mesh_bearer_layer_gatt_send_packet_by_network_layer:
+0x3961 010624 fetch 2 ,mem_ui_state_map 
+0x3962 010625 isolate1 ui_state_ble_connected ,pdata 
+0x3963 010626 nrtn true 
+:      010627 ali_mesh_send_ble_data_control_package:
+0x3964 010628 call ali_mesh_network_layer_init_gatt_queue_param 
+0x3965 010629 arg mem_mesh_queue_ele_temp ,rega 
+0x3966 010630 branch queue_push 
+:      010632 ali_mesh_advertising_bearer_layer_init_queue:
+0x3967 010633 add rega ,element_device_queue_buffer_ptr ,contr 
+0x3968 010634 ifetch 2 ,contr 
+0x3969 010635 store 2 ,mem_queue_ptr 
+0x396a 010636 arg mem_mesh_queue_ele_temp ,rega 
+0x396b 010637 rtn 
+:      010640 ali_mesh_advertising_bearer_layer_init_queue_param:
+0x396c 010641 setarg mem_mesh_queue_each_size 
+0x396d 010642 store 2 ,mem_queue_ptr 
+0x396e 010643 rtn 
+:      010645 ali_mesh_advertising_bearer_layer_load_packet_from_advertising_queue:
+:      010647 ali_mesh_advertising_bearer_layer_load_packet_from_advertising_queue_deal:
+0x396f 010648 fetch 1 ,mem_mesh_upper_tran_layer_packet_advertising 
+0x3970 010649 rtnne packet_in_bearer 
+0x3971 010650 jam packet_in_adverting ,mem_mesh_upper_tran_layer_packet_advertising 
+0x3972 010651 branch ali_mesh_control_ble_advertising_on_advertising 
+:      010653 ali_mesh_advertising_bearer_layer_send_packet_by_app_bearer_calc_param:
+0x3973 010654 arg mem_mesh_queue_ele_payload + 2 ,rega 
+0x3974 010655 arg max_app_mssage_payload_length ,temp 
+0x3975 010656 setarg 0x21 
+0x3976 010657 nrtn true 
+0x3977 010658 arg mem_mesh_queue_ele_payload + 20 ,rega 
+0x3978 010659 fetcht 1 ,mem_mesh_queue_ele_len 
+0x3979 010660 increase -18 ,temp 
+0x397a 010661 setarg 0x22 
+0x397b 010662 rtn 
+:      010670 ali_mesh_advertising_add_adtype_flags:
+0x397c 010671 arg mem_mesh_adv_data ,contw 
+0x397d 010672 setarg 0x02 
+0x397e 010673 istore 1 ,contw 
+0x397f 010674 setarg gap_adtype_flags 
+0x3980 010675 istore 1 ,contw 
+0x3981 010676 setarg 0x02 
+0x3982 010677 istore 1 ,contw 
+0x3983 010678 rtn 
+:      010682 ali_mesh_advertising_add_adtype_16bit_complete:
+0x3984 010683 arg mesh_provisioning_uuid ,temp 
+0x3985 010684 setarg 0x03 
+0x3986 010685 istore 1 ,contw 
+0x3987 010686 setarg gap_adtype_16bit_complete 
+0x3988 010687 istore 1 ,contw 
+0x3989 010688 istoret 2 ,contw 
+0x398a 010689 rtn 
+:      010692 mesh_ble_rx_packet_only:
+0x398b 010693 call le_enable 
+0x398c 010694 call le_init_adv 
+0x398d 010695 call le_receive_adv 
+0x398e 010696 nrtn match 
+0x398f 010698 fetch 1 ,mem_le_adv_rcv 
+0x3990 010699 pincrease 1 
+0x3991 010700 store 1 ,mem_le_adv_rcv 
+0x3992 010701 fetch 2 ,mem_mesh_cb_receive_advertising 
+0x3993 010702 call callback_func 
+0x3994 010703 branch le_disable 
+:      010705 mesh_ble_rx_packet:
+0x3995 010706 call mesh_ble_rx_packet_check_and_init 
+0x3996 010707 rtn user 
+:      010708 mesh_ble_rx_packet_check_timer:
+0x3997 010709 call mesh_ble_rx_packet_only 
+0x3998 010710 call connection_dispatch 
+0x3999 010711 fetcht 2 ,mem_le_scan_interval 
+0x399a 010712 arg 10 ,queue 
+0x399b 010713 call sniff_check_window 
+0x399c 010714 rtn user 
+0x399d 010715 arg mesh_ble_rx_timer ,queue 
+0x399e 010716 call timer_check 
+0x399f 010717 nbranch mesh_ble_rx_packet_check_timer ,blank 
+0x39a0 010718 rtn 
+:      010720 mesh_ble_rx_packet_check_and_init:
+0x39a1 010721 fetcht 2 ,mem_le_scan_interval 
+0x39a2 010722 arg 4 ,queue 
+0x39a3 010723 call sniff_check_window 
+0x39a4 010724 rtn user 
+0x39a5 010725 call mesh_le_calc_next_scan_channel 
+0x39a6 010726 fetch 2 ,mem_le_scan_interval 
+0x39a7 010727 arg mesh_ble_rx_timer ,queue 
+0x39a8 010728 branch timer_init 
+:      010731 mesh_le_calc_next_scan_channel:
+0x39a9 010732 fetch 1 ,mem_mesh_adv_scan_channel 
+0x39aa 010733 pincrease 1 
+0x39ab 010734 store 1 ,mem_mesh_adv_scan_channel 
+0x39ac 010735 store 1 ,mem_le_ch_mapped 
+0x39ad 010736 rtnne 40 
+0x39ae 010737 jam 37 ,mem_mesh_adv_scan_channel 
+0x39af 010738 jam 37 ,mem_le_ch_mapped 
+0x39b0 010739 rtn 
+:      010741 mesh_check_ble_rx_packet:
+0x39b1 010742 fetch 1 ,mem_le_rxbuf 
+0x39b2 010743 and pdata ,0x0f ,pdata 
+0x39b3 010744 beq adv_ind ,ali_mesh_match_advertising_packet 
+0x39b4 010745 beq adv_nonconn_ind ,ali_mesh_match_advertising_packet 
+0x39b5 010746 rtn 
+:      010748 ali_mesh_match_advertising_packet:
+0x39b6 010749 ifetcht 1 ,contr 
+0x39b7 010750 sub temp ,adv_packet_min_length ,null 
+0x39b8 010751 rtn positive 
+0x39b9 010752 sub temp ,adv_packet_max_length ,null 
+0x39ba 010753 nrtn positive 
+0x39bb 010754 add temp ,-6 ,rega 
+0x39bc 010755 add contr ,6 ,regb 
+:      010757 ali_mesh_find_adv_ind_packet:
+0x39bd 010758 ifetcht 1 ,regb 
+0x39be 010759 sub temp ,ad_type_min_length ,null 
+0x39bf 010760 rtn positive 
+0x39c0 010761 sub temp ,ad_type_max_length ,null 
+0x39c1 010762 nrtn positive 
+0x39c2 010763 copy temp ,pdata 
+0x39c3 010764 rtn blank 
+0x39c4 010765 bpatchx patch34_2 ,mem_patch34 
+0x39c5 010766 ifetch 1 ,contr 
+0x39c6 010767 beq gap_adtype_manufacturer_specific ,ali_mesh_receive_adtype_manufacturer_specific_tmall_control 
+0x39c7 010768 beq gap_adtype_mesh_message ,ali_mesh_receive_adtype_mesh_message 
+0x39c8 010771 add temp ,1 ,pdata 
+0x39c9 010772 isub rega ,null 
+0x39ca 010773 rtn positive 
+0x39cb 010774 iadd regb ,regb 
+0x39cc 010775 sub temp ,-1 ,pdata 
+0x39cd 010776 iadd rega ,rega 
+0x39ce 010777 copy rega ,pdata 
+0x39cf 010778 rtn blank 
+0x39d0 010779 branch ali_mesh_find_adv_ind_packet 
+:      010781 ali_mesh_receive_adtype_manufacturer_specific_tmall_control:
+0x39d1 010782 jam mesh_message_tmall ,mem_mesh_fast_pair_packet_type 
+0x39d2 010783 branch ali_mesh_receive_adtype_manufacturer_specific 
+:      010786 mesh_le_send_adv:
+0x39d3 010787 fetch 1 ,mem_le_adv_transmit 
+0x39d4 010788 pincrease 1 
+0x39d5 010789 store 1 ,mem_le_adv_transmit 
+0x39d6 010791 bpatchx patch34_3 ,mem_patch34 
+0x39d7 010792 call le_enable 
+0x39d8 010793 arg 39 ,loopcnt 
+0x39d9 010794 arg mem_le_txheader ,contr 
+0x39da 010795 arg mem_le_txheader_mesh_temp ,contw 
+0x39db 010796 call memcpy_fast 
+0x39dc 010797 jam 37 ,mem_le_ch_mapped 
+0x39dd 010798 arg 1800 ,stop_watch 
+0x39de 010799 enable swfine 
+0x39df 010800 disable match 
+:      010802 mesh_le_send_adv_loop:
+0x39e0 010803 call le_init_adv 
+0x39e1 010804 call mesh_le_send_adv_nonconn_ind 
+0x39e2 010805 random pdata 
+0x39e3 010806 arg 0x1ff ,temp 
+0x39e4 010807 iand temp ,pdata 
+0x39e5 010808 add pdata ,100 ,pdata 
+0x39e6 010809 call delay 
+0x39e7 010810 fetch 1 ,mem_le_ch_mapped 
+0x39e8 010811 pincrease 1 
+0x39e9 010812 store 1 ,mem_le_ch_mapped 
+0x39ea 010813 bne 40 ,mesh_le_send_adv_loop 
+0x39eb 010815 arg 39 ,loopcnt 
+0x39ec 010816 arg mem_le_txheader ,contw 
+0x39ed 010817 arg mem_le_txheader_mesh_temp ,contr 
+0x39ee 010818 call memcpy_fast 
+0x39ef 010819 branch le_disable 
+:      010821 mesh_le_send_adv_nonconn_ind:
+0x39f0 010822 arg adv_nonconn_ind ,temp 
+0x39f1 010823 storet 1 ,mem_le_txheader 
+0x39f2 010824 fetcht 1 ,mem_mesh_adv_data_len 
+0x39f3 010825 add temp ,6 ,pdata 
+0x39f4 010826 store 1 ,mem_le_txlen 
+0x39f5 010827 fetch 6 ,mem_le_lap 
+0x39f6 010828 store 6 ,mem_le_txpayload 
+0x39f7 010829 copy temp ,loopcnt 
+0x39f8 010830 arg mem_mesh_adv_data ,contr 
+0x39f9 010831 call memcpy_fast 
+0x39fa 010833 branch le_transmit_norx 
+:      010844 ali_mesh_base_adt_cache:
+0x39fb 010845 bpatchx patch34_4 ,mem_patch34 
+0x39fc 010846 fetcht 2 ,mem_ccm_data_ptr 
+0x39fd 010847 fetch 1 ,mem_ccm_data_len 
+0x39fe 010848 copy temp ,contr 
+0x39ff 010849 arg mem_k4_salt ,rega 
+0x3a00 010850 arg mem_k4_t ,alarm 
+0x3a01 010851 call ali_mesh_encrypt_base_function_aes_cmac 
+0x3a02 010852 call disable_user 
+0x3a03 010853 copy regc ,pdata 
+0x3a04 010854 iadd alarm ,contr 
+0x3a05 010855 fetcht 4 ,mem_k4_t 
+0x3a06 010856 fetch 2 ,mem_mesh_mic_cache_ptr 
+0x3a07 010857 copy pdata ,rega 
+0x3a08 010859 arg transport_mic_cache_space_num ,loopcnt 
+:      010860 ali_mesh_base_adt_cache_loop:
+0x3a09 010861 ifetch 4 ,rega 
+0x3a0a 010862 branch ali_mesh_base_adt_cache_empty_space ,blank 
+0x3a0b 010863 isub temp ,null 
+0x3a0c 010864 rtn zero 
+0x3a0d 010865 increase transport_mic_cache_space_size ,rega 
+0x3a0e 010866 loop ali_mesh_base_adt_cache_loop 
+0x3a0f 010867 fetch 2 ,mem_mesh_mic_cache_ptr 
+0x3a10 010868 copy pdata ,contw 
+0x3a11 010869 add pdata ,transport_mic_cache_space_size ,contr 
+0x3a12 010872 arg transport_mic_cache_total_size ,loopcnt 
+0x3a13 010873 call memcpy_fast 
+0x3a14 010874 istoret 4 ,contw 
+0x3a15 010875 branch enable_user 
+:      010876 ali_mesh_base_adt_cache_empty_space:
+0x3a16 010877 istoret 4 ,rega 
+0x3a17 010878 branch enable_user 
+:      010880 ali_mesh_chip_peripherals_load_data:
+0x3a18 010881 fetch 1 ,mem_mesh_chip_select 
+0x3a19 010882 beq mesh_chip_from_eeprom ,ali_mesh_chip_peripherals_load_data_from_eep 
+:      010883 ali_mesh_chip_peripherals_load_data_from_flash:
+0x3a1a 010884 call ali_mesh_chip_peripherals_load_three_tuple_from_flash 
+0x3a1b 010885 call ali_mesh_chip_peripherals_load_network_key_from_flash 
+0x3a1c 010886 call ali_mesh_chip_peripherals_load_application_key_from_flash 
+0x3a1d 010887 call ali_mesh_chip_peripherals_load_device_key_from_flash 
+0x3a1e 010888 call ali_mesh_chip_peripherals_load_reset_count_from_flash 
+0x3a1f 010889 call ali_mesh_chip_peripherals_load_seq_from_flash 
+0x3a20 010890 branch ali_mesh_chip_peripherals_load_subscription_from_flash 
+:      010892 ali_mesh_chip_peripherals_load_three_tuple_from_flash:
+0x3a21 010893 arg mesh_eep_three_tuple_length ,temp 
+0x3a22 010894 arg mem_mesh_three_tuple_productid ,rega 
+0x3a23 010895 setarg 0x1ffa0 
+0x3a24 010896 branch spid_read_flash 
+:      010897 ali_mesh_chip_peripherals_load_network_key_from_flash:
+0x3a25 010898 arg mesh_eep_network_key_length ,temp 
+0x3a26 010899 arg mem_mesh_network_key ,rega 
+0x3a27 010900 setarg mesh_flash_network_key_addr 
+0x3a28 010901 call spid_read_flash 
+0x3a29 010902 fetch 1 ,mem_mesh_last_iv_index_byte 
+0x3a2a 010903 store 1 ,mem_mesh_iv_index + 3 
+0x3a2b 010904 rtn 
+:      010905 ali_mesh_chip_peripherals_load_application_key_from_flash:
+0x3a2c 010906 arg mesh_eep_application_key_length ,temp 
+0x3a2d 010907 arg mem_mesh_application_key ,rega 
+0x3a2e 010908 setarg mesh_flash_application_key_addr 
+0x3a2f 010909 branch spid_read_flash 
+:      010910 ali_mesh_chip_peripherals_load_device_key_from_flash:
+0x3a30 010911 arg mesh_eep_device_key_length ,temp 
+0x3a31 010912 arg mem_mesh_device_key ,rega 
+0x3a32 010913 setarg mesh_flash_device_key_addr 
+0x3a33 010914 branch spid_read_flash 
+:      010915 ali_mesh_chip_peripherals_load_reset_count_from_flash:
+0x3a34 010916 rtn 
+:      010917 ali_mesh_chip_peripherals_load_seq_from_flash:
+0x3a35 010918 arg mesh_eep_seq_length ,temp 
+0x3a36 010919 arg mem_mesh_send_message_seq ,rega 
+0x3a37 010920 setarg mesh_flash_message_seq_addr 
+0x3a38 010921 branch spid_read_flash 
+:      010922 ali_mesh_chip_peripherals_load_subscription_from_flash:
+0x3a39 010923 fetch 2 ,mem_mesh_core_feature 
+0x3a3a 010924 rtnbit1 mesh_feature_disable_subscription 
+0x3a3b 010925 arg mesh_eep_subscription_total_length ,temp 
+0x3a3c 010926 arg mem_mesh_subscription_eep_temp ,rega 
+0x3a3d 010927 setarg mesh_flash_subscription_addr 
+0x3a3e 010928 call spid_read_flash 
+0x3a3f 010929 call mesh_get_element_info_config 
+0x3a40 010930 arg mem_mesh_subscription_eep_temp ,contr 
+0x3a41 010931 add rega ,element_device_subscription_label ,rega 
+0x3a42 010932 branch ali_mesh_chip_peripherals_load_subscription_loop 
+:      010935 ali_mesh_chip_peripherals_load_data_from_eep:
+0x3a43 010936 call ali_mesh_chip_peripherals_load_three_tuple_from_eep 
+0x3a44 010937 call ali_mesh_chip_peripherals_load_network_key_from_eep 
+0x3a45 010938 call ali_mesh_chip_peripherals_load_application_key_from_eep 
+0x3a46 010939 call ali_mesh_chip_peripherals_load_device_key_from_eep 
+0x3a47 010940 call ali_mesh_chip_peripherals_load_reset_count_from_eep 
+0x3a48 010941 call ali_mesh_chip_peripherals_load_seq_from_eep 
+0x3a49 010942 branch ali_mesh_chip_peripherals_load_subscription_from_eep 
+:      010944 ali_mesh_chip_peripherals_load_three_tuple_from_eep:
+0x3a4a 010945 arg mesh_eep_three_tuple_length ,temp 
+0x3a4b 010946 arg mem_mesh_three_tuple_productid ,rega 
+0x3a4c 010947 arg mesh_eep_three_tuple_offset ,regb 
+0x3a4d 010948 branch iicd_read_eep_data 
+:      010950 ali_mesh_chip_peripherals_load_network_key_from_eep:
+0x3a4e 010951 arg mesh_eep_network_key_length ,temp 
+0x3a4f 010952 arg mem_mesh_network_key ,rega 
+0x3a50 010953 arg mesh_eep_network_key_offset ,regb 
+0x3a51 010954 call iicd_read_eep_data 
+0x3a52 010955 fetch 1 ,mem_mesh_last_iv_index_byte 
+0x3a53 010956 store 1 ,mem_mesh_iv_index + 3 
+0x3a54 010957 rtn 
+:      010959 ali_mesh_chip_peripherals_load_application_key_from_eep:
+0x3a55 010960 arg mesh_eep_application_key_length ,temp 
+0x3a56 010961 arg mem_mesh_application_key ,rega 
+0x3a57 010962 arg mesh_eep_application_key_offset ,regb 
+0x3a58 010963 branch iicd_read_eep_data 
+:      010965 ali_mesh_chip_peripherals_load_device_key_from_eep:
+0x3a59 010966 arg mesh_eep_device_key_length ,temp 
+0x3a5a 010967 arg mem_mesh_device_key ,rega 
+0x3a5b 010968 arg mesh_eep_device_key_offset ,regb 
+0x3a5c 010969 branch iicd_read_eep_data 
+:      010971 ali_mesh_chip_peripherals_load_reset_count_from_eep:
+0x3a5d 010972 rtn 
+:      010974 ali_mesh_chip_peripherals_load_seq_from_eep:
+0x3a5e 010975 arg mesh_eep_seq_length ,temp 
+0x3a5f 010976 arg mem_mesh_send_message_seq ,rega 
+0x3a60 010977 arg mesh_eep_seq_offset ,regb 
+0x3a61 010978 branch iicd_read_eep_data 
+:      010980 ali_mesh_chip_peripherals_load_subscription_from_eep:
+0x3a62 010981 fetch 2 ,mem_mesh_core_feature 
+0x3a63 010982 rtnbit1 mesh_feature_disable_subscription 
+0x3a64 010983 arg mesh_eep_subscription_total_length ,temp 
+0x3a65 010984 arg mem_mesh_subscription_eep_temp ,rega 
+0x3a66 010985 arg mesh_eep_subscription_offset ,regb 
+0x3a67 010986 call iicd_read_eep_data 
+0x3a68 010987 call mesh_get_element_info_config 
+0x3a69 010988 arg mem_mesh_subscription_eep_temp ,contr 
+0x3a6a 010989 add rega ,element_device_subscription_label ,rega 
+:      010990 ali_mesh_chip_peripherals_load_subscription_loop:
+0x3a6b 010991 copy rega ,contw 
+0x3a6c 010992 call memcpy16 
+0x3a6d 010993 copy regb ,pdata 
+0x3a6e 010994 iadd rega ,rega 
+0x3a6f 010995 loop ali_mesh_chip_peripherals_load_subscription_loop 
+0x3a70 010996 rtn 
+:      010998 mesh_receive_config_appkey_add_cb:
+0x3a71 010999 fetch 1 ,mem_mesh_chip_select 
+0x3a72 011000 beq mesh_chip_from_eeprom ,mesh_receive_config_appkey_add_eeprom_cb 
+0x3a73 011001 beq mesh_chip_from_flash ,mesh_receive_config_appkey_add_flash_cb 
+:      011002 mesh_receive_config_appkey_add_flash_cb:
+0x3a74 011003 call ali_mesh_chip_peripherals_save_network_key_from_flash 
+0x3a75 011004 call ali_mesh_chip_peripherals_save_application_key_from_flash 
+0x3a76 011005 branch ali_mesh_chip_peripherals_save_device_key_from_flash 
+:      011006 ali_mesh_chip_peripherals_save_network_key_from_flash:
+0x3a77 011007 arg mesh_eep_network_key_length ,temp 
+0x3a78 011008 arg mem_mesh_network_key ,rega 
+0x3a79 011009 setarg mesh_flash_network_key_addr 
+0x3a7a 011010 branch spid_write_flash_data 
+:      011011 ali_mesh_chip_peripherals_save_application_key_from_flash:
+0x3a7b 011012 arg mesh_eep_application_key_length ,temp 
+0x3a7c 011013 arg mem_mesh_application_key ,rega 
+0x3a7d 011014 setarg mesh_flash_application_key_addr 
+0x3a7e 011015 branch spid_write_flash_data 
+:      011016 ali_mesh_chip_peripherals_save_device_key_from_flash:
+0x3a7f 011017 arg mesh_eep_device_key_length ,temp 
+0x3a80 011018 arg mem_mesh_device_key ,rega 
+0x3a81 011019 setarg mesh_flash_device_key_addr 
+0x3a82 011020 branch spid_write_flash_data 
+:      011022 mesh_receive_config_appkey_add_eeprom_cb:
+0x3a83 011023 call ali_mesh_chip_peripherals_save_network_key_from_eep 
+0x3a84 011024 call ali_mesh_chip_peripherals_save_application_key_from_eep 
+0x3a85 011025 branch ali_mesh_chip_peripherals_save_device_key_from_eep 
+:      011027 ali_mesh_chip_peripherals_save_network_key_from_eep:
+0x3a86 011028 arg mesh_eep_network_key_length ,temp 
+0x3a87 011029 arg mem_mesh_network_key ,rega 
+0x3a88 011030 arg mesh_eep_network_key_offset ,regb 
+0x3a89 011031 branch iicd_write_protect_eep_data 
+:      011033 ali_mesh_chip_peripherals_save_application_key_from_eep:
+0x3a8a 011034 arg mesh_eep_application_key_length ,temp 
+0x3a8b 011035 arg mem_mesh_application_key ,rega 
+0x3a8c 011036 arg mesh_eep_application_key_offset ,regb 
+0x3a8d 011037 branch iicd_write_protect_eep_data 
+:      011039 ali_mesh_chip_peripherals_save_device_key_from_eep:
+0x3a8e 011040 arg mesh_eep_device_key_length ,temp 
+0x3a8f 011041 arg mem_mesh_device_key ,rega 
+0x3a90 011042 arg mesh_eep_device_key_offset ,regb 
+0x3a91 011043 branch iicd_write_protect_eep_data 
+:      011045 mesh_store_new_seq_data:
+0x3a92 011046 fetch 3 ,mem_mesh_send_message_seq 
+0x3a93 011047 fetcht 3 ,mem_mesh_send_message_seq_temp 
+0x3a94 011048 isub temp ,null 
+0x3a95 011049 nrtn positive 
+0x3a96 011050 add pdata ,128 ,pdata 
+0x3a97 011051 store 3 ,mem_mesh_send_message_seq_temp 
+0x3a98 011052 fetch 1 ,mem_mesh_chip_select 
+0x3a99 011053 beq 1 ,ali_mesh_chip_peripherals_save_seq_from_eep 
+:      011054 ali_mesh_chip_peripherals_save_seq_from_flash:
+0x3a9a 011055 arg mesh_eep_seq_length ,temp 
+0x3a9b 011056 arg mem_mesh_send_message_seq_temp ,rega 
+0x3a9c 011057 setarg mesh_flash_message_seq_addr 
+0x3a9d 011058 branch spid_write_flash_data 
+:      011059 ali_mesh_chip_peripherals_save_seq_from_eep:
+0x3a9e 011060 arg mesh_eep_seq_length ,temp 
+0x3a9f 011061 arg mem_mesh_send_message_seq_temp ,rega 
+0x3aa0 011062 arg mesh_eep_seq_offset ,regb 
+0x3aa1 011063 branch iicd_write_protect_eep_data 
+:      011065 mesh_store_new_subscriptuion_list_data:
+0x3aa2 011066 call ali_mesh_chip_peripherals_save_subscriptuion_list_from_eep 
+0x3aa3 011067 fetch 1 ,mem_mesh_chip_select 
+0x3aa4 011068 beq 2 ,mesh_store_new_subscriptuion_list_data_from_flash 
+0x3aa5 011069 arg mesh_eep_subscription_total_length ,temp 
+0x3aa6 011070 arg mem_mesh_subscription_eep_temp ,rega 
+0x3aa7 011071 arg mesh_eep_subscription_offset ,regb 
+0x3aa8 011072 branch iicd_write_protect_eep_data 
+:      011073 mesh_store_new_subscriptuion_list_data_from_flash:
+0x3aa9 011074 arg mesh_eep_subscription_total_length ,temp 
+0x3aaa 011075 arg mem_mesh_subscription_eep_temp ,rega 
+0x3aab 011076 setarg mesh_flash_subscription_addr 
+0x3aac 011077 branch spid_write_flash_data 
+:      011079 ali_mesh_chip_peripherals_save_subscriptuion_list_from_eep:
+0x3aad 011080 call mesh_get_element_info_config 
+0x3aae 011081 arg mem_mesh_subscription_eep_temp ,contw 
+0x3aaf 011082 add rega ,element_device_subscription_label ,rega 
+:      011083 ali_mesh_chip_peripherals_save_subscriptuion_list_from_eep_loop:
+0x3ab0 011084 copy rega ,contr 
+0x3ab1 011085 call memcpy16 
+0x3ab2 011086 copy regb ,pdata 
+0x3ab3 011087 iadd rega ,rega 
+0x3ab4 011088 loop ali_mesh_chip_peripherals_save_subscriptuion_list_from_eep_loop 
+0x3ab5 011089 rtn 
+:      011091 mesh_clear_pairing_key:
+0x3ab6 011092 fetch 1 ,mem_mesh_chip_select 
+0x3ab7 011093 beq 1 ,ali_mesh_chip_clear_pairing_key_from_eeprom 
+:      011094 ali_mesh_chip_clear_pairing_key_from_flash:
+0x3ab8 011095 setarg 0x1e000 
+0x3ab9 011096 store 3 ,mem_spi_write_addr 
+0x3aba 011097 branch spid_flash_erase_sector + 2 
+:      011098 ali_mesh_chip_clear_pairing_key_from_eeprom:
+0x3abb 011099 rtn 
+:      011101 mesh_vendor_timming_chage_cb:
+0x3abc 011102 fetch 1 ,mem_mesh_chip_select 
+0x3abd 011103 rtnne 2 
+0x3abe 011104 setarg 0x1d000 
+0x3abf 011105 arg mem_mesh_vendor_timer_timing_buffer ,rega 
+0x3ac0 011106 arg mesh_x_timers ,temp 
+0x3ac1 011107 mul32 temp ,18 ,temp 
+0x3ac2 011108 branch spid_write_flash_data 
+:      011110 ali_mesh_vendor_timer_message_read:
+0x3ac3 011111 fetch 1 ,mem_mesh_chip_select 
+0x3ac4 011112 rtnne 2 
+0x3ac5 011113 arg mem_mesh_vendor_timer_timing_buffer ,rega 
+0x3ac6 011114 arg mesh_x_timers ,temp 
+0x3ac7 011115 mul32 temp ,18 ,temp 
+0x3ac8 011116 setarg 0x1d000 
+0x3ac9 011117 branch spid_read_flash 
+:      011123 ali_mesh_control_ble_adv_process:
+0x3aca 011124 call ali_mesh_ble_adv 
+0x3acb 011125 branch ali_mesh_control_ble_adv_tmall_packet 
+:      011129 ali_mesh_control_ble_adv_timer_process:
+0x3acc 011130 call ali_mesh_advertising_unprovisioned_timer_interval_timer 
+0x3acd 011131 branch ali_mesh_advertising_unprovisioned_timer 
+:      011134 ali_mesh_control_ble_advertising_on_advertising:
+0x3ace 011135 jam device_beacon_on ,mem_mesh_advertising_unprovisioned_device_beacon_switch 
+0x3acf 011136 rtn 
+:      011139 ali_mesh_control_ble_advertising_off_advertising:
+0x3ad0 011140 jam device_beacon_off ,mem_mesh_advertising_unprovisioned_device_beacon_switch 
+0x3ad1 011141 rtn 
+:      011144 ali_mesh_control_ble_adv_tmall_packet:
+0x3ad2 011145 arg ali_mesh_control_ble_adv_tmall_packet_send_package ,regb 
+0x3ad3 011146 arg mesh_adv_tmall_message_interval ,rega 
+0x3ad4 011147 arg mesh_ble_adv_tmall ,queue 
+0x3ad5 011148 branch ali_mesh_chip_timer_check_with_random_timer 
+:      011154 ali_mesh_control_ble_adv_tmall_packet_send_package:
+0x3ad6 011155 fetch 1 ,mem_mesh_provisioned_flag 
+0x3ad7 011156 beq unprovisioned_beacon_status ,ali_mesh_control_ble_advertising_send_device_beacon_packet 
+0x3ad8 011157 beq silence_beacon_status ,ali_mesh_control_ble_advertising_send_device_silence_beacon_packet 
+0x3ad9 011158 beq pairing_status ,ali_mesh_control_ble_advertising_send_pairing_packet 
+0x3ada 011159 beq paired_status ,ali_mesh_control_ble_advertising_send_paired_packet 
+0x3adb 011160 branch ali_mesh_control_ble_advertising_send_paired_packet 
+:      011162 ali_mesh_control_ble_advertising_send_device_silence_beacon_packet:
+0x3adc 011163 jam 0 ,mem_le_adv_enable 
+0x3add 011164 branch ali_mesh_control_ble_advertising_off_advertising 
+:      011166 ali_mesh_control_ble_advertising_send_paired_packet:
+0x3ade 011167 call ali_mesh_advertising_bearer_layer_init_queue_param 
+0x3adf 011168 arg mem_mesh_queue_ele_temp ,rega 
+0x3ae0 011169 call queue_get_new_ele 
+0x3ae1 011170 nrtn user 
+0x3ae2 011171 fetch 1 ,mem_mesh_upper_tran_layer_packet_type 
+0x3ae3 011172 bbit1 bit_uuper_tran_proxy_message ,ali_mesh_control_ble_advertising_send_paired_packet_end_duration_proxy 
+0x3ae4 011173 fetch 1 ,mem_mesh_queue_ele_duration 
+0x3ae5 011174 pincrease -1 
+0x3ae6 011175 istore 1 ,regb 
+0x3ae7 011176 and pdata ,0x7f ,pdata 
+0x3ae8 011177 call ali_mesh_control_ble_advertising_send_paired_packet_end_duration ,blank 
+0x3ae9 011178 fetch 1 ,mem_mesh_upper_tran_layer_packet_type 
+0x3aea 011179 rtnbit0 bit_upper_tran_tmall_message 
+0x3aeb 011180 arg mem_mesh_adv_data_len ,contw 
+0x3aec 011181 arg mem_mesh_queue_ele_len ,contr 
+0x3aed 011182 call memcpy32 
+0x3aee 011183 branch mesh_le_send_adv 
+:      011185 ali_mesh_control_ble_advertising_send_paired_packet_end_duration_proxy:
+0x3aef 011186 arg mem_mesh_queue_ele_duration ,rega 
+0x3af0 011187 call queue_pop 
+0x3af1 011188 call queue_empty 
+0x3af2 011189 nrtn blank 
+0x3af3 011191 call ali_mesh_send_paired_packet_init_advertising 
+0x3af4 011192 branch ali_mesh_control_ble_advertising_off_advertising 
+:      011195 ali_mesh_control_ble_advertising_send_paired_packet_end_duration:
+0x3af5 011196 arg mem_mesh_queue_ele_duration ,rega 
+0x3af6 011197 call queue_pop 
+0x3af7 011198 call queue_empty 
+0x3af8 011199 nrtn blank 
+0x3af9 011201 jam adv_pairing_mesh_message_interval ,mem_mesh_advertising_unprovisioned_device_beacon_interval 
+0x3afa 011202 branch ali_mesh_control_ble_advertising_off_advertising 
+:      011204 ali_mesh_send_paired_packet_init_advertising:
+0x3afb 011205 jam null_packet_advertising ,mem_mesh_upper_tran_layer_packet_advertising 
+0x3afc 011206 rtn 
+:      011209 ali_mesh_control_ble_advertising_send_device_beacon_packet:
+0x3afd 011210 call ali_mesh_config_device_uuid_by_three_tuple 
+0x3afe 011211 call ali_mesh_send_unprovisioned_beacons_tmall 
+0x3aff 011212 call ali_mesh_control_ble_advertising_device_beacon_check_duration 
+0x3b00 011213 nrtn zero 
+0x3b01 011214 fetch 1 ,mem_mesh_provisioned_flag 
+0x3b02 011215 beq silence_beacon_status ,ali_mesh_end_advertising_silence_device_beacon_packet 
+0x3b03 011216 beq unprovisioned_beacon_status ,ali_mesh_end_advertising_unprovisioned_device_beacon_packet 
+0x3b04 011217 rtn 
+:      011222 ali_mesh_control_ble_advertising_device_beacon_check_duration:
+0x3b05 011223 fetch 1 ,mem_mesh_advertising_unprovisioned_device_beacon_duration 
+0x3b06 011224 add pdata ,-1 ,pdata 
+0x3b07 011225 store 1 ,mem_mesh_advertising_unprovisioned_device_beacon_duration 
+0x3b08 011226 rtn 
+:      011229 ali_mesh_end_advertising_silence_device_beacon_packet:
+0x3b09 011230 jam adv_silence_device_beacon_interval ,mem_mesh_advertising_unprovisioned_device_beacon_interval 
+0x3b0a 011231 branch ali_mesh_control_ble_advertising_off_advertising 
+:      011234 ali_mesh_end_advertising_unprovisioned_device_beacon_packet:
+0x3b0b 011235 jam adv_unprovisioned_device_beacon_duration ,mem_mesh_advertising_unprovisioned_device_beacon_interval 
+0x3b0c 011236 branch ali_mesh_control_ble_advertising_off_advertising 
+:      011239 ali_mesh_control_ble_advertising_send_pairing_packet:
+0x3b0d 011240 branch mesh_le_send_adv 
+:      011242 ali_mesh_chip_timer_check_with_random_timer:
+0x3b0e 011243 fetch 1 ,mem_mesh_advertising_unprovisioned_device_beacon_switch 
+0x3b0f 011244 rtnne device_beacon_on 
+:      011245 ali_mesh_chip_timer_check_with_random_timer_continue:
+0x3b10 011246 random pdata 
+0x3b11 011247 and pdata ,0x07 ,pdata 
+0x3b12 011248 iadd rega ,rega 
+:      011252 ali_mesh_chip_timer_check:
+0x3b13 011253 call timer_check 
+0x3b14 011254 nrtn blank 
+0x3b15 011255 copy rega ,pdata 
+0x3b16 011256 call timer_init 
+0x3b17 011257 copy regb ,pdata 
+0x3b18 011258 branch callback_func 
+:      011262 ali_mesh_advertising_unprovisioned_timer:
+0x3b19 011263 arg mem_mesh_advertising_unprovisioned_device_beacon_timer ,regc 
+0x3b1a 011264 arg ali_mesh_advertising_unprovisioned_timeout ,regb 
+0x3b1b 011265 branch timer_single_step_2b 
+:      011268 ali_mesh_advertising_unprovisioned_timeout:
+0x3b1c 011269 fetch 1 ,mem_mesh_provisioned_flag 
+0x3b1d 011270 rtnne unprovisioned_beacon_status 
+0x3b1e 011271 fetch 1 ,mem_mesh_uuid_featureflag 
+0x3b1f 011272 set1 bit_silence_adv_flag ,pdata 
+0x3b20 011273 store 1 ,mem_mesh_uuid_featureflag 
+0x3b21 011274 jam silence_beacon_status ,mem_mesh_provisioned_flag 
+0x3b22 011275 branch ali_mesh_send_silence_device_beacon_init_advertising 
+:      011280 ali_mesh_advertising_unprovisioned_timer_interval_timer:
+0x3b23 011281 arg mem_mesh_advertising_unprovisioned_device_beacon_interval ,regc 
+0x3b24 011282 arg ali_mesh_advertising_unprovisioned_timer_interval_timeout ,regb 
+0x3b25 011283 branch timer_single_step 
+:      011288 ali_mesh_advertising_unprovisioned_timer_interval_timeout:
+0x3b26 011289 fetch 1 ,mem_mesh_provisioned_flag 
+0x3b27 011291 beq unprovisioned_beacon_status ,ali_mesh_send_unprovisioned_device_beacon_init_advertising 
+0x3b28 011292 beq paired_status ,ali_mesh_send_paired_packet_init_advertising 
+0x3b29 011293 rtn 
+:      011295 ali_mesh_stop_send_indication_packet:
+0x3b2a 011296 call ali_mesh_advertising_bearer_layer_queue_init 
+0x3b2b 011297 call ali_mesh_upper_transport_layer_queue_pop 
+0x3b2c 011298 jam 0 ,mem_mesh_advertising_unprovisioned_device_beacon_interval 
+0x3b2d 011299 call ali_mesh_control_ble_advertising_off_advertising 
+0x3b2e 011300 branch ali_mesh_send_paired_packet_init_advertising 
+:      011303 ali_mesh_send_unprovisioned_device_beacon_init_advertising:
+0x3b2f 011304 jam adv_unprovisioned_device_beacon_duration ,mem_mesh_advertising_unprovisioned_device_beacon_duration 
+0x3b30 011305 branch ali_mesh_control_ble_advertising_on_advertising 
+:      011308 ali_mesh_send_silence_device_beacon_init_advertising:
+0x3b31 011309 jam adv_silence_device_beacon_duration ,mem_mesh_advertising_unprovisioned_device_beacon_duration 
+0x3b32 011310 branch ali_mesh_control_ble_advertising_on_advertising 
+:      011312 ali_mesh_network_layer_control_relay_packet:
+0x3b33 011313 arg ali_mesh_network_layer_control_send_relay_packet ,regb 
+0x3b34 011314 arg mesh_adv_relay_message_interval ,rega 
+0x3b35 011315 arg mesh_ble_relay_timer ,queue 
+0x3b36 011316 branch ali_mesh_chip_timer_check_with_random_timer_continue 
+:      011318 ali_mesh_network_layer_control_send_relay_packet:
+0x3b37 011319 fetch 1 ,mem_mesh_upper_tran_layer_packet_advertising 
+0x3b38 011320 nrtn blank 
+0x3b39 011321 call ali_mesh_network_layer_init_queue_param 
+0x3b3a 011322 arg mem_mesh_queue_ele_temp ,rega 
+0x3b3b 011323 call queue_get_new_ele 
+0x3b3c 011324 nrtn user 
+0x3b3d 011325 fetch 1 ,mem_mesh_queue_ele_duration 
+0x3b3e 011326 pincrease -1 
+0x3b3f 011327 istore 1 ,regb 
+0x3b40 011328 call queue_pop ,blank 
+0x3b41 011329 arg mem_mesh_adv_data_len ,contw 
+0x3b42 011330 arg mem_mesh_queue_ele_len ,contr 
+0x3b43 011331 call memcpy32 
+0x3b44 011332 branch mesh_le_send_adv 
+:      011339 ali_mesh_encrypt_calc_random_data:
+0x3b45 011340 call ali_mesh_encrypt_calc_random_data_calc_confirmationkey 
+0x3b46 011341 call ali_mesh_encrypt_calc_random_data_calc_authvalueprov 
+0x3b47 011342 call ali_mesh_encrypt_calc_random_data_calc_authvaluedevice 
+0x3b48 011343 call ali_mesh_encrypt_calc_random_data_calc_confirmationcloud 
+0x3b49 011344 call ali_mesh_encrypt_calc_random_data_calc_confirmationdevice 
+0x3b4a 011345 branch ali_mesh_encrypt_calc_random_data_calc_devicekey 
+:      011350 ali_mesh_encrypt_calc_random_data_calc_confirmationkey:
+0x3b4b 011351 call ali_mesh_encrypt_load_randomab_to_sha256 
+0x3b4c 011352 arg mem_mesh_sha256_confirmationkey_ascii ,contr 
+0x3b4d 011353 arg 0xf ,loopcnt 
+0x3b4e 011354 call ali_mesh_encrypt_base_function_sha256_load_data_without_hex2ascii 
+0x3b4f 011355 call ali_mesh_encrypt_base_function_sha256_calc 
+0x3b50 011356 arg memresult ,contr 
+0x3b51 011357 arg mem_mesh_confirmationkey ,contw 
+0x3b52 011358 branch memcpy16 
+:      011363 ali_mesh_encrypt_calc_random_data_calc_authvalueprov:
+0x3b53 011364 call ali_mesh_encrypt_load_three_tuple_to_sha256 
+0x3b54 011365 call ali_mesh_encrypt_load_randomba_to_sha256 
+0x3b55 011366 call ali_mesh_encrypt_base_function_sha256_calc 
+0x3b56 011367 arg memresult ,contr 
+0x3b57 011368 arg mem_mesh_authvalueprov ,contw 
+0x3b58 011369 branch memcpy16 
+:      011373 ali_mesh_encrypt_calc_random_data_calc_authvaluedevice:
+0x3b59 011374 call ali_mesh_encrypt_load_three_tuple_to_sha256 
+0x3b5a 011375 call ali_mesh_encrypt_load_randomab_to_sha256 
+0x3b5b 011376 call ali_mesh_encrypt_base_function_sha256_calc 
+0x3b5c 011377 arg memresult ,contr 
+0x3b5d 011378 arg mem_mesh_authvaluedevice ,contw 
+0x3b5e 011379 branch memcpy16 
+:      011384 ali_mesh_encrypt_calc_random_data_calc_confirmationcloud:
+0x3b5f 011385 fetch 8 ,mem_mesh_provisioning_random_a 
+0x3b60 011386 store 8 ,mem_mesh_confirmationcloud_randoma 
+0x3b61 011387 fetch 8 ,mem_mesh_provisioning_random_b 
+0x3b62 011388 store 8 ,mem_mesh_confirmationcloud_randomb 
+0x3b63 011390 arg mem_mesh_calc_confirmationcloud_data ,contr 
+0x3b64 011391 arg mem_mesh_confirmationkey ,rega 
+0x3b65 011392 arg mem_mesh_confirmationcloud ,alarm 
+0x3b66 011393 branch ali_mesh_encrypt_base_function_aes_cmac_32byte 
+:      011399 ali_mesh_encrypt_calc_random_data_calc_confirmationdevice:
+0x3b67 011400 arg mem_mesh_calc_confirmationdevice_data ,contr 
+0x3b68 011401 arg mem_mesh_confirmationkey ,rega 
+0x3b69 011402 arg mem_mesh_confirmationdevice ,alarm 
+0x3b6a 011403 branch ali_mesh_encrypt_base_function_aes_cmac_32byte 
+:      011408 ali_mesh_encrypt_calc_random_data_calc_devicekey:
+0x3b6b 011410 arg mem_mesh_confirmationcloud ,contr 
+0x3b6c 011411 arg 0x10 ,loopcnt 
+0x3b6d 011412 call ali_mesh_encrypt_base_function_sha256_load_data_with_hex2ascii 
+0x3b6e 011413 arg mem_mesh_sha256_devicekey_ascii ,contr 
+0x3b6f 011414 arg 9 ,loopcnt 
+0x3b70 011415 call ali_mesh_encrypt_base_function_sha256_load_data_without_hex2ascii 
+0x3b71 011416 call ali_mesh_encrypt_base_function_sha256_calc 
+0x3b72 011417 arg memresult ,contr 
+0x3b73 011418 arg mem_mesh_device_key ,contw 
+0x3b74 011419 branch memcpy16 
+:      011422 ali_mesh_encrypt_load_randomba_to_sha256:
+0x3b75 011423 call ali_mesh_encrypt_load_randomb_to_sha256 
+:      011424 ali_mesh_encrypt_load_randoma_to_sha256:
+0x3b76 011425 arg mem_mesh_provisioning_random_a ,contr 
+0x3b77 011426 branch ali_mesh_encrypt_base_function_sha256_load_data_64bit 
+:      011428 ali_mesh_encrypt_load_randomab_to_sha256:
+0x3b78 011429 call ali_mesh_encrypt_load_randoma_to_sha256 
+:      011430 ali_mesh_encrypt_load_randomb_to_sha256:
+0x3b79 011431 arg mem_mesh_provisioning_random_b ,contr 
+0x3b7a 011432 branch ali_mesh_encrypt_base_function_sha256_load_data_64bit 
+:      011435 ali_mesh_encrypt_load_three_tuple_to_sha256:
+0x3b7b 011436 arg mem_mesh_three_tuple_productid ,contr 
+0x3b7c 011437 arg 4 ,loopcnt 
+0x3b7d 011438 call ali_mesh_encrypt_base_function_sha256_load_data_with_hex2ascii_add_comma 
+0x3b7e 011439 arg mem_mesh_three_tuple_mac ,contr 
+0x3b7f 011440 arg 6 ,loopcnt 
+0x3b80 011441 call ali_mesh_encrypt_base_function_sha256_load_data_with_hex2ascii_add_comma 
+0x3b81 011442 arg mem_mesh_three_tuple_secret ,contr 
+0x3b82 011443 arg 0x10 ,loopcnt 
+0x3b83 011444 call ali_mesh_encrypt_base_function_sha256_load_data_with_hex2ascii 
+0x3b84 011445 call ali_mesh_encrypt_base_function_sha256_check_first_load_data 
+0x3b85 011446 branch ali_mesh_encrypt_base_function_sha256_load_data_with_hex2ascii_add_comma + 2 
+:      011451 ali_mesh_encrypt_calc_provisioning_data:
+0x3b86 011452 call ali_mesh_encrypt_calc_provisioning_data_calc_sessionkey 
+:      011454 ali_mesh_encrypt_calc_provisioning_data_xor_prov_data:
+0x3b87 011455 arg mem_mesh_encrypt_provisioning_data ,rega 
+0x3b88 011456 arg memresult ,regb 
+0x3b89 011457 arg 0xb ,loopcnt 
+:      011458 ali_mesh_encrypt_calc_provisioning_data_xor_prov_data_loop:
+0x3b8a 011459 ifetch 2 ,rega 
+0x3b8b 011460 ifetcht 2 ,regb 
+0x3b8c 011461 ixor temp ,pdata 
+0x3b8d 011462 istore 2 ,rega 
+0x3b8e 011463 increase 2 ,rega 
+0x3b8f 011464 increase 2 ,regb 
+0x3b90 011465 loop ali_mesh_encrypt_calc_provisioning_data_xor_prov_data_loop 
+0x3b91 011466 rtn 
+:      011472 ali_mesh_encrypt_calc_provisioning_data_calc_sessionkey:
+0x3b92 011473 arg mem_mesh_confirmationcloud ,contr 
+0x3b93 011474 arg 0x10 ,loopcnt 
+0x3b94 011475 call ali_mesh_encrypt_base_function_sha256_load_data_with_hex2ascii 
+0x3b95 011476 arg mem_mesh_sha256_sessionkey_ascii ,contr 
+0x3b96 011477 arg 0xa ,loopcnt 
+0x3b97 011478 call ali_mesh_encrypt_base_function_sha256_load_data_without_hex2ascii 
+0x3b98 011479 branch ali_mesh_encrypt_base_function_sha256_calc 
+:      011483 ali_mesh_encrypt_calc_network_key_by_k2:
+0x3b99 011484 arg mem_mesh_network_key ,contr 
+0x3b9a 011485 arg mem_k2_n ,contw 
+0x3b9b 011486 call memcpy16 
+:      011490 ali_mesh_encrypt_base_function_k2:
+0x3b9c 011492 arg mem_k2_n ,contr 
+0x3b9d 011493 arg mem_k2_salt ,rega 
+0x3b9e 011494 arg mem_k2_t ,alarm 
+0x3b9f 011495 call ali_mesh_encrypt_base_function_aes_cmac_16byte 
+0x3ba0 011497 arg mem_k2_t1 ,alarm 
+0x3ba1 011498 arg 0x01 ,regb 
+0x3ba2 011499 setarg 0 
+0x3ba3 011500 call ali_mesh_encrypt_base_function_k2_aes_cmac_t 
+0x3ba4 011501 fetch 1 ,mem_k2_t1 + 15 
+0x3ba5 011502 and pdata ,0x7f ,pdata 
+0x3ba6 011503 store 1 ,mem_k2_nid 
+0x3ba7 011505 arg mem_k2_t2 ,alarm 
+0x3ba8 011506 arg 0x02 ,regb 
+0x3ba9 011507 setarg 0x10 
+0x3baa 011508 arg mem_k2_t1 ,rega 
+0x3bab 011509 call ali_mesh_encrypt_base_function_k2_aes_cmac_t 
+0x3bac 011511 arg mem_k2_t3 ,alarm 
+0x3bad 011512 arg 0x03 ,regb 
+0x3bae 011513 setarg 0x10 
+0x3baf 011514 arg mem_k2_t2 ,rega 
+0x3bb0 011515 branch ali_mesh_encrypt_base_function_k2_aes_cmac_t 
+:      011517 ali_mesh_encrypt_base_function_k4:
+0x3bb1 011519 arg mem_mesh_application_key ,contr 
+0x3bb2 011520 arg mem_k4_salt ,rega 
+0x3bb3 011521 arg mem_k4_t ,alarm 
+0x3bb4 011522 call ali_mesh_encrypt_base_function_aes_cmac_16byte 
+0x3bb5 011523 arg mem_k4_id6_01 ,contr 
+0x3bb6 011524 arg mem_k4_t ,rega 
+0x3bb7 011525 arg mem_k4_k4n ,alarm 
+0x3bb8 011526 setarg 4 
+0x3bb9 011527 call ali_mesh_encrypt_base_function_aes_cmac 
+0x3bba 011528 fetch 1 ,mem_k4_k4n + 15 
+0x3bbb 011529 and pdata ,0x3f ,pdata 
+0x3bbc 011530 set1 transport_head_bit_akf ,pdata 
+0x3bbd 011531 store 1 ,mem_mesh_transport_aid 
+0x3bbe 011532 rtn 
+:      011534 ali_mesh_encrypt_base_function_k3:
+0x3bbf 011536 arg mem_mesh_network_key ,contr 
+0x3bc0 011537 arg mem_k3_salt ,rega 
+0x3bc1 011538 arg mem_k3_t ,alarm 
+0x3bc2 011539 call ali_mesh_encrypt_base_function_aes_cmac_16byte 
+0x3bc3 011540 arg mem_k3_id64_01 ,contr 
+0x3bc4 011541 arg mem_k3_t ,rega 
+0x3bc5 011542 arg mem_k3_k4n ,alarm 
+0x3bc6 011543 setarg 5 
+0x3bc7 011544 call ali_mesh_encrypt_base_function_aes_cmac 
+0x3bc8 011548 fetch 2 ,mem_ui_state_map 
+0x3bc9 011549 rtnbit1 ui_state_ble_connected 
+0x3bca 011550 jam 1 ,mem_le_adv_enable 
+0x3bcb 011551 rtn 
+:      011555 ali_mesh_encrypt_obfuscation_deceypt_send_message:
+0x3bcc 011556 arg mem_mesh_send_upper_layer_ctl_and_ttl ,rega 
+0x3bcd 011557 fetch 7 ,mem_mesh_send_upper_layer_dst 
+0x3bce 011558 branch ali_mesh_encrypt_obfuscation_deceypt 
+:      011559 ali_mesh_encrypt_obfuscation_deceypt_recevie_message:
+0x3bcf 011560 arg mem_mesh_message_ttl ,rega 
+0x3bd0 011561 fetch 7 ,mem_mesh_message_dst 
+:      011562 ali_mesh_encrypt_obfuscation_deceypt:
+0x3bd1 011563 store 7 ,mem_mesh_privacy_plaintext_privacy_random 
+0x3bd2 011564 setarg 0 
+0x3bd3 011565 store 5 ,mem_mesh_privacy_plaintext_zero_string 
+0x3bd4 011566 call ali_mesh_encrypt_generate_pecb 
+0x3bd5 011567 fetch 6 ,mem_mesh_pecb 
+0x3bd6 011568 ifetcht 6 ,rega 
+0x3bd7 011569 ixor temp ,pdata 
+0x3bd8 011570 istore 6 ,rega 
+0x3bd9 011571 rtn 
+:      011573 ali_mesh_encrypt_generate_pecb:
+:      011574 ali_mesh_encrypt_generate_privacy_random:
+0x3bda 011575 fetch 4 ,mem_mesh_iv_index 
+0x3bdb 011576 store 4 ,mem_mesh_privacy_plaintext_iv_index 
+:      011578 ali_mesh_encrypt_base_function_generate_pecb:
+0x3bdc 011579 arg mem_k2_privacykey ,contr 
+0x3bdd 011580 call load_key 
+0x3bde 011581 arg mem_mesh_privacy_plaintext ,contr 
+0x3bdf 011582 call load_data128 
+0x3be0 011583 call do_aes_ocb 
+0x3be1 011584 arg mem_mesh_pecb ,contw 
+0x3be2 011585 branch store_aes_result 
+:      011592 ali_mesh_encrypt_base_function_sha256_load_data_64bit:
+0x3be3 011593 arg 8 ,loopcnt 
+:      011598 ali_mesh_encrypt_base_function_sha256_load_data_with_hex2ascii:
+0x3be4 011599 call ali_mesh_encrypt_base_function_sha256_check_first_load_data 
+0x3be5 011600 call ali_mesh_encrypt_base_function_hex2ascii 
+0x3be6 011601 branch ali_mesh_encrypt_base_function_sha256_store_dataptr 
+:      011602 ali_mesh_encrypt_base_function_sha256_load_data_without_hex2ascii:
+0x3be7 011603 call ali_mesh_encrypt_base_function_sha256_check_first_load_data 
+0x3be8 011604 call memcpy 
+0x3be9 011605 branch ali_mesh_encrypt_base_function_sha256_store_dataptr 
+:      011606 ali_mesh_encrypt_base_function_sha256_load_data_with_hex2ascii_add_comma:
+0x3bea 011607 call ali_mesh_encrypt_base_function_sha256_check_first_load_data 
+0x3beb 011608 call ali_mesh_encrypt_base_function_hex2ascii 
+0x3bec 011609 setarg comma 
+0x3bed 011610 istore 1 ,contw 
+:      011611 ali_mesh_encrypt_base_function_sha256_store_dataptr:
+0x3bee 011612 copy contw ,pdata 
+0x3bef 011613 store 2 ,mem_mesh_sha256_data_end_addr 
+0x3bf0 011614 rtn 
+:      011615 ali_mesh_encrypt_base_function_sha256_check_first_load_data:
+0x3bf1 011616 copy contr ,temp 
+0x3bf2 011617 copy loopcnt ,rega 
+0x3bf3 011618 fetch 2 ,mem_mesh_sha256_data_end_addr 
+0x3bf4 011619 copy pdata ,contw 
+0x3bf5 011620 fetch 1 ,mem_mesh_sha256_load_first_data_flag 
+0x3bf6 011621 call ali_mesh_encrypt_base_function_sha256_first_load_data ,blank 
+0x3bf7 011622 copy temp ,contr 
+0x3bf8 011623 copy rega ,loopcnt 
+0x3bf9 011624 rtn 
+:      011625 ali_mesh_encrypt_base_function_sha256_first_load_data:
+0x3bfa 011626 jam 1 ,mem_mesh_sha256_load_first_data_flag 
+0x3bfb 011627 call ali_mesh_encrypt_base_function_sha256_clear_data_chunk 
+0x3bfc 011628 arg mem_mesh_sha256_chunk_start ,contw 
+0x3bfd 011629 rtn 
+:      011631 ali_mesh_encrypt_base_function_sha256_clear_data_chunk:
+0x3bfe 011632 arg 0x100 ,loopcnt 
+0x3bff 011633 arg mem_mesh_sha256_chunk_start ,contw 
+0x3c00 011634 branch memset0 
+:      011638 ali_mesh_encrypt_base_function_sha256_calc:
+0x3c01 011639 call ali_mesh_encrypt_base_function_sha256_load_data_end 
+0x3c02 011640 call ali_mesh_encrypt_base_function_sha256_input_data_init_inverse 
+0x3c03 011642 setarg mem_mesh_sha256_chunk_start 
+0x3c04 011643 store 2 ,mem_mesh_sha256_chunk_ptr 
+0x3c05 011644 call sha_init 
+:      011646 ali_mesh_encrypt_base_function_sha256_calc_loop:
+0x3c06 011647 fetch 2 ,mem_mesh_sha256_chunk_ptr 
+0x3c07 011648 copy pdata ,contr 
+0x3c08 011649 arg mem_dat ,contw 
+0x3c09 011650 call memcpy64 
+0x3c0a 011651 call sha 
+0x3c0b 011652 fetch 2 ,mem_mesh_sha256_chunk_ptr 
+0x3c0c 011653 pincrease 64 
+0x3c0d 011654 store 2 ,mem_mesh_sha256_chunk_ptr 
+0x3c0e 011655 fetch 1 ,mem_mesh_sha256_chunk_count 
+0x3c0f 011656 pincrease -1 
+0x3c10 011657 store 1 ,mem_mesh_sha256_chunk_count 
+0x3c11 011658 nbranch ali_mesh_encrypt_base_function_sha256_calc_loop ,blank 
+0x3c12 011659 call sha_result 
+0x3c13 011660 arg memresult ,rega 
+0x3c14 011661 arg 0x20 ,loopcnt 
+0x3c15 011662 call inverse_data 
+0x3c16 011663 rtn 
+:      011666 ali_mesh_encrypt_base_function_sha256_load_data_end:
+0x3c17 011667 jam 0 ,mem_mesh_sha256_load_first_data_flag 
+0x3c18 011668 fetch 2 ,mem_mesh_sha256_data_end_addr 
+0x3c19 011669 copy pdata ,contw 
+0x3c1a 011670 arg 0x80 ,temp 
+0x3c1b 011671 istoret 1 ,contw 
+0x3c1c 011672 arg mem_mesh_sha256_chunk_start ,temp 
+0x3c1d 011673 isub temp ,pdata 
+0x3c1e 011674 store 8 ,mem_mesh_sha256_data_len_byte 
+0x3c1f 011676 lshift3 pdata ,temp 
+0x3c20 011677 storet 8 ,mem_mesh_sha256_data_len_bit 
+0x3c21 011678 rshift4 pdata ,regc 
+0x3c22 011679 rshift2 regc ,regc 
+0x3c23 011680 and pdata ,0x3f ,pdata 
+0x3c24 011681 sub pdata ,55 ,null 
+0x3c25 011683 ncall ali_mesh_encrypt_base_function_sha256_add_chunk ,positive 
+0x3c26 011684 add regc ,1 ,pdata 
+0x3c27 011685 store 1 ,mem_mesh_sha256_chunk_count 
+0x3c28 011686 mul32 pdata ,64 ,rega 
+0x3c29 011687 lshift4 pdata ,regc 
+0x3c2a 011688 increase -1 ,regc 
+0x3c2b 011689 setarg mem_mesh_sha256_chunk_start + decreased_four 
+0x3c2c 011690 iadd rega ,rega 
+0x3c2d 011691 fetch 4 ,mem_mesh_sha256_data_len_bit 
+0x3c2e 011692 istore 4 ,rega 
+0x3c2f 011693 rtn 
+:      011697 ali_mesh_encrypt_base_function_sha256_add_chunk:
+0x3c30 011698 increase 1 ,regc 
+0x3c31 011699 rtn 
+:      011701 ali_mesh_encrypt_base_function_sha256_input_data_init_inverse:
+0x3c32 011702 arg mem_mesh_sha256_chunk_start ,rega 
+:      011707 ali_mesh_encrypt_base_function_sha256_data_inverse_4byte:
+0x3c33 011708 arg 4 ,loopcnt 
+0x3c34 011709 call inverse_data 
+0x3c35 011710 increase 2 ,rega 
+0x3c36 011711 add regc ,-1 ,regc 
+0x3c37 011712 nbranch ali_mesh_encrypt_base_function_sha256_data_inverse_4byte ,zero 
+0x3c38 011713 rtn 
+:      011720 ali_mesh_encrypt_base_function_hex2ascii:
+0x3c39 011721 ifetch 1 ,contr 
+0x3c3a 011722 rshift4 pdata ,temp 
+0x3c3b 011723 call ali_mesh_encrypt_base_function_dialog2uchar 
+0x3c3c 011724 istoret 1 ,contw 
+0x3c3d 011725 and pdata ,0x0f ,temp 
+0x3c3e 011726 call ali_mesh_encrypt_base_function_dialog2uchar 
+0x3c3f 011727 istoret 1 ,contw 
+0x3c40 011728 loop ali_mesh_encrypt_base_function_hex2ascii 
+0x3c41 011729 rtn 
+:      011730 ali_mesh_encrypt_base_function_dialog2uchar:
+0x3c42 011731 sub temp ,9 ,null 
+0x3c43 011732 branch ali_mesh_encrypt_base_function_dialog2uchar_num ,positive 
+0x3c44 011733 add temp ,87 ,temp 
+0x3c45 011734 rtn 
+:      011735 ali_mesh_encrypt_base_function_dialog2uchar_num:
+0x3c46 011736 add temp ,48 ,temp 
+0x3c47 011737 rtn 
+:      011740 ali_mesh_encrypt_base_function_aes_cmac_32byte:
+0x3c48 011741 setarg 0x20 
+0x3c49 011742 branch ali_mesh_encrypt_base_function_aes_cmac 
+:      011744 ali_mesh_encrypt_base_function_aes_cmac_16byte:
+0x3c4a 011745 setarg 0x10 
+0x3c4b 011746 branch ali_mesh_encrypt_base_function_aes_cmac 
+:      011751 ali_mesh_encrypt_base_function_k2_aes_cmac_t:
+0x3c4c 011752 fetcht 1 ,mem_k2_p_len 
+0x3c4d 011753 increase 1 ,temp 
+0x3c4e 011754 iadd temp ,temp 
+0x3c4f 011755 storet 1 ,mem_aes_cmac_data_length 
+0x3c50 011756 copy rega ,contr 
+0x3c51 011757 copy pdata ,loopcnt 
+0x3c52 011758 call memcpy_fast 
+0x3c53 011759 fetcht 1 ,mem_k2_p_len 
+0x3c54 011760 copy temp ,loopcnt 
+0x3c55 011761 call memcpy 
+0x3c56 011762 copy regb ,pdata 
+0x3c57 011763 istore 1 ,contw 
+0x3c58 011764 arg mem_k2_t ,rega 
+0x3c59 011765 branch ali_mesh_encrypt_base_function_aes_cmac + 3 
+:      011774 ali_mesh_encrypt_base_function_aes_cmac:
+0x3c5a 011775 store 1 ,mem_aes_cmac_data_length 
+0x3c5b 011776 copy pdata ,loopcnt 
+0x3c5c 011777 call memcpy_fast 
+0x3c5d 011778 copy rega ,contr 
+0x3c5e 011779 arg mem_aes_cmac_k ,contw 
+0x3c5f 011780 call memcpy16 
+0x3c60 011781 call function_aes_cmac 
+0x3c61 011782 copy alarm ,contw 
+0x3c62 011783 call store_aes_result 
+0x3c63 011784 rtn 
+:      011788 ali_b0_block_generate:
+0x3c64 011789 fetcht 1 ,mem_ccm_type 
+0x3c65 011790 branch ali_block_generate 
+:      011791 ali_a_block_generate:
+0x3c66 011792 force 0x01 ,temp 
+:      011793 ali_block_generate:
+0x3c67 011794 force regidx_data ,regext_index 
+0x3c68 011795 fetch 2 ,mem_nonce_ptr 
+0x3c69 011796 copy pdata ,contr 
+0x3c6a 011797 ifetch 3 ,contr 
+0x3c6b 011798 lshift8 pdata ,pdata 
+0x3c6c 011799 ior temp ,regext 
+0x3c6d 011800 increase 1 ,regext_index 
+0x3c6e 011801 ifetch 4 ,contr 
+0x3c6f 011802 copy pdata ,regext 
+0x3c70 011803 increase 1 ,regext_index 
+0x3c71 011804 ifetch 4 ,contr 
+0x3c72 011805 copy pdata ,regext 
+0x3c73 011806 increase 1 ,regext_index 
+0x3c74 011807 byteswap rega ,regext 
+0x3c75 011808 lshift16 regext ,regext 
+0x3c76 011809 ifetch 2 ,contr 
+0x3c77 011810 ior regext ,regext 
+0x3c78 011811 rtn 
+:      011812 ali_generate_mic:
+0x3c79 011813 fetch 1 ,mem_ccm_data_len 
+0x3c7a 011814 copy pdata ,rega 
+0x3c7b 011815 call ali_b0_block_generate 
+0x3c7c 011816 call do_aes_ocb 
+0x3c7d 011817 force regidx_result ,regext_index 
+0x3c7e 011818 deposit regext 
+0x3c7f 011819 copy rega ,loopcnt 
+0x3c80 011820 fetcht 2 ,mem_ccm_data_ptr 
+0x3c81 011821 copy temp ,contr 
+0x3c82 011822 call padding_data 
+0x3c83 011823 branch generate_mic_loop 
+:      011824 ali_ccm_encrypt_64bit:
+0x3c84 011825 jam mic_size_64bit ,mem_ccm_type 
+0x3c85 011826 branch ali_ccm_encrypt_function 
+:      011827 ali_ccm_encrypt:
+0x3c86 011828 jam mic_size_32bit ,mem_ccm_type 
+0x3c87 011829 branch ali_ccm_encrypt_function 
+:      011830 ali_ccm_encrypt_function:
+0x3c88 011831 store 1 ,mem_ccm_data_len 
+0x3c89 011832 storet 2 ,mem_ccm_data_ptr 
+0x3c8a 011833 bpatchx patch34_5 ,mem_patch34 
+0x3c8b 011834 call ali_generate_mic 
+0x3c8c 011835 force regidx_xor ,regext_index 
+0x3c8d 011836 iforce regext 
+0x3c8e 011837 force regidx_result + 1 ,regext_index 
+0x3c8f 011838 copy regext ,pdata 
+0x3c90 011839 force regidx_xor + 1 ,regext_index 
+0x3c91 011840 iforce regext 
+0x3c92 011841 force 0 ,rega 
+0x3c93 011842 copy temp ,regc 
+0x3c94 011843 call ali_a_block_generate 
+0x3c95 011844 call do_aes_ctr 
+0x3c96 011845 call ali_fetcht_ccm_mic 
+0x3c97 011846 storet 8 ,mem_ccm_mic 
+0x3c98 011847 fetch 1 ,mem_ccm_data_len 
+0x3c99 011848 copy pdata ,regb 
+0x3c9a 011849 call ali_aes_crypt_data 
+0x3c9b 011850 fetcht 1 ,mem_ccm_data_len 
+0x3c9c 011851 fetch 2 ,mem_ccm_data_ptr 
+0x3c9d 011852 iadd temp ,rega 
+0x3c9e 011853 fetcht 8 ,mem_ccm_mic 
+0x3c9f 011854 istoret 4 ,rega 
+0x3ca0 011855 fetch 1 ,mem_ccm_type 
+0x3ca1 011856 sub pdata ,mic_size_32bit ,pdata 
+0x3ca2 011857 rtn blank 
+0x3ca3 011858 istoret 8 ,rega 
+0x3ca4 011859 rtn 
+:      011860 ali_ccm_decrypt_64bit:
+0x3ca5 011861 jam mic_size_64bit ,mem_ccm_type 
+0x3ca6 011862 branch ali_ccm_decrypt_function 
+:      011863 ali_ccm_decrypt:
+0x3ca7 011864 jam mic_size_32bit ,mem_ccm_type 
+0x3ca8 011865 branch ali_ccm_decrypt_function 
+:      011867 ali_ccm_decrypt_function:
+0x3ca9 011868 store 1 ,mem_ccm_data_len 
+0x3caa 011869 storet 2 ,mem_ccm_data_ptr 
+0x3cab 011870 copy temp ,regc 
+0x3cac 011871 copy pdata ,regb 
+0x3cad 011872 iadd regc ,contr 
+0x3cae 011873 bpatchx patch34_6 ,mem_patch34 
+0x3caf 011874 ifetch 8 ,contr 
+0x3cb0 011875 force regidx_xor ,regext_index 
+0x3cb1 011876 iforce regext 
+0x3cb2 011877 force regidx_xor + 1 ,regext_index 
+0x3cb3 011878 rshift32 pdata ,pdata 
+0x3cb4 011879 iforce regext 
+0x3cb5 011880 force 0 ,rega 
+0x3cb6 011881 call ali_a_block_generate 
+0x3cb7 011882 call do_aes_ctr 
+0x3cb8 011883 call ali_fetcht_ccm_mic 
+0x3cb9 011884 storet 8 ,mem_ccm_mic 
+0x3cba 011885 call ali_aes_crypt_data 
+0x3cbb 011886 call ali_generate_mic 
+0x3cbc 011887 call ali_fetcht_ccm_mic 
+0x3cbd 011888 fetch 1 ,mem_ccm_type 
+0x3cbe 011889 beq mic_size_64bit ,ali_ccm_decrypt_function_check_mic64 
+0x3cbf 011890 storet 4 ,mem_ccm_mic + 4 
+0x3cc0 011891 fetch 4 ,mem_ccm_mic 
+0x3cc1 011892 fetcht 4 ,mem_ccm_mic + 4 
+0x3cc2 011893 isub temp ,pdata 
+0x3cc3 011894 rtn 
+:      011896 ali_ccm_decrypt_function_check_mic64:
+0x3cc4 011897 fetch 8 ,mem_ccm_mic 
+0x3cc5 011898 isub temp ,pdata 
+0x3cc6 011899 rtn 
+:      011901 ali_fetcht_ccm_mic:
+0x3cc7 011902 force regidx_result ,regext_index 
+0x3cc8 011903 deposit regext 
+0x3cc9 011904 force regidx_result + 1 ,regext_index 
+0x3cca 011905 copy regext ,temp 
+0x3ccb 011906 lshift16 temp ,temp 
+0x3ccc 011907 lshift16 temp ,temp 
+0x3ccd 011908 ior temp ,temp 
+0x3cce 011909 rtn 
+:      011910 ali_aes_crypt_data:
+0x3ccf 011911 increase 1 ,rega 
+0x3cd0 011912 call ali_a_block_generate 
+0x3cd1 011913 copy regc ,contr 
+0x3cd2 011914 call aes_load_xor 
+0x3cd3 011915 call do_aes_ctr 
+0x3cd4 011916 call store_enc_data 
+0x3cd5 011917 increase 16 ,regc 
+0x3cd6 011918 increase -16 ,regb 
+0x3cd7 011919 branch ali_aes_crypt_data ,positive 
+0x3cd8 011920 rtn 
+:      011930 mesh_send_unprovisioned_beacons:
+0x3cd9 011931 bpatchx patch34_7 ,mem_patch34 
+0x3cda 011932 jam unprovisioned_beacon_status ,mem_mesh_provisioned_flag 
+0x3cdb 011933 jam 0x00 ,mem_mesh_provisioning_state_flag 
+0x3cdc 011934 jam 1 ,mem_mesh_advertising_unprovisioned_device_beacon_switch 
+0x3cdd 011935 setarg adv_unprovisioned_device_beacon_timeout 
+0x3cde 011936 store 2 ,mem_mesh_advertising_unprovisioned_device_beacon_timer 
+0x3cdf 011937 rtn 
+:      011940 ali_mesh_config_device_uuid_by_three_tuple:
+0x3ce0 011941 setarg company_identifiers_alibaba 
+0x3ce1 011942 store 2 ,mem_mesh_device_uuid 
+0x3ce2 011943 fetch 1 ,mem_mesh_device_pid 
+0x3ce3 011944 istore 1 ,contw 
+0x3ce4 011945 fetch 4 ,mem_mesh_three_tuple_productid 
+0x3ce5 011946 call inverse_data_4byte 
+0x3ce6 011947 istore 4 ,contw 
+0x3ce7 011948 fetch 6 ,mem_le_lap 
+0x3ce8 011949 istore 6 ,contw 
+0x3ce9 011950 fetch 3 ,mem_mesh_uuid_featureflag 
+0x3cea 011951 istore 3 ,contw 
+0x3ceb 011952 rtn 
+:      011954 ali_mesh_send_unprovisioned_beacons_tmall:
+0x3cec 011955 call ali_mesh_init_adv_data_tmall_unprovisioned_beacons_package 
+0x3ced 011956 branch mesh_le_send_adv 
+:      011958 ali_mesh_init_adv_data_tmall_unprovisioned_beacons_package:
+0x3cee 011960 jam 0x15 ,mem_mesh_adv_data_len 
+0x3cef 011961 setarg 0x14 
+0x3cf0 011962 store 1 ,mem_mesh_adv_data 
+0x3cf1 011963 setarg gap_adtype_mesh_beacon 
+0x3cf2 011964 istore 1 ,contw 
+0x3cf3 011965 setarg unprovisioned_device_beacon 
+0x3cf4 011966 istore 1 ,contw 
+:      011967 ali_mesh_advertising_send_unprovisioned_beacons_store_device_uuid:
+0x3cf5 011968 arg mem_mesh_device_uuid ,contr 
+0x3cf6 011969 call memcpy16 
+0x3cf7 011970 fetch 2 ,mem_mesh_oob_information 
+0x3cf8 011971 istore 2 ,contw 
+0x3cf9 011972 rtn 
+:      011975 ali_mesh_receive_adtype_manufacturer_specific:
+0x3cfa 011976 call ali_mesh_receive_provisioning_package_check_header 
+0x3cfb 011977 nrtn user 
+0x3cfc 011978 ifetch 1 ,contr 
+0x3cfd 011979 beq provisioning_random ,ali_mesh_advertising_receive_privisioning_random 
+0x3cfe 011980 beq provisioning_data ,ali_mesh_decrypt_tmall_privisioning_data_package 
+0x3cff 011981 bpatchx patch35_0 ,mem_patch35 
+0x3d00 011982 rtn 
+:      011986 ali_mesh_advertising_receive_privisioning_random:
+0x3d01 011987 call ali_mesh_advertising_receive_privisioning_random_check_states 
+0x3d02 011988 nrtn user 
+:      011989 ali_mesh_advertising_calc_encrypt_random_data:
+0x3d03 011990 call ali_mesh_encrypt_calc_random_data 
+0x3d04 011992 call ali_mesh_advertising_send_provisioning_confirmation 
+0x3d05 011993 call ali_mesh_send_pairing_data 
+0x3d06 011994 rtn 
+:      011996 ali_mesh_advertising_send_provisioning_confirmation:
+0x3d07 011997 arg provisioning_packet_confirmation_mac + provisioning_packet_confirmation_device ,temp 
+0x3d08 011998 call ali_mesh_advertising_send_packet_common 
+0x3d09 011999 setarg provisioning_confirmation 
+0x3d0a 012000 istore 1 ,contw 
+0x3d0b 012001 fetch 2 ,mem_mesh_three_tuple_mac + 4 
+0x3d0c 012002 istore 2 ,contw 
+0x3d0d 012003 arg mem_mesh_confirmationdevice ,contr 
+0x3d0e 012004 branch memcpy16 
+:      012007 ali_mesh_advertising_receive_privisioning_random_check_states:
+0x3d0f 012008 call disable_user 
+0x3d10 012009 ifetcht 2 ,contr 
+0x3d11 012010 arg mem_mesh_provisioning_random_a ,contw 
+0x3d12 012011 call memcpy16 
+0x3d13 012012 fetch 2 ,mem_mesh_three_tuple_mac + 4 
+0x3d14 012013 isub temp ,null 
+0x3d15 012014 nrtn zero 
+0x3d16 012017 fetch 1 ,mem_mesh_provisioning_state_flag 
+0x3d17 012018 rtnbit1 receive_provisioning_random 
+0x3d18 012019 set1 receive_provisioning_random ,pdata 
+0x3d19 012020 store 1 ,mem_mesh_provisioning_state_flag 
+0x3d1a 012022 jam pairing_status ,mem_mesh_provisioned_flag 
+0x3d1b 012023 branch enable_user 
+:      012025 ali_mesh_decrypt_tmall_privisioning_data_package:
+0x3d1c 012026 call ali_mesh_advertising_receive_privisioning_data 
+0x3d1d 012027 fetcht 2 ,mem_mesh_provisioning_data_mac_addr 
+0x3d1e 012028 fetch 2 ,mem_mesh_three_tuple_mac + 4 
+0x3d1f 012029 isub temp ,null 
+0x3d20 012030 nrtn zero 
+0x3d21 012031 call ali_mesh_encrypt_base_function_k3 
+0x3d22 012032 call ali_mesh_send_pairing_data 
+0x3d23 012033 fetch 1 ,mem_mesh_fast_pair_packet_type 
+0x3d24 012034 rtnne mesh_message_proxy 
+0x3d25 012035 jam wait_receive_appkey ,mem_mesh_provisioned_flag 
+0x3d26 012036 rtn 
+:      012039 ali_mesh_advertising_receive_privisioning_data:
+0x3d27 012040 bpatchx patch35_1 ,mem_patch35 
+0x3d28 012041 copy contr ,rega 
+0x3d29 012042 fetch 1 ,mem_mesh_provisioned_flag 
+0x3d2a 012043 rtneq paired_status 
+0x3d2b 012044 fetch 1 ,mem_mesh_provisioning_state_flag 
+0x3d2c 012045 rtnbit0 receive_provisioning_random 
+0x3d2d 012046 rtnbit1 receive_provisioning_data 
+0x3d2e 012047 copy rega ,contr 
+0x3d2f 012048 arg 0x16 ,loopcnt 
+0x3d30 012049 arg mem_mesh_encrypt_provisioning_data ,contw 
+0x3d31 012050 call memcpy 
+0x3d32 012052 call ali_mesh_encrypt_calc_provisioning_data 
+0x3d33 012054 fetcht 2 ,mem_mesh_provisioning_data_mac_addr 
+0x3d34 012055 fetch 2 ,mem_mesh_three_tuple_mac + 4 
+0x3d35 012056 isub temp ,null 
+0x3d36 012057 nrtn zero 
+:      012058 ali_mesh_resolve_privisioning_data_package:
+0x3d37 012059 fetch 1 ,mem_mesh_provisioning_state_flag 
+0x3d38 012060 set1 receive_provisioning_data ,pdata 
+0x3d39 012061 store 1 ,mem_mesh_provisioning_state_flag 
+0x3d3a 012063 call ali_mesh_encrypt_calc_network_key_by_k2 
+0x3d3b 012065 fetch 1 ,mem_mesh_last_iv_index_byte 
+0x3d3c 012066 store 1 ,mem_mesh_iv_index + 3 
+0x3d3d 012067 call ali_mesh_advertising_send_provisioning_complete 
+0x3d3e 012068 rtn 
+:      012072 ali_mesh_advertising_send_provisioning_complete:
+0x3d3f 012073 arg provisioning_packet_complete_mac ,temp 
+0x3d40 012074 call ali_mesh_advertising_send_packet_common 
+0x3d41 012075 setarg provisioning_complete 
+0x3d42 012076 istore 1 ,contw 
+0x3d43 012077 fetch 6 ,mem_mesh_three_tuple_mac 
+0x3d44 012078 istore 6 ,contw 
+0x3d45 012079 rtn 
+:      012082 ali_mesh_advertising_send_packet_common:
+0x3d46 012083 bpatchx patch35_2 ,mem_patch35 
+0x3d47 012084 setarg fast_pairing_timeout_provisioning 
+0x3d48 012085 store 2 ,mem_mesh_fast_pairing_timer 
+0x3d49 012086 fetch 1 ,mem_mesh_fast_pair_packet_type 
+0x3d4a 012087 sub pdata ,mesh_message_tmall ,null 
+0x3d4b 012088 call ali_mesh_control_ble_advertising_on_advertising ,zero 
+0x3d4c 012089 ncall ali_mesh_control_ble_advertising_off_advertising ,zero 
+0x3d4d 012090 add temp ,provisioning_packet_length_ad_type_company_id_vid_provisioning_type + provisioning_packet_length_flags ,pdata 
+0x3d4e 012091 store 1 ,mem_mesh_adv_data_len 
+0x3d4f 012092 call ali_mesh_advertising_add_adtype_flags 
+0x3d50 012093 add temp ,provisioning_packet_ad_type_company_id_vid_provisioning_type ,pdata 
+0x3d51 012094 istore 1 ,contw 
+0x3d52 012095 setarg gap_adtype_manufacturer_specific 
+0x3d53 012096 istore 1 ,contw 
+0x3d54 012097 setarg company_identifiers_alibaba 
+0x3d55 012098 byteswap pdata ,pdata 
+0x3d56 012099 istore 2 ,contw 
+0x3d57 012100 fetch 1 ,mem_mesh_receive_vid 
+0x3d58 012101 istore 1 ,contw 
+0x3d59 012102 rtn 
+:      012113 ali_mesh_receive_provisioning_package_check_header:
+0x3d5a 012114 call disable_user 
+0x3d5b 012115 ifetcht 2 ,contr 
+0x3d5c 012116 setarg company_identifiers_alibaba 
+0x3d5d 012117 byteswap pdata ,pdata 
+0x3d5e 012118 isub temp ,null 
+0x3d5f 012119 nrtn zero 
+0x3d60 012120 ifetch 1 ,contr 
+0x3d61 012121 store 1 ,mem_mesh_receive_vid 
+0x3d62 012122 branch enable_user 
+:      012125 ali_mesh_fast_pairing_timer:
+0x3d63 012126 arg mem_mesh_fast_pairing_timer ,regc 
+0x3d64 012127 arg ali_mesh_fast_pairing_timeout ,regb 
+0x3d65 012128 branch timer_single_step_2b 
+:      012130 ali_mesh_fast_pairing_timeout:
+:      012131 ali_mesh_fast_pairing_failed:
+0x3d66 012132 branch ali_mesh_advertising_init_send_unprovisioned_device_beacon 
+:      012140 ali_mesh_access_layer_config_or_health_message_opcode:
+0x3d67 012141 fetch 1 ,mem_mesh_configuration_health_message_opcode 
+0x3d68 012142 beq mesh_message_opcode_config_composition_data_get_no_head ,ali_mesh_access_layer_config_composition_data 
+0x3d69 012143 beq mesh_message_opcode_config_node_reset_no_head ,ali_mesh_access_layer_config_or_health_message_opcode_node_reset 
+0x3d6a 012144 beq mesh_message_opcode_config_model_subscription_add_no_head ,ali_mesh_message_config_modle_subscription_add 
+0x3d6b 012145 beq mesh_message_opcode_config_model_subscription_delete_no_head ,ali_mesh_message_config_modle_subscription_delete 
+0x3d6c 012147 beq mesh_message_opcode_config_model_subscription_add_ow_no_head ,ali_mesh_message_config_modle_subscription_add_overwrite 
+0x3d6d 012149 rtn 
+:      012151 ali_mesh_message_config_modle_subscription_add_overwrite:
+0x3d6e 012152 call ali_mesh_message_config_modle_subscription_check_element 
+0x3d6f 012153 call ali_mesh_message_config_modle_subscription_add_value_address_ow 
+0x3d70 012154 call ali_mesh_message_config_modle_subscription_save 
+0x3d71 012155 setarg mesh_configuration_and_health_message_opcode_header 
+0x3d72 012156 store 1 ,mem_mesh_access_layer_payload 
+0x3d73 012157 setarg mesh_message_opcode_config_model_subscription_add_ow_status 
+0x3d74 012158 istore 1 ,contw 
+0x3d75 012160 setarg mesh_success 
+0x3d76 012161 istore 1 ,contw 
+0x3d77 012162 fetch 2 ,mem_mesh_subscription_element_address_ow 
+0x3d78 012163 istore 2 ,contw 
+0x3d79 012165 fetch 1 ,mem_mesh_receive_model_message_payload_len 
+0x3d7a 012166 arg 4 ,temp 
+0x3d7b 012167 isub temp ,loopcnt 
+0x3d7c 012168 arg mem_mesh_subscription_list_num_ow ,contr 
+0x3d7d 012169 call memcpy 
+0x3d7e 012170 fetch 1 ,mem_mesh_receive_model_message_payload_len 
+0x3d7f 012171 pincrease 1 
+0x3d80 012172 store 1 ,mem_mesh_access_layer_payload_len 
+0x3d81 012175 arg 0 ,queue 
+0x3d82 012176 branch ali_mesh_ali_vendor_message_send_message 
+:      012178 ali_mesh_message_config_modle_subscription_add_value_address_ow:
+0x3d83 012179 fetch 1 ,mem_mesh_subscription_list_num_ow 
+0x3d84 012180 rtn blank 
+0x3d85 012181 sub pdata ,subscription_max_count ,null 
+0x3d86 012182 ncall ali_mesh_message_config_modle_subscription_set_addr_max ,positive 
+0x3d87 012183 iforce loopcnt 
+0x3d88 012184 arg mem_mesh_subscription_value_address_start_ow ,contr 
+0x3d89 012185 add rega ,2 ,contw 
+0x3d8a 012186 branch ali_mesh_byte_swap 
+:      012188 ali_mesh_byte_swap:
+0x3d8b 012189 ifetch 2 ,contr 
+0x3d8c 012190 byteswap pdata ,pdata 
+0x3d8d 012191 istore 2 ,contw 
+0x3d8e 012192 loop ali_mesh_byte_swap 
+0x3d8f 012193 rtn 
+:      012195 ali_mesh_message_config_modle_subscription_set_addr_max:
+0x3d90 012197 setarg subscription_max_count 
+0x3d91 012198 rtn 
+:      012200 ali_mesh_access_layer_config_composition_data:
+0x3d92 012201 jam receive_config_composition_data_get ,mem_mesh_provisioned_flag 
+0x3d93 012202 setarg mesh_message_opcode_config_composition_data_status 
+0x3d94 012203 store 1 ,mem_mesh_access_layer_payload 
+0x3d95 012204 setarg 0x00 
+0x3d96 012205 istore 1 ,contw 
+0x3d97 012206 setarg company_identifiers_alibaba 
+0x3d98 012207 istore 2 ,contw 
+0x3d99 012208 setarg 0x0000 
+0x3d9a 012209 istore 2 ,contw 
+0x3d9b 012210 setarg 0x0001 
+0x3d9c 012211 istore 2 ,contw 
+0x3d9d 012212 setarg 0x0005 
+0x3d9e 012213 istore 2 ,contw 
+0x3d9f 012214 setarg 0x0003 
+0x3da0 012215 istore 2 ,contw 
+0x3da1 012216 setarg 0x0000 
+0x3da2 012217 istore 2 ,contw 
+0x3da3 012218 setarg 0x02 
+0x3da4 012219 istore 1 ,contw 
+0x3da5 012220 setarg 0x02 
+0x3da6 012221 istore 1 ,contw 
+0x3da7 012222 setarg 0x0000 
+0x3da8 012223 istore 2 ,contw 
+0x3da9 012224 setarg 0x1000 
+0x3daa 012225 istore 2 ,contw 
+0x3dab 012226 setarg 0x000001a8 
+0x3dac 012227 istore 4 ,contw 
+0x3dad 012228 setarg 0x000101a8 
+0x3dae 012229 istore 4 ,contw 
+0x3daf 012230 jam 28 ,mem_mesh_access_layer_payload_len 
+0x3db0 012231 branch ali_mesh_upper_transport_layer_send_access_message 
+:      012234 ali_mesh_access_layer_config_or_health_message_opcode_node_reset:
+0x3db1 012235 jam health_node_reset_timeout ,mem_mesh_health_node_reset_timer 
+:      012239 ali_mesh_access_layer_send_config_node_reset_status:
+0x3db2 012240 setarg mesh_configuration_and_health_message_opcode_header 
+0x3db3 012241 store 1 ,mem_mesh_access_layer_payload 
+0x3db4 012242 setarg mesh_message_opcode_config_node_reset_status_no_head 
+0x3db5 012243 istore 1 ,contw 
+0x3db6 012244 jam 2 ,mem_mesh_access_layer_payload_len 
+0x3db7 012245 branch ali_mesh_upper_transport_layer_send_access_message 
+:      012247 ali_mesh_access_layer_health_node_reset_timer:
+0x3db8 012248 arg mem_mesh_health_node_reset_timer ,regc 
+0x3db9 012249 arg ali_mesh_access_layer_health_node_reset_timeout ,regb 
+0x3dba 012250 branch timer_single_step 
+:      012253 ali_mesh_access_layer_health_node_reset_timeout:
+0x3dbb 012254 call mesh_clear_provisioning_data_only 
+:      012256 ali_mesh_app_delete_paired:
+0x3dbc 012257 branch soft_reset_chip 
+:      012260 ali_mesh_message_config_modle_subscription_add:
+0x3dbd 012261 call ali_mesh_message_config_modle_subscription_status 
+0x3dbe 012262 fetch 2 ,mem_mesh_core_feature 
+0x3dbf 012263 rtnbit1 mesh_feature_disable_subscription 
+0x3dc0 012264 call ali_mesh_message_config_modle_subscription_check_element 
+0x3dc1 012265 call ali_mesh_message_config_modle_subscription_add_value_address 
+:      012266 ali_mesh_message_config_modle_subscription_save:
+0x3dc2 012267 fetch 2 ,mem_mesh_cb_subscriptuion_list_changed 
+0x3dc3 012268 branch callback_func 
+:      012271 ali_mesh_message_config_modle_subscription_delete:
+0x3dc4 012272 call ali_mesh_message_config_modle_subscription_status 
+0x3dc5 012273 fetch 2 ,mem_mesh_core_feature 
+0x3dc6 012274 rtnbit1 mesh_feature_disable_subscription 
+0x3dc7 012275 call ali_mesh_message_config_modle_subscription_check_element 
+0x3dc8 012276 fetcht 2 ,mem_mesh_subscription_value_address 
+0x3dc9 012277 rshift8 temp ,pdata 
+0x3dca 012278 rshift4 pdata ,pdata 
+0x3dcb 012279 beq 0x0c ,ali_mesh_message_config_modle_subscription_delete_group_addr 
+0x3dcc 012280 byteswap temp ,temp 
+:      012281 ali_mesh_message_config_modle_subscription_delete_next:
+0x3dcd 012282 call ali_mesh_message_config_modle_subscription_check_value_address 
+0x3dce 012283 nrtn user 
+0x3dcf 012284 setarg 0 
+0x3dd0 012285 istore 2 ,rega 
+0x3dd1 012286 fetch 2 ,mem_mesh_cb_subscriptuion_list_changed 
+0x3dd2 012287 branch callback_func 
+:      012289 ali_mesh_message_config_modle_subscription_delete_group_addr:
+0x3dd3 012290 setarg -1 
+0x3dd4 012291 istore subscription_max_count ,rega 
+0x3dd5 012292 istore subscription_max_count ,contw 
+0x3dd6 012293 fetch 2 ,mem_mesh_cb_subscriptuion_list_changed 
+0x3dd7 012294 branch callback_func 
+:      012296 ali_mesh_message_config_modle_subscription_check_value_address:
+0x3dd8 012297 arg subscription_max_count ,loopcnt 
+:      012298 ali_mesh_message_config_modle_subscription_check_value_address_loop:
+0x3dd9 012299 ifetch 2 ,rega 
+0x3dda 012300 arg 0xffff ,regb 
+0x3ddb 012301 isub regb ,null 
+0x3ddc 012302 branch enable_user ,zero 
+0x3ddd 012303 isub temp ,null 
+0x3dde 012304 branch enable_user ,zero 
+:      012305 ali_mesh_message_config_modle_subscription_check_value_address_loop_empty:
+0x3ddf 012306 increase 2 ,rega 
+0x3de0 012307 loop ali_mesh_message_config_modle_subscription_check_value_address_loop 
+0x3de1 012308 branch disable_user 
+:      012311 ali_mesh_message_config_modle_subscription_status:
+0x3de2 012312 setarg mesh_configuration_and_health_message_opcode_header 
+0x3de3 012313 store 1 ,mem_mesh_access_layer_payload 
+0x3de4 012314 setarg mesh_message_opcode_config_model_subscription_status_no_head 
+0x3de5 012315 istore 1 ,contw 
+0x3de6 012316 setarg mesh_success 
+0x3de7 012317 istore 1 ,contw 
+0x3de8 012318 fetch 6 ,mem_mesh_subscription_element_address 
+0x3de9 012319 istore 6 ,contw 
+0x3dea 012320 jam 9 ,mem_mesh_access_layer_payload_len 
+0x3deb 012321 branch ali_mesh_upper_transport_layer_send_access_message_without_cleat_tx_buffer 
+:      012323 ali_mesh_message_config_modle_subscription_check_element:
+0x3dec 012324 call mesh_get_element_info_config 
+0x3ded 012325 add rega ,element_device_subscription_label ,rega 
+0x3dee 012326 fetch 2 ,mem_mesh_subscription_element_address 
+0x3def 012327 fetcht 2 ,mem_mesh_unicast_address 
+0x3df0 012328 byteswap temp ,temp 
+0x3df1 012329 isub temp ,pdata 
+0x3df2 012330 imul32 regb ,pdata 
+0x3df3 012331 iadd rega ,rega 
+0x3df4 012332 rtn 
+:      012334 ali_mesh_message_config_modle_subscription_add_value_address:
+0x3df5 012335 fetcht 2 ,mem_mesh_subscription_value_address 
+0x3df6 012336 arg subscription_max_count ,loopcnt 
+:      012337 ali_mesh_message_config_modle_subscription_add_value_address_loop:
+0x3df7 012338 ifetch 2 ,rega 
+0x3df8 012339 branch ali_mesh_message_config_modle_subscription_add_value_address_in ,blank 
+0x3df9 012340 arg 0xffff ,regb 
+0x3dfa 012341 isub regb ,null 
+0x3dfb 012342 branch ali_mesh_message_config_modle_subscription_add_value_address_in ,zero 
+0x3dfc 012343 increase 2 ,rega 
+0x3dfd 012344 loop ali_mesh_message_config_modle_subscription_add_value_address_loop 
+0x3dfe 012345 rtn 
+:      012347 ali_mesh_message_config_modle_subscription_add_value_address_in:
+0x3dff 012348 byteswap temp ,temp 
+0x3e00 012349 istoret 2 ,rega 
+0x3e01 012350 rtn 
+:      012355 ali_mesh_init:
+0x3e02 012357 call enable_authrom 
+0x3e03 012358 call init_memp 
+0x3e04 012359 setarg mesh_check_ble_rx_packet 
+0x3e05 012360 store 2 ,mem_mesh_cb_receive_advertising 
+0x3e06 012362 setarg mesh_idle_process 
+0x3e07 012363 store 2 ,mem_cb_idle_process 
+0x3e08 012365 setarg ali_mesh_network_layer_relay_access_message 
+0x3e09 012366 store 2 ,mem_mesh_cb_network_relay 
+0x3e0a 012368 setarg ali_mesh_access_layer_recv_cfg_appkey_add_cb 
+0x3e0b 012369 store 2 ,mem_mesh_cb_receive_config_appkey_add 
+0x3e0c 012371 setarg mesh_store_new_subscriptuion_list_data 
+0x3e0d 012372 store 2 ,mem_mesh_cb_subscriptuion_list_changed 
+0x3e0e 012374 setarg mesh_store_new_seq_data 
+0x3e0f 012375 store 2 ,mem_mesh_cb_seq_changed 
+0x3e10 012377 setarg mesh_cb_event_timer 
+0x3e11 012378 store 2 ,mem_cb_event_timer 
+0x3e12 012380 setarg ali_mesh_access_layer_check_access_message_opcode 
+0x3e13 012381 store 2 ,mem_mesh_cb_receive_access_message 
+0x3e14 012383 setarg mesh_le_receive_data 
+0x3e15 012384 store 2 ,mem_cb_att_write 
+0x3e16 012386 setarg ali_mesh_proxy_process_bb_event 
+0x3e17 012387 store 2 ,mem_cb_bb_event_process 
+0x3e18 012389 setarg mesh_clear_pairing_key 
+0x3e19 012390 store 2 ,mem_mesh_clear_provisioning_data 
+0x3e1a 012392 setarg mesh_vendor_timming_chage_cb 
+0x3e1b 012393 store 2 ,mem_mesh_cb_vendor_timing_changed 
+0x3e1c 012394 call ali_mesh_vendor_timer_message_read 
+0x3e1d 012396 jam 36 ,mem_mesh_adv_scan_channel 
+0x3e1e 012397 call ali_mesh_ali_vendor_message_indication_info_reset_tid 
+0x3e1f 012400 bpatchx patch35_3 ,mem_patch35 
+0x3e20 012402 setarg 0x0428 
+0x3e21 012403 store 2 ,mem_mesh_upper_tran_layer_queue_each_size 
+0x3e22 012404 call ali_mesh_upper_transport_layer_queue_init 
+0x3e23 012406 setarg 0x0422 
+0x3e24 012407 store 2 ,mem_mesh_queue_each_size 
+0x3e25 012408 call ali_mesh_advertising_bearer_layer_queue_init 
+0x3e26 012410 setarg 0x0a22 
+0x3e27 012411 store 2 ,mem_mesh_network_relay_gatt_queue_each_size 
+0x3e28 012412 call ali_mesh_network_layer_gatt_queue_init 
+0x3e29 012413 call ali_mesh_network_layer_queue_init 
+0x3e2a 012417 call ali_mesh_network_layer_queue_init 
+0x3e2b 012419 call ali_mesh_chip_peripherals_load_data 
+0x3e2c 012420 call mesh_inverse_three_tuple_mac 
+0x3e2d 012422 fetch 1 ,mem_mesh_network_key 
+0x3e2e 012423 beq 0xff ,mesh_send_unprovisioned_beacons 
+0x3e2f 012424 call ali_mesh_upper_transport_layer_clear_tx_buffer 
+0x3e30 012425 call ali_mesh_encrypt_base_function_k3 
+0x3e31 012426 call ali_mesh_encrypt_base_function_k4 
+0x3e32 012427 call ali_mesh_encrypt_calc_network_key_by_k2 
+0x3e33 012429 random pdata 
+0x3e34 012430 and pdata ,0x1f ,pdata 
+0x3e35 012431 add pdata ,50 ,pdata 
+0x3e36 012432 store 2 ,mem_mesh_report_full_attribute_timer 
+0x3e37 012433 add pdata ,5 ,pdata 
+0x3e38 012434 store 1 ,mem_mesh_report_power_on_timer 
+0x3e39 012435 rtn 
+:      012439 mesh_inverse_three_tuple_mac:
+0x3e3a 012440 fetch 6 ,mem_mesh_three_tuple_mac 
+0x3e3b 012441 call inverse_data_6byte 
+0x3e3c 012442 store 6 ,mem_le_lap 
+0x3e3d 012443 rtn 
+:      012445 mesh_get_element_info_config:
+0x3e3e 012446 fetchr loopcnt ,1 ,mem_mesh_element_number 
+0x3e3f 012447 fetchr rega ,2 ,mem_mesh_element_device_ptr 
+0x3e40 012448 fetchr regb ,2 ,mem_mesh_element_device_length 
+0x3e41 012449 rtn 
+:      012452 mesh_idle_process:
+0x3e42 012453 bpatchx patch35_4 ,mem_patch35 
+0x3e43 012454 call ali_mesh_time_function 
+0x3e44 012455 call ali_mesh_control_ble_adv_process 
+0x3e45 012456 call ali_mesh_upper_transport_layer_control_packet 
+0x3e46 012457 call ali_mesh_advertising_bearer_layer_load_packet_from_advertising_queue 
+0x3e47 012458 call ali_mesh_network_layer_control_relay_packet 
+0x3e48 012459 call ali_mesh_network_layer_check_gatt_relay_packet 
+0x3e49 012460 branch mesh_ble_rx_packet 
+:      012463 mesh_cb_event_timer:
+0x3e4a 012464 call ali_mesh_control_ble_adv_timer_process 
+0x3e4b 012465 call ali_mesh_access_layer_health_node_reset_timer 
+0x3e4c 012466 call ali_mesh_fast_pairing_timer 
+0x3e4d 012469 call ali_mesh_report_full_attribute_timer 
+0x3e4e 012470 call ali_mesh_report_power_on_timer 
+0x3e4f 012471 branch ali_mesh_upper_transport_layer_receive_new_msg_timer 
+:      012474 mesh_clear_provisioning_data_only:
+0x3e50 012475 call mesh_clear_timer_data 
+0x3e51 012476 fetch 2 ,mem_mesh_clear_provisioning_data 
+0x3e52 012477 branch callback_func 
+:      012481 mesh_clear_timer_data:
+0x3e53 012482 fetch 1 ,mem_mesh_chip_select 
+0x3e54 012483 rtnne 2 
+0x3e55 012484 setarg 0x1d000 
+0x3e56 012485 store 3 ,mem_spi_write_addr 
+0x3e57 012486 branch spid_flash_erase_sector + 2 
+:      012490 ali_mesh_upper_transport_layer_queue_init:
+0x3e58 012491 call ali_mesh_upper_transport_layer_init_queue_param 
+0x3e59 012492 branch queue_init 
+:      012494 ali_mesh_advertising_bearer_layer_queue_init:
+0x3e5a 012495 call ali_mesh_advertising_bearer_layer_init_queue_param 
+0x3e5b 012496 branch queue_init 
+:      012498 ali_mesh_network_layer_gatt_queue_init:
+0x3e5c 012499 call ali_mesh_network_layer_init_gatt_queue_param 
+0x3e5d 012500 branch queue_init 
+:      012502 ali_mesh_network_layer_init_gatt_queue_param:
+0x3e5e 012503 setarg mem_mesh_network_relay_gatt_queue_each_size 
+0x3e5f 012504 store 2 ,mem_queue_ptr 
+0x3e60 012505 rtn 
+:      012507 ali_mesh_advertising_init_send_unprovisioned_device_beacon:
+0x3e61 012508 jam 1 ,mem_le_adv_enable 
+0x3e62 012509 setarg adv_unprovisioned_device_beacon_timeout 
+0x3e63 012510 store 2 ,mem_mesh_advertising_unprovisioned_device_beacon_timer 
+0x3e64 012511 fetch 1 ,mem_mesh_uuid_featureflag 
+0x3e65 012512 set0 bit_silence_adv_flag ,pdata 
+0x3e66 012513 store 1 ,mem_mesh_uuid_featureflag 
+0x3e67 012514 jam unprovisioned_beacon_status ,mem_mesh_provisioned_flag 
+0x3e68 012515 jam 0x00 ,mem_mesh_provisioning_state_flag 
+0x3e69 012516 jam 0x00 ,mem_k2_nid 
+0x3e6a 012517 branch ali_mesh_send_unprovisioned_device_beacon_init_advertising 
+:      012521 ali_mesh_lower_transport_layer_receive_lower_transport_pdu:
+0x3e6b 012522 bpatchx patch35_5 ,mem_patch35 
+0x3e6c 012523 fetch 1 ,mem_mesh_message_transport_head 
+0x3e6d 012524 bbit1 transport_head_bit_seg ,ali_mesh_lower_transport_layer_receive_lower_transport_pdu_segmented_message 
+0x3e6e 012525 jam 0 ,mem_mesh_aszmic 
+0x3e6f 012526 branch ali_mesh_upper_transport_layer_receive_unsegmented_access_message 
+:      012529 ali_mesh_lower_transport_layer_receive_lower_transport_pdu_segmented_message:
+0x3e70 012530 call ali_mesh_lower_transport_layer_receive_segaccmess_resolve_szmic_seqzero_segon 
+0x3e71 012531 rtn user 
+0x3e72 012532 call ali_mesh_lower_transport_layer_receive_segmented_access_message_check_blockack 
+0x3e73 012533 rtn user 
+0x3e74 012534 call ali_mesh_lower_transport_layer_receive_segmented_access_message_store_segment 
+0x3e75 012535 branch ali_mesh_lower_transport_layer_receive_segmented_access_message_decrypt_segment 
+:      012539 ali_mesh_lower_transport_layer_receive_segaccmess_resolve_szmic_seqzero_segon:
+0x3e76 012540 call disable_user 
+0x3e77 012541 arg 3 ,loopcnt 
+0x3e78 012542 arg mem_mesh_message_segment_access_szmic_seqzero_sego_segn ,rega 
+0x3e79 012543 call inverse_data 
+0x3e7a 012544 fetchr rega ,3 ,mem_mesh_message_segment_access_szmic_seqzero_sego_segn 
+0x3e7b 012545 and rega ,0x1f ,temp 
+0x3e7c 012546 storet 1 ,mem_mesh_segmented_access_message_segn 
+0x3e7d 012547 fetch 1 ,mem_mesh_segmented_access_message_segn_upper_limit 
+0x3e7e 012548 isub temp ,null 
+0x3e7f 012549 nbranch enable_user ,positive 
+0x3e80 012551 rshift4 rega ,pdata 
+0x3e81 012552 rshift pdata ,pdata 
+0x3e82 012553 and pdata ,0x1f ,temp 
+0x3e83 012554 storet 1 ,mem_mesh_segmented_access_message_sego 
+0x3e84 012555 rshift4 pdata ,pdata 
+0x3e85 012556 rshift pdata ,pdata 
+0x3e86 012557 arg 0x1fff ,rega 
+0x3e87 012558 iand rega ,temp 
+0x3e88 012559 copy pdata ,regb 
+0x3e89 012560 fetch 2 ,mem_mesh_segmented_access_message_seqzero 
+0x3e8a 012561 isub temp ,null 
+0x3e8b 012562 ncall ali_mesh_lower_transport_layer_receive_segmented_access_message_recover_seqzero ,zero 
+0x3e8c 012563 storet 2 ,mem_mesh_segmented_access_message_seqzero 
+0x3e8d 012564 rshift8 regb ,pdata 
+0x3e8e 012565 rshift4 pdata ,pdata 
+0x3e8f 012566 rshift pdata ,pdata 
+0x3e90 012567 store 1 ,mem_mesh_segmented_access_message_szmic 
+0x3e91 012568 store 1 ,mem_mesh_aszmic 
+0x3e92 012569 rtn 
+:      012571 ali_mesh_lower_transport_layer_receive_segmented_access_message_recover_seqzero:
+0x3e93 012572 setarg 0 
+0x3e94 012573 store 4 ,mem_mesh_segmented_access_message_blockack 
+0x3e95 012574 jam 0 ,mem_mesh_segmented_access_message_current_length 
+0x3e96 012575 rtn 
+:      012580 ali_mesh_lower_transport_layer_receive_segmented_access_message_check_blockack:
+0x3e97 012581 call disable_user 
+0x3e98 012582 fetch 1 ,mem_mesh_segmented_access_message_sego 
+0x3e99 012583 copy pdata ,queue 
+0x3e9a 012584 fetch 4 ,mem_mesh_segmented_access_message_blockack 
+0x3e9b 012585 qisolate1 pdata 
+0x3e9c 012586 branch enable_user ,true 
+0x3e9d 012587 qset1 pdata 
+0x3e9e 012588 store 4 ,mem_mesh_segmented_access_message_blockack 
+0x3e9f 012589 fetcht 1 ,mem_mesh_segmented_access_message_segn 
+0x3ea0 012590 add temp ,1 ,loopcnt 
+:      012591 ali_mesh_lower_transport_layer_receive_segmented_access_message_check_blockack_loop:
+0x3ea1 012592 add loopcnt ,-1 ,queue 
+0x3ea2 012593 qisolate1 pdata 
+0x3ea3 012594 nrtn true 
+0x3ea4 012595 loop ali_mesh_lower_transport_layer_receive_segmented_access_message_check_blockack_loop 
+0x3ea5 012596 jam 1 ,mem_mesh_segmented_access_message_receive_finish 
+0x3ea6 012597 rtn 
+:      012601 ali_mesh_lower_transport_layer_receive_segmented_access_message_store_segment:
+0x3ea7 012602 fetch 1 ,mem_mesh_message_transport_netmic_length 
+0x3ea8 012603 pincrease -6 
+0x3ea9 012604 copy pdata ,loopcnt 
+0x3eaa 012605 fetcht 1 ,mem_mesh_segmented_access_message_current_length 
+0x3eab 012606 iadd temp ,temp 
+0x3eac 012607 storet 1 ,mem_mesh_segmented_access_message_current_length 
+0x3ead 012608 fetch 2 ,mem_mesh_segmented_access_message_segment_ptr 
+0x3eae 012609 iforce contw 
+0x3eaf 012610 fetch 1 ,mem_mesh_segmented_access_message_sego 
+0x3eb0 012611 mul32 pdata ,12 ,pdata 
+0x3eb1 012612 iadd contw ,contw 
+0x3eb2 012613 arg mem_mesh_message_transport_segmented_access_messagepdu_segment ,contr 
+0x3eb3 012614 branch memcpy 
+:      012617 ali_mesh_lower_transport_layer_receive_segmented_access_message_decrypt_segment:
+0x3eb4 012618 fetch 1 ,mem_mesh_segmented_access_message_receive_finish 
+0x3eb5 012619 rtneq 0 
+0x3eb6 012620 setarg 0 
+0x3eb7 012621 store 5 ,mem_mesh_segmented_access_message_blockack 
+0x3eb8 012622 fetcht 2 ,mem_mesh_message_seq + 1 
+0x3eb9 012623 byteswap temp ,temp 
+0x3eba 012624 setarg 0xe000 
+0x3ebb 012625 iand temp ,temp 
+0x3ebc 012626 fetch 2 ,mem_mesh_segmented_access_message_seqzero 
+0x3ebd 012627 ior temp ,pdata 
+0x3ebe 012628 byteswap pdata ,pdata 
+0x3ebf 012629 store 2 ,mem_mesh_message_seq + 1 
+0x3ec0 012630 branch ali_mesh_upper_transport_layer_receive_segmented_access_message 
+:      012634 ali_mesh_lower_transport_layer_send_unsegmented_access_message:
+0x3ec1 012635 fetch 1 ,mem_mesh_upper_transport_layer_payload_len 
+0x3ec2 012636 add pdata ,1 ,temp 
+0x3ec3 012637 copy pdata ,loopcnt 
+0x3ec4 012638 storet 1 ,mem_mesh_lower_transport_layer_payload_len 
+0x3ec5 012639 fetch 1 ,mem_mesh_message_transport_head 
+0x3ec6 012640 set0 transport_head_bit_seg ,pdata 
+0x3ec7 012641 store 1 ,mem_mesh_unsegmented_access_lower_transport_layer_head 
+0x3ec8 012642 arg mem_mesh_access_layer_payload ,contr 
+0x3ec9 012643 call memcpy_fast 
+0x3eca 012644 branch ali_mesh_network_layer_send_access_message 
+:      012649 ali_mesh_lower_transport_layer_send_segmented_access_message:
+0x3ecb 012650 add rega ,4 ,temp 
+0x3ecc 012651 copy rega ,loopcnt 
+0x3ecd 012652 storet 1 ,mem_mesh_lower_transport_layer_payload_len 
+0x3ece 012653 arg mem_mesh_segmented_access_lower_transport_layer_parameters ,contw 
+0x3ecf 012654 call memcpy_fast 
+0x3ed0 012655 fetch 1 ,mem_mesh_message_transport_head 
+0x3ed1 012656 set1 transport_head_bit_seg ,pdata 
+0x3ed2 012657 store 1 ,mem_mesh_segmented_access_lower_transport_layer_head 
+0x3ed3 012658 branch ali_mesh_network_layer_send_access_message 
+:      012663 ali_mesh_model_layer_check_model_message_opcode:
+0x3ed4 012664 fetch 1 ,mem_mesh_module_message_opcode 
+:      012665 ali_mesh_model_layer_check_generic_onoff_message_opcde:
+0x3ed5 012666 beq mesh_module_message_opcode_generic_onoff_get_no_head ,ali_mesh_model_layer_message_opcode_generic_onoff_get 
+0x3ed6 012667 beq mesh_module_message_opcode_generic_onoff_set_no_head ,ali_mesh_model_layer_message_opcde_generic_onoff_set 
+0x3ed7 012668 beq mesh_module_message_opcode_scene_recall_no_head ,ali_mesh_model_layer_message_opcde_scene_recall 
+0x3ed8 012669 beq mesh_module_message_opcode_light_lightness_set_no_head ,ali_mesh_model_layer_message_opcde_light_lightness_set 
+0x3ed9 012670 beq mesh_module_message_opcode_light_ctl_set_no_head ,ali_mesh_model_layer_message_opcde_light_ctl_set 
+0x3eda 012671 rtn 
+:      012674 ali_mesh_model_layer_message_opcode_generic_onoff_get:
+0x3edb 012675 arg ali_mesh_model_layer_message_opcode_generic_onoff_get_cb ,regc 
+0x3edc 012676 branch ali_mesh_more_element_check_element_address 
+:      012677 ali_mesh_model_layer_message_opcode_generic_onoff_get_cb:
+0x3edd 012680 fetch 2 ,mem_mesh_cb_generic_onoff_get 
+0x3ede 012681 call callback_func 
+0x3edf 012682 store 1 ,mem_mesh_generic_onoff_set_payload_onoff 
+0x3ee0 012683 branch ali_mesh_access_layer_send_generic_onoff_status 
+:      012686 ali_mesh_model_layer_message_opcde_generic_onoff_set:
+0x3ee1 012687 arg ali_mesh_model_layer_message_opcde_generic_onoff_set_cb ,regc 
+0x3ee2 012688 branch ali_mesh_more_element_check_element_address 
+:      012689 ali_mesh_model_layer_message_opcde_generic_onoff_set_cb:
+0x3ee3 012690 call ali_mesh_access_layer_send_generic_onoff_status 
+0x3ee4 012691 fetch 2 ,mem_mesh_cb_generic_onoff_set 
+0x3ee5 012692 branch callback_func 
+:      012696 ali_mesh_model_layer_message_opcde_scene_recall:
+0x3ee6 012697 call ali_mesh_access_layer_send_scene_status 
+0x3ee7 012698 fetch 2 ,mem_mesh_cb_scene_recall 
+0x3ee8 012699 branch callback_func 
+:      012702 ali_mesh_model_layer_message_opcde_light_lightness_set:
+0x3ee9 012703 fetch 2 ,mem_mesh_light_lightness_set_payload_lightness 
+0x3eea 012704 call ali_mesh_model_layer_message_calc_lightness 
+0x3eeb 012705 store 1 ,mem_mesh_light_lightness_calc_lightness 
+0x3eec 012706 call ali_mesh_access_layer_send_light_lightness_status 
+0x3eed 012707 fetch 2 ,mem_mesh_cb_light_lightness_set 
+0x3eee 012708 branch callback_func 
+:      012711 ali_mesh_model_layer_message_opcde_light_ctl_set:
+0x3eef 012712 fetch 2 ,mem_mesh_last_ctl_temperature 
+0x3ef0 012713 fetcht 2 ,mem_mesh_ctl_temperature 
+0x3ef1 012714 isub temp ,null 
+0x3ef2 012715 rtn zero 
+0x3ef3 012717 fetch 2 ,mem_mesh_ctl_temperature 
+0x3ef4 012718 call ali_mesh_model_layer_message_calc_temperature 
+0x3ef5 012719 store 1 ,mem_mesh_ctl_calc_temperature 
+0x3ef6 012721 fetch 2 ,mem_mesh_ctl_temperature 
+0x3ef7 012722 store 2 ,mem_mesh_last_ctl_temperature 
+0x3ef8 012723 fetch 2 ,mem_mesh_cb_light_lightness_get 
+0x3ef9 012724 call callback_func 
+0x3efa 012725 storet 2 ,mem_mesh_ctl_lightness 
+0x3efb 012726 call ali_mesh_access_layer_send_light_ctl_stauts 
+0x3efc 012727 fetch 2 ,mem_mesh_cb_light_ctl_set 
+0x3efd 012728 branch callback_func 
+:      012733 ali_mesh_model_layer_message_calc_lightness:
+0x3efe 012734 rtn blank 
+0x3eff 012735 mul32 pdata ,ali_mesh_lightness_level ,pdata 
+0x3f00 012736 arg ali_mesh_lightness_max ,temp 
+0x3f01 012737 idiv temp 
+0x3f02 012738 call wait_div_end 
+0x3f03 012739 remainder temp 
+0x3f04 012740 rshift8 temp ,temp 
+0x3f05 012741 quotient pdata 
+0x3f06 012742 sub temp ,0xff ,null 
+0x3f07 012743 nrtn zero 
+0x3f08 012744 pincrease 1 
+0x3f09 012745 rtn 
+:      012750 ali_mesh_model_layer_message_calc_actual_lightness:
+0x3f0a 012751 arg ali_mesh_lightness_max ,pdata 
+0x3f0b 012752 imul32 temp ,pdata 
+0x3f0c 012753 div pdata ,ali_mesh_lightness_level 
+0x3f0d 012754 call wait_div_end 
+0x3f0e 012755 quotient temp 
+0x3f0f 012756 rtn 
+:      012760 ali_mesh_model_layer_message_calc_temperature:
+0x3f10 012761 arg ali_mesh_temperature_min ,temp 
+0x3f11 012762 isub temp ,rega 
+0x3f12 012763 call ali_mesh_model_layer_message_calc_temperature_k 
+0x3f13 012764 copy rega ,pdata 
+0x3f14 012765 idiv temp 
+0x3f15 012766 call wait_div_end 
+0x3f16 012767 quotient pdata 
+0x3f17 012768 rtn 
+:      012773 ali_mesh_model_layer_message_calc_actual_temperature:
+0x3f18 012774 copy temp ,rega 
+0x3f19 012775 call ali_mesh_model_layer_message_calc_temperature_k 
+0x3f1a 012776 copy rega ,pdata 
+0x3f1b 012777 imul32 temp ,pdata 
+0x3f1c 012778 arg ali_mesh_temperature_min ,temp 
+0x3f1d 012779 iadd temp ,temp 
+0x3f1e 012780 rtn 
+:      012782 ali_mesh_model_layer_message_calc_temperature_k:
+0x3f1f 012783 setarg ali_mesh_temperature_max 
+0x3f20 012784 arg ali_mesh_temperature_min ,temp 
+0x3f21 012785 isub temp ,pdata 
+0x3f22 012786 div pdata ,ali_mesh_temperature_level 
+0x3f23 012787 call wait_div_end 
+0x3f24 012788 quotient temp 
+0x3f25 012789 rtn 
+:      012794 ali_mesh_more_element_check_unicast_address:
+0x3f26 012795 arg 0 ,queue 
+0x3f27 012796 fetchr loopcnt ,1 ,mem_mesh_element_number 
+0x3f28 012797 call disable_user 
+0x3f29 012798 fetch 2 ,mem_mesh_unicast_address 
+:      012799 ali_mesh_more_element_check_unicast_address_loop:
+0x3f2a 012800 isub temp ,null 
+0x3f2b 012801 branch ali_mesh_more_element_found_unicast_address_element ,zero 
+0x3f2c 012802 byteswap pdata ,pdata 
+0x3f2d 012803 pincrease 1 
+0x3f2e 012804 byteswap pdata ,pdata 
+0x3f2f 012805 increase 1 ,queue 
+0x3f30 012806 loop ali_mesh_more_element_check_unicast_address_loop 
+0x3f31 012807 rtn 
+:      012809 ali_mesh_more_element_found_unicast_address_element:
+0x3f32 012810 jam 0 ,mem_mesh_receive_group_address 
+0x3f33 012811 storer queue ,1 ,mem_mesh_receive_element_number 
+0x3f34 012812 call ali_mesh_more_element_calc_queue_address 
+0x3f35 012813 branch enable_user 
+:      012816 ali_mesh_more_element_check_group_address:
+0x3f36 012817 arg 0 ,queue 
+0x3f37 012818 arg 0 ,regc 
+0x3f38 012819 call mesh_get_element_info_config 
+0x3f39 012820 call disable_user 
+:      012821 ali_mesh_more_element_check_group_address_loop:
+0x3f3a 012822 fetch 2 ,mem_mesh_core_feature 
+0x3f3b 012823 bbit0 mesh_feature_disable_subscription ,ali_mesh_more_element_check_subscription_address 
+0x3f3c 012824 ifetch 2 ,rega 
+0x3f3d 012825 isub temp ,null 
+0x3f3e 012826 call ali_mesh_more_element_found_group_address_element ,zero 
+:      012827 ali_mesh_more_element_check_address_common:
+0x3f3f 012828 copy regb ,pdata 
+0x3f40 012829 iadd rega ,rega 
+0x3f41 012830 increase 1 ,queue 
+0x3f42 012831 loop ali_mesh_more_element_check_group_address_loop 
+0x3f43 012832 copy regc ,pdata 
+0x3f44 012833 rtn blank 
+0x3f45 012834 store 1 ,mem_mesh_receive_group_address 
+0x3f46 012835 branch enable_user 
+:      012837 ali_mesh_more_element_found_group_address_element:
+0x3f47 012838 qset1 regc 
+0x3f48 012839 rtn 
+:      012841 ali_mesh_more_element_check_subscription_address:
+0x3f49 012842 add rega ,element_device_subscription_label ,contr 
+0x3f4a 012843 arg subscription_max_count ,alarm 
+:      012844 ali_mesh_more_element_check_subscription_address_loop:
+0x3f4b 012845 ifetch 2 ,contr 
+0x3f4c 012846 isub temp ,null 
+0x3f4d 012847 branch ali_mesh_more_element_found_subscription_address_element ,zero 
+0x3f4e 012848 increase -1 ,alarm 
+0x3f4f 012849 branch ali_mesh_more_element_check_address_common ,zero 
+0x3f50 012850 branch ali_mesh_more_element_check_subscription_address_loop 
+:      012852 ali_mesh_more_element_found_subscription_address_element:
+0x3f51 012853 call ali_mesh_more_element_found_group_address_element 
+0x3f52 012854 branch ali_mesh_more_element_check_address_common 
+:      012856 ali_mesh_more_element_check_element_address:
+0x3f53 012857 arg 0 ,queue 
+0x3f54 012858 fetch 1 ,mem_mesh_receive_group_address 
+0x3f55 012859 branch ali_mesh_more_element_check_element_address_no_group_address ,blank 
+0x3f56 012860 copy pdata ,regb 
+0x3f57 012861 fetchr loopcnt ,1 ,mem_mesh_element_number 
+:      012862 ali_mesh_more_element_check_element_address_loop:
+0x3f58 012863 storer queue ,1 ,mem_mesh_receive_element_number 
+0x3f59 012865 qisolate1 regb 
+0x3f5a 012866 call ali_mesh_more_element_check_element_address_no_group_address ,true 
+0x3f5b 012867 fetchr queue ,1 ,mem_mesh_receive_element_number 
+0x3f5c 012868 increase 1 ,queue 
+0x3f5d 012869 loop ali_mesh_more_element_check_element_address_loop 
+0x3f5e 012870 rtn 
+:      012872 ali_mesh_more_element_check_element_address_no_group_address:
+0x3f5f 012873 call ali_mesh_more_element_push_stack 
+0x3f60 012874 call ali_mesh_more_element_calc_queue_address 
+0x3f61 012875 copy regc ,pdata 
+0x3f62 012876 call callback_func 
+0x3f63 012877 branch ali_mesh_more_element_pop_stack 
+:      012879 ali_mesh_more_element_push_stack:
+0x3f64 012880 storer loopcnt ,2 ,mem_mesh_loopcnt_tmep 
+0x3f65 012881 storer rega ,2 ,mem_mesh_rega_temp 
+0x3f66 012882 storer regb ,2 ,mem_mesh_regb_temp 
+0x3f67 012883 storer regc ,2 ,mem_mesh_regc_temp 
+0x3f68 012884 rtn 
+:      012886 ali_mesh_more_element_pop_stack:
+0x3f69 012887 fetchr loopcnt ,2 ,mem_mesh_loopcnt_tmep 
+0x3f6a 012888 fetchr rega ,2 ,mem_mesh_rega_temp 
+0x3f6b 012889 fetchr regb ,2 ,mem_mesh_regb_temp 
+0x3f6c 012890 fetchr regc ,2 ,mem_mesh_regc_temp 
+0x3f6d 012891 rtn 
+:      012894 ali_mesh_more_element_calc_queue_address:
+0x3f6e 012895 bpatchx patch35_6 ,mem_patch35 
+0x3f6f 012896 fetch 2 ,mem_mesh_unicast_address 
+0x3f70 012897 byteswap pdata ,pdata 
+0x3f71 012898 iadd queue ,pdata 
+0x3f72 012899 byteswap pdata ,pdata 
+0x3f73 012900 store 2 ,mem_mesh_send_message_src 
+0x3f74 012901 call mesh_get_element_info_config 
+0x3f75 012902 copy queue ,pdata 
+0x3f76 012903 imul32 regb ,pdata 
+0x3f77 012904 iadd rega ,rega 
+0x3f78 012905 add rega ,element_device_upper_queue_ptr ,contr 
+0x3f79 012906 ifetch 2 ,contr 
+0x3f7a 012907 store ,2 ,mem_queue_ptr 
+0x3f7b 012908 rtn 
+:      012913 ali_mesh_receive_adtype_mesh_message:
+0x3f7c 012914 jam mesh_message_tmall ,mem_mesh_network_packet_type 
+:      012917 ali_mesh_network_layer_recevice_network_pdu:
+0x3f7d 012918 sub temp ,mesh_network_packet_min_length ,null 
+0x3f7e 012919 rtn positive 
+0x3f7f 012920 sub temp ,mesh_network_packet_max_length ,null 
+0x3f80 012921 nrtn positive 
+0x3f81 012922 bpatchx patch35_7 ,mem_patch35 
+0x3f82 012923 call ali_mesh_network_store_in_mem 
+0x3f83 012924 call ali_mesh_network_layer_check_dup 
+0x3f84 012925 nrtn user 
+0x3f85 012926 call ali_mesh_network_layer_check_nid_ivi 
+0x3f86 012927 nrtn user 
+0x3f87 012928 call ali_mesh_encrypt_obfuscation_deceypt_recevie_message 
+0x3f88 012929 call ali_mesh_network_layer_check_msg 
+0x3f89 012930 nrtn user 
+0x3f8a 012931 call ali_mesh_network_layer_store_proxy_unicast_address 
+0x3f8b 012933 branch ali_mesh_network_layer_recevice_network_pdu_decrypt_netmic32 
+:      012935 ali_mesh_network_layer_check_dup:
+0x3f8c 012936 call enable_user 
+0x3f8d 012937 fetch 1 ,mem_mesh_message_transport_netmic_length 
+0x3f8e 012938 arg mem_mesh_message_nid + 3 ,contr 
+0x3f8f 012939 iadd contr ,contr 
+0x3f90 012940 ifetch 4 ,contr 
+0x3f91 012941 ifetcht 4 ,contr 
+0x3f92 012942 ixor temp ,temp 
+0x3f93 012943 arg 16 ,loopcnt 
+0x3f94 012944 arg mem_mesh_network_dup_cache ,contr 
+:      012945 ali_mesh_network_layer_check_dup_loop:
+0x3f95 012946 ifetch 4 ,contr 
+0x3f96 012947 isub temp ,null 
+0x3f97 012948 branch disable_user ,zero 
+0x3f98 012949 loop ali_mesh_network_layer_check_dup_loop 
+0x3f99 012950 fetch 1 ,mem_mesh_network_dup_cache_next 
+0x3f9a 012951 pincrease 4 
+0x3f9b 012952 arg mem_mesh_network_dup_cache ,contw 
+0x3f9c 012953 iadd contw ,contw 
+0x3f9d 012954 istoret 4 ,contw 
+0x3f9e 012955 and pdata ,0x3f ,pdata 
+0x3f9f 012956 store 1 ,mem_mesh_network_dup_cache_next 
+0x3fa0 012957 rtn 
+:      012959 ali_mesh_network_layer_check_msg:
+0x3fa1 012960 call enable_user 
+0x3fa2 012961 fetcht 5 ,mem_mesh_message_seq 
+0x3fa3 012962 arg 16 ,loopcnt 
+0x3fa4 012963 arg mem_mesh_network_msg_cache ,contr 
+:      012964 ali_mesh_network_layer_check_msg_loop:
+0x3fa5 012965 ifetch 5 ,contr 
+0x3fa6 012966 isub temp ,null 
+0x3fa7 012967 branch disable_user ,zero 
+0x3fa8 012968 loop ali_mesh_network_layer_check_msg_loop 
+0x3fa9 012969 fetch 1 ,mem_mesh_network_msg_cache_next 
+0x3faa 012970 pincrease 1 
+0x3fab 012971 and pdata ,0x0f ,pdata 
+0x3fac 012972 store 1 ,mem_mesh_network_msg_cache_next 
+0x3fad 012973 mul32 pdata ,5 ,pdata 
+0x3fae 012974 arg mem_mesh_network_msg_cache ,contw 
+0x3faf 012975 iadd contw ,contw 
+0x3fb0 012976 istoret 5 ,contw 
+0x3fb1 012977 rtn 
+:      012979 ali_mesh_network_layer_store_proxy_unicast_address:
+0x3fb2 012980 fetch 1 ,mem_mesh_network_packet_type 
+0x3fb3 012981 rtneq mesh_message_tmall 
+0x3fb4 012982 fetch 2 ,mem_mesh_message_src 
+0x3fb5 012983 store 2 ,mem_mesh_network_proxy_unicast_address 
+0x3fb6 012984 rtn 
+:      012996 ali_mesh_network_layer_recevice_network_pdu_decrypt_netmic32:
+0x3fb7 012997 call ali_mesh_network_load_network_nonce_and_encryptionkey 
+0x3fb8 012998 fetch 1 ,mem_mesh_message_transport_netmic_length 
+0x3fb9 012999 arg mem_mesh_message_dst ,temp 
+0x3fba 013000 call ali_ccm_decrypt 
+0x3fbb 013001 nrtn zero 
+:      013004 ali_mesh_network_layer_recevice_network_pdu_check_dst:
+0x3fbc 013005 bpatchx patch36_0 ,mem_patch36 
+0x3fbd 013006 fetch 1 ,mem_mesh_network_packet_type 
+0x3fbe 013007 sub pdata ,mesh_message_proxy ,null 
+0x3fbf 013008 call ali_mesh_white_filter_check ,zero 
+0x3fc0 013009 fetcht 2 ,mem_mesh_message_dst 
+0x3fc1 013010 call ali_mesh_more_element_check_unicast_address 
+0x3fc2 013011 call ali_mesh_more_found_unicast_address_element ,user 
+0x3fc3 013012 branch ali_mesh_network_layer_recevice_network_pdu_check_src_and_seq ,user 
+0x3fc4 013013 arg 29 ,loopcnt 
+0x3fc5 013014 arg mem_mesh_message_nid_temp ,contw 
+0x3fc6 013015 arg mem_mesh_message_nid ,contr 
+0x3fc7 013016 call memcpy 
+0x3fc8 013017 call ali_mesh_network_layer_recevice_network_pdu_check_dst_group_address 
+0x3fc9 013018 arg 29 ,loopcnt 
+0x3fca 013019 arg mem_mesh_message_nid_temp ,contr 
+0x3fcb 013020 arg mem_mesh_message_nid ,contw 
+0x3fcc 013021 call memcpy 
+0x3fcd 013022 fetch 2 ,mem_mesh_cb_network_relay 
+0x3fce 013023 branch callback_func 
+:      013025 ali_mesh_more_found_unicast_address_element:
+0x3fcf 013026 jam 1 ,mem_mesh_receive_message_count 
+0x3fd0 013027 fetch 2 ,mem_mesh_send_message_src 
+0x3fd1 013028 store 2 ,mem_mesh_receive_message_first_unicast_address 
+0x3fd2 013029 rtn 
+:      013031 ali_mesh_network_layer_recevice_network_pdu_check_dst_group_address:
+0x3fd3 013032 call ali_mesh_more_element_check_group_address 
+0x3fd4 013033 branch ali_mesh_network_layer_recevice_network_pdu_check_src_and_seq ,user 
+0x3fd5 013034 jam 0xff ,mem_mesh_receive_group_address 
+0x3fd6 013035 setarg group_address_0xcfff_little_endian 
+0x3fd7 013036 isub temp ,null 
+0x3fd8 013037 branch ali_mesh_network_layer_recevice_network_pdu_check_src_and_seq ,zero 
+0x3fd9 013038 setarg group_address_0xffff_little_endian 
+0x3fda 013039 isub temp ,null 
+0x3fdb 013040 branch ali_mesh_network_layer_recevice_network_pdu_check_src_and_seq ,zero 
+0x3fdc 013041 rtn 
+:      013044 ali_mesh_network_layer_check_nid_ivi:
+0x3fdd 013045 call disable_user 
+0x3fde 013046 fetcht 1 ,mem_mesh_message_nid 
+0x3fdf 013047 rshift4 temp ,pdata 
+0x3fe0 013048 rshift3 pdata ,pdata 
+0x3fe1 013049 fetchr rega ,1 ,mem_mesh_iv_index + 3 
+0x3fe2 013050 and rega ,0x01 ,rega 
+0x3fe3 013051 isub rega ,null 
+0x3fe4 013052 nrtn zero 
+0x3fe5 013053 and temp ,0x7f ,temp 
+0x3fe6 013054 fetch 1 ,mem_k2_nid 
+0x3fe7 013055 isub temp ,null 
+0x3fe8 013056 nrtn zero 
+0x3fe9 013057 branch enable_user 
+:      013061 ali_mesh_network_layer_recevice_network_pdu_check_src_and_seq:
+0x3fea 013062 arg mem_mesh_tmall_cache_start ,rega 
+0x3feb 013063 arg cache_space_num ,loopcnt 
+:      013064 ali_mesh_network_layer_raverse_src_seq_cache:
+0x3fec 013065 fetcht 2 ,mem_mesh_message_src 
+0x3fed 013066 ifetch 2 ,rega 
+0x3fee 013068 branch ali_mesh_network_layer_find_empty_space ,blank 
+0x3fef 013070 isub temp ,null 
+0x3ff0 013072 branch ali_mesh_network_layer_find_src_space ,zero 
+0x3ff1 013073 increase cache_space_size ,rega 
+0x3ff2 013074 loop ali_mesh_network_layer_raverse_src_seq_cache 
+0x3ff3 013075 arg mem_mesh_tmall_cache_start ,rega 
+:      013077 ali_mesh_network_layer_find_empty_space:
+0x3ff4 013078 istoret 2 ,rega 
+:      013079 ali_mesh_network_layer_find_src_space:
+0x3ff5 013080 storet 2 ,mem_mesh_send_message_dst 
+0x3ff6 013082 add rega ,2 ,regc 
+0x3ff7 013083 ifetch 3 ,regc 
+0x3ff8 013084 store 3 ,mem_mesh_last_message_seq 
+0x3ff9 013085 branch ali_mesh_network_layer_recevice_network_pdu_check_seq_legal 
+:      013089 ali_mesh_network_layer_recevice_network_pdu_check_seq_legal:
+0x3ffa 013091 call ali_mesh_inverse_seq 
+0x3ffb 013093 fetch 3 ,mem_mesh_last_message_seq 
+0x3ffc 013094 fetcht 3 ,mem_mesh_message_seq 
+0x3ffd 013095 isub temp ,null 
+0x3ffe 013096 rtn positive 
+0x3fff 013097 istoret 3 ,regc 
+0x4000 013098 call ali_mesh_inverse_seq 
+0x4001 013099 branch ali_mesh_lower_transport_layer_receive_lower_transport_pdu 
+:      013101 ali_mesh_inverse_seq:
+0x4002 013102 arg mem_mesh_message_seq ,rega 
+0x4003 013103 arg 3 ,loopcnt 
+0x4004 013104 branch inverse_data 
+:      013108 ali_mesh_network_load_network_nonce_and_encryptionkey:
+0x4005 013109 call ali_mesh_network_layer_load_network_nonce 
+:      013110 ali_mesh_upper_transport_layer_load_encryptionkey:
+0x4006 013111 arg mem_k2_encryptionkey ,contr 
+0x4007 013112 branch load_key 
+:      013113 ali_mesh_network_layer_load_network_nonce:
+0x4008 013114 arg mem_mesh_network_nonce ,contw 
+0x4009 013115 setarg network_nonce 
+0x400a 013116 istore 1 ,contw 
+0x400b 013117 fetch 6 ,mem_mesh_message_ttl 
+0x400c 013118 istore 8 ,contw 
+0x400d 013119 branch mesh_generate_nonce 
+:      013122 ali_mesh_network_store_in_mem:
+0x400e 013123 add temp ,-12 ,pdata 
+0x400f 013133 store 1 ,mem_mesh_message_transport_netmic_length 
+0x4010 013134 arg 29 ,loopcnt 
+0x4011 013135 arg mem_mesh_message_nid ,contw 
+0x4012 013136 call clear_mem 
+0x4013 013137 add temp ,-1 ,loopcnt 
+0x4014 013138 arg mem_mesh_message_nid ,contw 
+0x4015 013139 branch memcpy_fast 
+:      013141 ali_mesh_network_layer_relay_access_message:
+0x4016 013142 call ali_mesh_network_layer_init_queue_param 
+0x4017 013143 call ali_mesh_network_layer_check_relay_states 
+0x4018 013144 nrtn user 
+0x4019 013145 call ali_mesh_network_layer_encrypt_relay_package 
+0x401a 013146 jam adv_relay_mesh_message_duration ,mem_mesh_queue_ele_duration 
+0x401b 013147 fetch 1 ,mem_mesh_message_transport_netmic_length 
+0x401c 013148 add pdata ,13 ,temp 
+0x401d 013149 storet 1 ,mem_mesh_queue_ele_len 
+0x401e 013150 increase -1 ,temp 
+0x401f 013151 istoret 1 ,contw 
+0x4020 013152 setarg gap_adtype_mesh_message 
+0x4021 013153 istore 1 ,contw 
+0x4022 013154 add temp ,-1 ,loopcnt 
+0x4023 013155 fetch 7 ,mem_mesh_message_nid 
+0x4024 013156 arg mem_mesh_message_nid ,contr 
+0x4025 013157 call memcpy 
+0x4026 013158 arg mem_mesh_queue_ele_temp ,rega 
+0x4027 013159 call queue_push 
+0x4028 013160 call ali_mesh_network_layer_white_list_fliter 
+0x4029 013161 nrtn user 
+0x402a 013162 branch ali_mesh_bearer_layer_gatt_send_packet_by_network_layer 
+:      013164 ali_mesh_network_layer_white_list_fliter:
+0x402b 013165 fetcht 2 ,mem_mesh_message_dst_temp 
+:      013166 ali_mesh_network_layer_white_list_fliter_check:
+0x402c 013167 call disable_user 
+0x402d 013168 fetch 1 ,mem_mesh_white_list_num 
+0x402e 013169 rtn blank 
+0x402f 013170 iforce loopcnt 
+0x4030 013171 arg mem_mesh_white_list ,contr 
+:      013172 ali_mesh_network_layer_white_list_fliter_check_loop:
+0x4031 013173 ifetch 2 ,contr 
+0x4032 013174 isub temp ,null 
+0x4033 013175 branch enable_user ,zero 
+0x4034 013176 loop ali_mesh_network_layer_white_list_fliter_check_loop 
+0x4035 013177 rtn 
+:      013180 ali_mesh_network_layer_check_relay_states:
+0x4036 013181 call disable_user 
+0x4037 013182 fetch 1 ,mem_mesh_network_packet_type 
+0x4038 013183 rtneq mesh_message_app 
+0x4039 013184 fetch 2 ,mem_mesh_core_feature 
+0x403a 013185 rtnbit1 mesh_feature_disable_relay 
+0x403b 013186 fetch 1 ,mem_mesh_provisioned_flag 
+0x403c 013187 rtnne paired_status 
+0x403d 013188 fetcht 2 ,mem_mesh_message_src 
+0x403e 013189 call ali_mesh_more_element_check_unicast_address 
+0x403f 013190 branch disable_user ,user 
+0x4040 013191 call ali_mesh_network_layer_check_network_mic_cache 
+0x4041 013192 nrtn user 
+0x4042 013193 fetch 1 ,mem_mesh_message_ttl 
+0x4043 013194 branch disable_user ,blank 
+0x4044 013195 pincrease -1 
+0x4045 013196 branch disable_user ,blank 
+0x4046 013197 store 1 ,mem_mesh_message_ttl 
+0x4047 013198 setarg mem_mesh_network_relay_queue 
+0x4048 013199 store 2 ,mem_queue_ptr 
+0x4049 013200 branch enable_user 
+:      013202 ali_mesh_network_layer_encrypt_relay_package:
+0x404a 013203 call ali_mesh_network_load_network_nonce_and_encryptionkey 
+0x404b 013204 fetch 1 ,mem_mesh_message_transport_netmic_length 
+0x404c 013205 arg mem_mesh_message_dst ,temp 
+0x404d 013206 call ali_ccm_encrypt 
+0x404e 013207 branch ali_mesh_encrypt_obfuscation_deceypt_recevie_message 
+:      013211 ali_mesh_network_layer_check_network_mic_cache:
+0x404f 013212 setarg mem_mesh_transport_message_mic_cache 
+0x4050 013213 store 2 ,mem_mesh_mic_cache_ptr 
+0x4051 013214 branch ali_mesh_base_adt_cache 
+:      013218 ali_mesh_network_layer_send_access_message:
+0x4052 013219 bpatchx patch36_1 ,mem_patch36 
+0x4053 013220 call ali_mesh_network_layer_send_access_message_encrypt_netmic 
+0x4054 013221 call ali_mesh_network_layer_send_access_message_encrypt_obfuscation 
+0x4055 013222 branch ali_mesh_bearer_layer_send_packet_by_network_layer 
+:      013227 ali_mesh_network_layer_send_access_message_encrypt_netmic:
+0x4056 013228 fetch 1 ,mem_mesh_lower_transport_layer_payload_len 
+0x4057 013229 add pdata ,2 ,rega 
+0x4058 013230 pincrease 4 
+0x4059 013231 store 1 ,mem_mesh_lower_transport_layer_payload_len 
+0x405a 013232 arg mem_mesh_send_upper_layer_dst ,temp 
+0x405b 013233 branch ali_mesh_network_layer_encrypt_by_network_nonce 
+:      013238 ali_mesh_network_layer_encrypt_by_network_nonce:
+0x405c 013239 call ali_mesh_network_load_network_nonce_and_encryptionkey 
+0x405d 013240 copy rega ,pdata 
+0x405e 013241 branch ali_ccm_encrypt 
+:      013244 ali_mesh_network_layer_send_access_message_encrypt_obfuscation:
+0x405f 013245 branch ali_mesh_encrypt_obfuscation_deceypt_send_message 
+:      013248 ali_mesh_network_layer_check_gatt_relay_packet:
+0x4060 013249 call ali_mesh_network_layer_init_gatt_queue_param 
+0x4061 013250 call queue_empty 
+0x4062 013251 rtn blank 
+0x4063 013252 call le_fifo_check_nearly_full 
+0x4064 013253 nrtn blank 
+0x4065 013254 arg mem_mesh_queue_ele_temp ,rega 
+0x4066 013255 call queue_pop 
+0x4067 013256 nrtn user 
+0x4068 013257 branch ali_mesh_send_ble_data 
+:      013261 mesh_generate_nonce:
+0x4069 013262 fetch 4 ,mem_mesh_iv_index 
+0x406a 013263 istore 4 ,contw 
+0x406b 013264 add contw ,-13 ,pdata 
+0x406c 013265 store 2 ,mem_nonce_ptr 
+0x406d 013266 rtn 
+:      013270 ali_mesh_network_layer_init_queue_param:
+0x406e 013271 setarg mem_mesh_network_relay_queue_each_size 
+0x406f 013272 store 2 ,mem_queue_ptr 
+0x4070 013273 rtn 
+:      013275 ali_mesh_network_layer_queue_init:
+0x4071 013276 call ali_mesh_network_layer_init_queue_param 
+0x4072 013277 branch queue_init 
+:      013280 ali_mesh_ble_adv:
+0x4073 013281 call le_set_config_more_data 
+0x4074 013282 fetch 1 ,mem_mesh_provisioned_flag 
+0x4075 013283 beq unprovisioned_beacon_status ,ali_mesh_ble_adv_mesh_beacon 
+0x4076 013284 beq paired_status ,ali_mesh_ble_adv_network_id 
+0x4077 013285 beq wait_receive_appkey ,ali_mesh_ble_adv_network_id 
+0x4078 013286 rtn 
+:      013288 ali_mesh_ble_adv_network_id:
+0x4079 013290 setsect 0 ,0x10214 
+0x407a 013291 setsect 1 ,0xc080 
+0x407b 013292 setsect 2 ,0x28030 
+0x407c 013293 setsect 3 ,0x3060 
+0x407d 013294 store 9 ,mem_le_adv_data_len 
+0x407e 013295 setarg 0x182816 
+0x407f 013296 istore 4 ,contw 
+0x4080 013297 fetch 8 ,mem_mesh_network_id 
+0x4081 013298 istore 8 ,contw 
+0x4082 013299 rtn 
+:      013301 ali_mesh_ble_adv_mesh_beacon:
+0x4083 013302 call ali_mesh_config_device_uuid_by_three_tuple 
+0x4084 013304 setsect 0 ,0x1021d 
+0x4085 013305 setsect 1 ,0xc080 
+0x4086 013306 setsect 2 ,0x27030 
+0x4087 013307 setsect 3 ,0x5460 
+0x4088 013308 store 9 ,mem_le_adv_data_len 
+0x4089 013309 setarg 0x182716 
+0x408a 013310 istore 3 ,contw 
+0x408b 013311 arg mem_mesh_device_uuid ,contr 
+0x408c 013312 call memcpy16 
+0x408d 013313 fetch 2 ,mem_mesh_oob_information 
+0x408e 013314 istore 2 ,contw 
+0x408f 013315 rtn 
+:      013321 mesh_le_receive_data:
+0x4090 013322 bpatchx patch36_2 ,mem_patch36 
+0x4091 013323 fetch 2 ,mem_le_att_handle 
+0x4092 013324 beq mesh_proxy_data_in_handle ,ali_mesh_receive_ble_data_proxy_data_in 
+0x4093 013325 beq mesh_provisioning_data_in_handle ,ali_mesh_receive_ble_data_provisioning_data_in 
+0x4094 013326 rtn 
+:      013328 ali_mesh_receive_ble_data_proxy_data_in:
+0x4095 013329 copy regb ,temp 
+0x4096 013330 ifetch 1 ,rega 
+0x4097 013331 beq mesh_proxy_message_type_network_pdu ,ali_mesh_network_layer_recevice_network_pdu_proxy_control 
+0x4098 013332 beq mesh_proxy_message_type_proxy_configuration ,ali_mesh_network_layer_recevice_proxy_configuration_messages 
+0x4099 013333 rtn 
+:      013334 ali_mesh_network_layer_recevice_proxy_configuration_messages:
+0x409a 013342 call ali_mesh_network_store_in_mem 
+0x409b 013343 fetch 1 ,mem_mesh_message_transport_netmic_length 
+0x409c 013344 pincrease -4 
+0x409d 013345 store 1 ,mem_mesh_message_transport_netmic_length 
+0x409e 013346 call ali_mesh_network_layer_check_nid_ivi 
+0x409f 013347 nrtn user 
+0x40a0 013348 call ali_mesh_encrypt_obfuscation_deceypt_recevie_message 
+0x40a1 013349 fetch 1 ,mem_mesh_message_ttl 
+0x40a2 013350 bbit1 bit_ctl ,ali_mesh_recevice_proxy_configuration_messages_decrypt 
+0x40a3 013351 rtn 
+:      013353 ali_mesh_recevice_proxy_configuration_messages_decrypt:
+0x40a4 013354 call ali_mesh_network_load_proxy_nonce_and_encryptionkey 
+0x40a5 013355 fetch 1 ,mem_mesh_message_transport_netmic_length 
+0x40a6 013356 arg mem_mesh_message_dst ,temp 
+0x40a7 013357 call ali_ccm_decrypt_64bit 
+0x40a8 013358 nrtn zero 
+0x40a9 013361 call ali_mesh_white_filter_check 
+0x40aa 013362 fetch 1 ,mem_mesh_message_proxy_transportpdu_opcode 
+0x40ab 013363 beq proxy_opcode_set_filter_type ,ali_mesh_proxy_configuration_message_set_filter_type 
+0x40ac 013364 beq proxy_opcode_add_addr_to_filter ,ali_mesh_proxy_configuration_message_add_addr_to_filter 
+0x40ad 013365 rtn 
+:      013367 ali_mesh_proxy_configuration_message_add_addr_to_filter:
+0x40ae 013368 fetchr loopcnt ,1 ,mem_mesh_message_transport_netmic_length 
+0x40af 013369 increase -3 ,loopcnt 
+0x40b0 013371 rshift loopcnt ,pdata 
+0x40b1 013372 fetcht 2 ,mem_mesh_white_list_num 
+0x40b2 013373 iadd temp ,pdata 
+0x40b3 013374 sub pdata ,8 ,null 
+0x40b4 013375 nrtn positive 
+0x40b5 013376 store 2 ,mem_mesh_white_list_num 
+0x40b6 013377 arg mem_mesh_white_list ,contw 
+0x40b7 013378 lshift temp ,pdata 
+0x40b8 013379 iadd contw ,contw 
+0x40b9 013380 arg mem_mesh_message_proxy_transportpdu_parameters ,contr 
+0x40ba 013381 call memcpy 
+0x40bb 013382 fetch 1 ,mem_mesh_addressed_filter_type 
+0x40bc 013383 branch ali_mesh_proxy_configuration_message_filter_status 
+:      013385 ali_mesh_proxy_configuration_message_set_filter_type:
+0x40bd 013386 ifetch 1 ,contr 
+0x40be 013387 store 1 ,mem_mesh_addressed_filter_type 
+:      013388 ali_mesh_proxy_configuration_message_filter_status:
+0x40bf 013389 store 1 ,mem_mesh_filter_status_message_filtertype 
+0x40c0 013390 fetch 2 ,mem_mesh_white_list_num 
+0x40c1 013391 byteswap pdata ,pdata 
+0x40c2 013392 store 2 ,mem_mesh_filter_status_message_listsize 
+0x40c3 013394 jam proxy_opcode_filter_status ,mem_mesh_filter_status_message_opcode 
+0x40c4 013396 fetch 9 ,mem_mesh_message_nid 
+0x40c5 013397 store 9 ,mem_mesh_send_upper_layer_ivi_and_nid 
+0x40c6 013398 fetch 2 ,mem_mesh_send_message_src 
+0x40c7 013399 store 2 ,mem_mesh_send_upper_layer_src 
+0x40c8 013401 call ali_mesh_upper_transport_layer_send_access_message_calc_seq 
+0x40c9 013402 call ali_mesh_upper_transport_layer_send_access_message_add_seq 
+0x40ca 013404 call ali_mesh_network_load_proxy_nonce_and_encryptionkey 
+0x40cb 013405 setarg 6 
+0x40cc 013406 arg mem_mesh_send_upper_layer_dst ,temp 
+0x40cd 013407 call ali_ccm_encrypt_64bit 
+0x40ce 013408 call ali_mesh_network_layer_send_access_message_encrypt_obfuscation 
+0x40cf 013411 arg 22 ,rega 
+0x40d0 013412 arg mesh_proxy_data_out_handle ,temp 
+0x40d1 013413 call le_att_malloc_tx_notify 
+0x40d2 013414 setarg mesh_proxy_message_type_proxy_configuration 
+0x40d3 013415 istore 1 ,contw 
+0x40d4 013416 arg mem_mesh_send_upper_layer_ivi_and_nid ,contr 
+0x40d5 013417 branch memcpy32 
+:      013419 ali_mesh_receive_ble_data_provisioning_data_in:
+0x40d6 013420 jam mesh_message_proxy ,mem_mesh_fast_pair_packet_type 
+0x40d7 013421 copy regb ,temp 
+0x40d8 013422 copy rega ,contr 
+0x40d9 013423 branch ali_mesh_receive_adtype_manufacturer_specific 
+:      013426 ali_mesh_network_load_proxy_nonce_and_encryptionkey:
+0x40da 013427 arg mem_mesh_proxy_nonce ,contw 
+0x40db 013428 setarg proxy_nonce 
+0x40dc 013429 istore 2 ,contw 
+0x40dd 013430 fetch 5 ,mem_mesh_message_seq 
+0x40de 013431 istore 7 ,contw 
+0x40df 013432 call mesh_generate_nonce 
+0x40e0 013434 branch ali_mesh_upper_transport_layer_load_encryptionkey 
+:      013436 ali_mesh_network_layer_recevice_network_pdu_proxy_control:
+0x40e1 013437 jam mesh_message_proxy ,mem_mesh_network_packet_type 
+0x40e2 013438 branch ali_mesh_network_layer_recevice_network_pdu 
+:      013441 ali_mesh_proxy_process_bb_event:
+0x40e3 013442 copy regc ,pdata 
+0x40e4 013443 beq bt_evt_le_disconnected ,mesh_ble_start_adv 
+0x40e5 013444 beq bt_evt_le_connected ,app_ble_conn_event 
+0x40e6 013445 rtn 
+:      013447 app_ble_conn_event:
+0x40e7 013448 branch ali_mesh_proxy_white_list_clear 
+:      013452 mesh_ble_start_adv:
+0x40e8 013453 setarg 0 
+0x40e9 013454 store 2 ,mem_mesh_network_proxy_unicast_address 
+0x40ea 013455 branch app_ble_start_adv 
+:      013457 ali_mesh_proxy_white_list_clear:
+0x40eb 013458 setarg 0 
+0x40ec 013459 store 2 ,mem_mesh_white_list_num 
+0x40ed 013460 arg mem_mesh_white_list ,contw 
+0x40ee 013461 arg 16 ,loopcnt 
+0x40ef 013462 branch memset0 
+:      013469 ali_mesh_send_ble_data:
+0x40f0 013471 call le_fifo_check_nearly_full 
+0x40f1 013472 nrtn blank 
+0x40f2 013474 fetch 1 ,mem_mesh_queue_ele_len 
+0x40f3 013475 add pdata ,-1 ,rega 
+0x40f4 013476 arg mesh_proxy_data_out_handle ,temp 
+0x40f5 013477 call le_att_malloc_tx_notify 
+0x40f6 013478 setarg mesh_proxy_message_type_network_pdu 
+0x40f7 013479 istore 1 ,contw 
+0x40f8 013480 arg mem_mesh_queue_ele_payload + 2 ,contr 
+0x40f9 013481 branch memcpy32 
+:      013483 ali_mesh_send_pairing_data:
+0x40fa 013484 fetch 1 ,mem_mesh_fast_pair_packet_type 
+0x40fb 013485 rtneq mesh_message_tmall 
+0x40fc 013486 fetch 2 ,mem_ui_state_map 
+0x40fd 013487 rtnbit0 ui_state_ble_connected 
+0x40fe 013488 call le_fifo_check_nearly_full 
+0x40ff 013489 nrtn blank 
+0x4100 013490 fetch 1 ,mem_mesh_adv_data_len 
+0x4101 013491 add pdata ,-5 ,rega 
+0x4102 013492 arg mesh_provisioning_data_out_handle ,temp 
+0x4103 013493 call le_att_malloc_tx_notify 
+0x4104 013494 arg mem_mesh_adv_data + 5 ,contr 
+0x4105 013495 branch memcpy32 
+:      013497 ali_mesh_white_filter_check:
+0x4106 013498 fetch 2 ,mem_mesh_white_list 
+0x4107 013499 nrtn blank 
+0x4108 013500 fetch 2 ,mem_mesh_message_src 
+0x4109 013501 store 2 ,mem_mesh_white_list 
+:      013502 ali_mesh_white_list_num_increase:
+0x410a 013503 fetch 2 ,mem_mesh_white_list_num 
+0x410b 013504 pincrease 1 
+0x410c 013505 store 2 ,mem_mesh_white_list_num 
+0x410d 013506 rtn 
+:      013509 sha_endian_swap2:
+0x410e 013510 ifetch 4 ,contr 
+0x410f 013511 force 4 ,rega 
+0x4110 013512 increase 3 ,contw 
+:      013513 sha_endian_loop:
+0x4111 013514 istore 1 ,contw 
+0x4112 013515 rshift8 pdata ,pdata 
+0x4113 013516 increase -2 ,contw 
+0x4114 013517 increase -1 ,rega 
+0x4115 013518 nbranch sha_endian_loop ,zero 
+0x4116 013519 increase 5 ,contw 
+0x4117 013520 loop sha_endian_swap2 
+0x4118 013521 rtn 
+:      013524 sha_getw:
+0x4119 013525 lshift2 queue ,pdata 
+0x411a 013526 iadd timeup ,contr 
+0x411b 013527 ifetch 4 ,contr 
+0x411c 013528 rtn 
+:      013530 sha_r:
+0x411d 013531 force 16 ,alarm 
+0x411e 013532 arg mem_dat ,timeup 
+:      013533 sha_r_loop:
+0x411f 013534 add alarm ,-7 ,queue 
+0x4120 013535 call sha_getw 
+0x4121 013536 iforce temp 
+0x4122 013537 add alarm ,-16 ,queue 
+0x4123 013538 call sha_getw 
+0x4124 013539 iadd temp ,temp 
+0x4125 013540 add alarm ,-2 ,queue 
+0x4126 013541 call sha_getw 
+0x4127 013542 shasx pdata ,1 ,pdata 
+0x4128 013543 iadd temp ,temp 
+0x4129 013544 add alarm ,-15 ,queue 
+0x412a 013545 call sha_getw 
+0x412b 013546 shasx pdata ,0 ,pdata 
+0x412c 013547 iadd temp ,temp 
+0x412d 013548 lshift2 alarm ,pdata 
+0x412e 013549 iadd timeup ,contw 
+0x412f 013550 istoret 4 ,contw 
+0x4130 013551 increase 1 ,alarm 
+0x4131 013552 compare 64 ,alarm ,0xff 
+0x4132 013553 nbranch sha_r_loop ,true 
+0x4133 013554 rtn 
+:      013557 sha_init:
+0x4134 013558 arg memh0 ,contr 
+0x4135 013559 force 7 ,regext_index 
+:      013560 sha_init_0:
+0x4136 013561 ifetch 4 ,contr 
+0x4137 013562 iforce regext 
+0x4138 013563 increase -1 ,regext_index 
+0x4139 013564 branch sha_init_0 ,positive 
+0x413a 013565 rtn 
+:      013567 sha:
+0x413b 013568 bpatchx patch36_3 ,mem_patch36 
+0x413c 013569 call sha_r 
+0x413d 013570 arg memahbak ,contw 
+0x413e 013571 force 0 ,regext_index 
+:      013572 sha_0:
+0x413f 013573 deposit regext 
+0x4140 013574 istore 4 ,contw 
+0x4141 013575 increase 1 ,regext_index 
+0x4142 013576 compare 8 ,regext_index ,0xff 
+0x4143 013577 nbranch sha_0 ,true 
+0x4144 013580 arg ble_mesh_sha256_addr ,timeup 
+0x4145 013583 arg mem_dat ,alarm 
+0x4146 013584 force 64 ,loopcnt 
+:      013585 sha_loop:
+0x4147 013586 ifetcht 4 ,alarm 
+0x4148 013587 ifetch 4 ,timeup 
+0x4149 013588 increase 4 ,timeup 
+0x414a 013589 increase 4 ,alarm 
+0x414b 013590 iadd temp ,pdata 
+0x414c 013591 force 7 ,regext_index 
+0x414d 013592 iadd regext ,temp 
+0x414e 013593 force 4 ,regext_index 
+0x414f 013594 shasx regext ,3 ,pdata 
+0x4150 013595 iadd temp ,temp 
+0x4151 013596 force 5 ,regext_index 
+0x4152 013597 deposit regext 
+0x4153 013598 force 6 ,regext_index 
+0x4154 013599 ixor regext ,pdata 
+0x4155 013600 force 4 ,regext_index 
+0x4156 013601 iand regext ,pdata 
+0x4157 013602 force 6 ,regext_index 
+0x4158 013603 ixor regext ,pdata 
+0x4159 013604 iadd temp ,temp 
+0x415a 013605 force 7 ,regext_index 
+0x415b 013606 copy temp ,regext 
+0x415c 013607 force 3 ,regext_index 
+0x415d 013608 deposit regext 
+0x415e 013609 iadd temp ,regext 
+0x415f 013610 force 0 ,regext_index 
+0x4160 013611 deposit regext 
+0x4161 013612 force 1 ,regext_index 
+0x4162 013613 iand regext ,temp 
+0x4163 013614 ior regext ,pdata 
+0x4164 013615 force 2 ,regext_index 
+0x4165 013616 iand regext ,pdata 
+0x4166 013617 ior temp ,temp 
+0x4167 013618 force 0 ,regext_index 
+0x4168 013619 shasx regext ,2 ,pdata 
+0x4169 013620 iadd temp ,pdata 
+0x416a 013621 force 7 ,regext_index 
+0x416b 013622 iadd regext ,regext 
+0x416c 013623 regexrot 
+0x416d 013624 loop sha_loop 
+0x416e 013625 arg memahbak ,contr 
+0x416f 013626 force 0 ,regext_index 
+:      013627 sha_1:
+0x4170 013628 ifetch 4 ,contr 
+0x4171 013629 iadd regext ,regext 
+0x4172 013630 increase 1 ,regext_index 
+0x4173 013631 compare 8 ,regext_index ,0xff 
+0x4174 013632 nbranch sha_1 ,true 
+0x4175 013633 rtn 
+:      013637 sha_result:
+0x4176 013638 arg memresult ,contw 
+0x4177 013639 force 7 ,regext_index 
+:      013640 sha_regext_save:
+0x4178 013641 deposit regext 
+0x4179 013642 istore 4 ,contw 
+0x417a 013643 increase -1 ,regext_index 
+0x417b 013644 branch sha_regext_save ,positive 
+0x417c 013645 rtn 
+:      013650 ali_mesh_upper_transport_layer_receive_unsegmented_access_message:
+0x417d 013651 bbit0 transport_head_bit_akf ,ali_mesh_uuper_transport_layer_decrypt_unsegment_access_by_device_key 
+:      013653 ali_mesh_uuper_transport_layer_decrypt_unsegment_access_by_application_key:
+0x417e 013654 call ali_mesh_upper_transport_layer_load_application_nonce_and_application_key 
+0x417f 013655 branch ali_mesh_upper_transport_layer_decrypt_unsegmented_message 
+:      013657 ali_mesh_uuper_transport_layer_decrypt_unsegment_access_by_device_key:
+0x4180 013658 call ali_mesh_upper_transport_layer_load_device_nonce_and_device_key 
+0x4181 013659 branch ali_mesh_upper_transport_layer_decrypt_unsegmented_message 
+:      013662 ali_mesh_upper_transport_layer_decrypt_unsegmented_message:
+0x4182 013664 fetch 1 ,mem_mesh_message_transport_netmic_length 
+0x4183 013665 pincrease -7 
+0x4184 013669 arg mem_mesh_message_transport_unsegmented_access_messagepdu ,alarm 
+0x4185 013670 call disable_user 
+0x4186 013671 branch ali_mesh_upper_transport_layer_decrypt_message 
+:      013675 ali_mesh_upper_transport_layer_receive_segmented_access_message:
+0x4187 013676 fetch 1 ,mem_mesh_message_transport_head 
+0x4188 013677 bbit0 transport_head_bit_akf ,ali_mesh_uuper_transport_layer_decrypt_segment_access_by_device_key 
+:      013678 ali_mesh_uuper_transport_layer_decrypt_segment_access_by_application_key:
+0x4189 013679 call ali_mesh_upper_transport_layer_load_application_nonce_and_application_key 
+0x418a 013680 branch ali_mesh_upper_transport_layer_decrypt_segmented_message 
+:      013681 ali_mesh_uuper_transport_layer_decrypt_segment_access_by_device_key:
+0x418b 013682 call ali_mesh_upper_transport_layer_load_device_nonce_and_device_key 
+0x418c 013683 branch ali_mesh_upper_transport_layer_decrypt_segmented_message 
+:      013686 ali_mesh_upper_transport_layer_decrypt_segmented_message:
+0x418d 013687 fetch 1 ,mem_mesh_aszmic 
+0x418e 013688 ncall enable_user ,blank 
+0x418f 013689 call disable_user ,blank 
+0x4190 013690 fetch 1 ,mem_mesh_segmented_access_message_current_length 
+0x4191 013691 pincrease -4 
+0x4192 013692 jam 0 ,mem_mesh_segmented_access_message_current_length 
+0x4193 013693 arg mem_mesh_segmented_access_message_segment ,alarm 
+:      013697 ali_mesh_upper_transport_layer_decrypt_message:
+0x4194 013698 copy alarm ,temp 
+0x4195 013699 call ali_mesh_upper_transport_layer_decrypt_message_decrypt_transmic 
+0x4196 013700 nrtn zero 
+0x4197 013701 call ali_mesh_upper_transport_layer_check_transport_mic_cache 
+0x4198 013702 nrtn user 
+0x4199 013703 fetch 2 ,mem_ccm_data_ptr 
+0x419a 013704 copy pdata ,alarm 
+0x419b 013705 branch ali_mesh_access_layer_resolve_message 
+:      013707 ali_mesh_upper_transport_layer_decrypt_message_decrypt_transmic:
+0x419c 013708 nbranch ali_ccm_decrypt ,user 
+0x419d 013709 pincrease -4 
+0x419e 013710 branch ali_ccm_decrypt_64bit 
+:      013713 ali_mesh_upper_transport_layer_check_transport_mic_cache:
+0x419f 013714 setarg mem_mesh_access_message_mic_cache 
+0x41a0 013715 store 2 ,mem_mesh_mic_cache_ptr 
+0x41a1 013716 branch ali_mesh_base_adt_cache 
+:      013720 ali_mesh_upper_transport_layer_load_application_nonce_and_application_key:
+0x41a2 013721 call ali_mesh_upper_transport_layer_load_application_nonce 
+:      013722 ali_mesh_upper_transport_layer_load_application_key:
+0x41a3 013723 arg mem_mesh_application_key ,contr 
+0x41a4 013724 branch load_key 
+:      013725 ali_mesh_upper_transport_layer_load_application_nonce:
+0x41a5 013726 arg mem_mesh_application_nonce ,contw 
+0x41a6 013727 setarg application_nonce 
+0x41a7 013728 istore 1 ,contw 
+0x41a8 013729 fetch 1 ,mem_mesh_aszmic 
+0x41a9 013730 arg 0 ,temp 
+0x41aa 013731 nsetflag blank ,7 ,temp 
+0x41ab 013732 istoret 1 ,contw 
+0x41ac 013733 fetch 7 ,mem_mesh_message_seq 
+0x41ad 013734 istore 7 ,contw 
+0x41ae 013735 branch mesh_generate_nonce 
+:      013739 ali_mesh_upper_transport_layer_load_device_nonce_and_device_key:
+0x41af 013740 call ali_mesh_upper_transport_layer_load_device_nonce 
+:      013741 ali_mesh_upper_transport_layer_load_device_key:
+0x41b0 013742 arg mem_mesh_device_key ,contr 
+0x41b1 013743 branch load_key 
+:      013744 ali_mesh_upper_transport_layer_load_device_nonce:
+0x41b2 013745 arg mem_mesh_device_nonce ,contw 
+0x41b3 013746 setarg device_nonce 
+0x41b4 013747 branch ali_mesh_upper_transport_layer_load_application_nonce + 2 
+:      013751 ali_mesh_upper_transport_layer_send_access_message:
+:      013752 ali_mesh_upper_transport_layer_send_access_message_without_cleat_tx_buffer:
+0x41b5 013753 bpatchx patch36_4 ,mem_patch36 
+0x41b6 013755 call ali_mesh_upper_transport_layer_send_access_message_add_nid_src_ttl_seq_dst 
+0x41b7 013758 call ali_mesh_upper_transport_layer_store_packet_header 
+0x41b8 013759 rtn user 
+0x41b9 013760 call ali_mesh_upper_transport_layer_store_unsegment_msg_original_access_pdu 
+0x41ba 013762 call ali_mesh_upper_transport_layer_init_queue_param 
+0x41bb 013764 arg mem_mesh_upper_tran_layer_queue_temp ,rega 
+0x41bc 013765 branch queue_push 
+:      013769 ali_mesh_upper_transport_layer_store_packet_header:
+0x41bd 013770 call disable_user 
+0x41be 013771 arg upper_retry_count_status ,temp 
+0x41bf 013773 fetch 1 ,mem_mesh_network_packet_type 
+0x41c0 013774 sub pdata ,mesh_message_proxy ,null 
+0x41c1 013775 setflag zero ,bit_upper_flag_proxy_control ,temp 
+0x41c2 013776 storet 1 ,mem_mesh_upper_tran_layer_temp_packet_flag 
+0x41c3 013777 fetch 9 ,mem_mesh_send_upper_layer_ivi_and_nid 
+0x41c4 013778 store 9 ,mem_mesh_upper_tran_layer_temp_packet_header_ivi_nid 
+0x41c5 013779 fetch 1 ,mem_mesh_access_layer_payload_vendor_command 
+0x41c6 013780 rtnne vendor_message_attr_indication 
+0x41c7 013781 fetch 1 ,mem_mesh_provisioned_flag 
+0x41c8 013782 bne paired_status ,enable_user 
+0x41c9 013783 fetch 1 ,mem_mesh_access_layer_payload_vendor_tid 
+0x41ca 013784 store 1 ,mem_mesh_upper_tran_layer_temp_packet_tid 
+0x41cb 013785 fetch 1 ,mem_mesh_upper_tran_layer_temp_packet_flag 
+0x41cc 013786 pincrease upper_retry_count_indication 
+0x41cd 013787 set1 bit_upper_flag_vendor_indication ,pdata 
+0x41ce 013788 store 1 ,mem_mesh_upper_tran_layer_temp_packet_flag 
+0x41cf 013789 rtn 
+:      013792 ali_mesh_upper_transport_layer_store_unsegment_msg_original_access_pdu:
+0x41d0 013793 fetch 1 ,mem_mesh_access_layer_payload_len 
+0x41d1 013794 copy pdata ,loopcnt 
+0x41d2 013795 store 1 ,mem_mesh_upper_tran_layer_temp_packet_length 
+0x41d3 013796 fetch 1 ,mem_mesh_message_transport_head 
+0x41d4 013797 store 1 ,mem_mesh_upper_tran_layer_temp_pakcet_akf_aid 
+0x41d5 013798 arg mem_mesh_upper_tran_layer_temp_pakcet_upper_tran_access_pdu ,contw 
+0x41d6 013799 arg mem_mesh_access_layer_payload ,contr 
+0x41d7 013800 branch memcpy 
+:      013804 ali_mesh_upper_transport_layer_control_packet:
+:      013809 ali_mesh_upper_transport_layer_control_packet_deal:
+0x41d8 013810 fetch 1 ,mem_mesh_upper_tran_layer_packet_advertising 
+0x41d9 013811 nrtn blank 
+0x41da 013812 call ali_mesh_upper_transport_layer_init_queue_param 
+0x41db 013813 arg mem_mesh_upper_tran_layer_queue_temp ,rega 
+0x41dc 013814 call queue_get_new_ele 
+0x41dd 013815 nrtn user 
+0x41de 013817 fetcht 1 ,mem_mesh_upper_tran_layer_temp_packet_flag 
+0x41df 013818 and temp ,data_upper_flag_max_retry_count ,pdata 
+0x41e0 013819 branch ali_mesh_upper_transport_layer_queue_pop ,blank 
+0x41e1 013821 jam packet_in_bearer ,mem_mesh_upper_tran_layer_packet_advertising 
+0x41e2 013823 call ali_mesh_upper_transport_layer_control_packet_load_header 
+0x41e3 013825 fetcht 1 ,mem_mesh_upper_tran_layer_temp_packet_flag 
+0x41e4 013826 call ali_mesh_upper_transport_layer_control_packet_load_app_control 
+0x41e5 013827 store 1 ,mem_mesh_upper_tran_layer_packet_tid 
+0x41e6 013829 fetch 1 ,mem_mesh_upper_tran_layer_packet_type 
+0x41e7 013830 isolate1 bit_upper_flag_proxy_control ,temp 
+0x41e8 013831 setflag true ,bit_uuper_tran_proxy_message ,pdata 
+0x41e9 013832 store 1 ,mem_mesh_upper_tran_layer_packet_type 
+0x41ea 013840 set1 bit_upper_flag_retransmit ,temp 
+0x41eb 013842 increase -1 ,temp 
+0x41ec 013843 istoret 1 ,regb 
+0x41ed 013845 fetcht 1 ,mem_mesh_upper_tran_layer_temp_packet_flag 
+0x41ee 013846 isolate1 bit_upper_flag_retransmit ,temp 
+0x41ef 013847 nbranch ali_mesh_upper_transport_layer_control_packet_encrypt_access ,true 
+0x41f0 013848 fetcht 1 ,mem_mesh_upper_tran_layer_temp_packet_length 
+0x41f1 013849 storet 1 ,mem_mesh_upper_transport_layer_payload_len 
+0x41f2 013850 copy temp ,loopcnt 
+0x41f3 013851 arg mem_mesh_access_layer_payload ,contw 
+0x41f4 013852 arg mem_mesh_upper_tran_layer_temp_pakcet_upper_tran_access_pdu ,contr 
+0x41f5 013853 call memcpy 
+0x41f6 013855 sub temp ,unsegmented_access_message_max_upper_transport_access_pdu_len ,null 
+0x41f7 013856 nbranch ali_mesh_upper_transport_layer_control_packet_segment_msg ,positive 
+:      013857 ali_mesh_upper_transport_layer_control_packet_unsegment_msg:
+0x41f8 013858 branch ali_mesh_lower_transport_layer_send_unsegmented_access_message 
+:      013861 ali_mesh_upper_transport_layer_control_packet_segment_msg:
+0x41f9 013862 fetch 4 ,mem_mesh_upper_tran_layer_temp_segmented_pakcet_seqzero 
+0x41fa 013863 store 4 ,mem_mesh_segmented_lower_transport_layer_segzero 
+0x41fb 013864 branch ali_mesh_upper_transport_layer_split_segmented_msg_to_lower_tran_layer 
+:      013867 ali_mesh_upper_transport_layer_control_packet_load_header:
+0x41fc 013868 fetch 1 ,mem_mesh_upper_tran_layer_temp_pakcet_akf_aid 
+0x41fd 013869 store 1 ,mem_mesh_message_transport_head 
+0x41fe 013871 fetch 9 ,mem_mesh_upper_tran_layer_temp_packet_header_ivi_nid 
+0x41ff 013872 store 9 ,mem_mesh_send_upper_layer_ivi_and_nid 
+0x4200 013873 store 9 ,mem_mesh_message_nid 
+0x4201 013874 rtn 
+:      013877 ali_mesh_upper_transport_layer_control_packet_load_app_control:
+0x4202 013878 jam upper_tran_tmall_message ,mem_mesh_upper_tran_layer_packet_type 
+0x4203 013879 fetch 1 ,mem_mesh_upper_tran_layer_temp_packet_tid 
+0x4204 013880 isolate1 bit_upper_flag_vendor_indication ,temp 
+0x4205 013881 rtn true 
+0x4206 013882 setarg 0 
+0x4207 013883 rtn 
+:      013885 ali_mesh_store_tran_package_type:
+0x4208 013886 add rega ,element_device_tran_package_type ,contw 
+0x4209 013887 istore 1 ,contw 
+0x420a 013888 rtn 
+:      013891 ali_mesh_upper_transport_layer_queue_pop:
+0x420b 013892 jam 0 ,mem_mesh_upper_tran_layer_packet_tid 
+0x420c 013893 call ali_mesh_upper_transport_layer_init_queue_param 
+0x420d 013894 arg mem_mesh_upper_tran_layer_queue_temp ,rega 
+0x420e 013895 branch queue_pop 
+:      013897 ali_mesh_upper_transport_layer_control_packet_encrypt_access:
+0x420f 013898 call ali_mesh_upper_transport_layer_send_access_message_calc_seq 
+0x4210 013899 call ali_mesh_upper_transport_layer_send_access_message_add_seq 
+0x4211 013900 fetch 9 ,mem_mesh_send_upper_layer_ivi_and_nid 
+0x4212 013901 store 9 ,mem_mesh_upper_tran_layer_temp_packet_header_ivi_nid 
+0x4213 013902 call ali_mesh_upper_transport_layer_control_packet_encrypt_access_load_payload 
+0x4214 013903 setarg 0 
+0x4215 013904 store 1 ,mem_mesh_aszmic 
+0x4216 013905 call ali_mesh_upper_transport_layer_calc_transport_mic 
+0x4217 013907 fetcht 1 ,mem_mesh_upper_transport_layer_payload_len 
+0x4218 013908 storet 1 ,mem_mesh_upper_tran_layer_temp_packet_length 
+0x4219 013909 copy temp ,loopcnt 
+0x421a 013910 arg mem_mesh_access_layer_payload ,contr 
+0x421b 013911 arg mem_mesh_upper_tran_layer_temp_pakcet_upper_tran_access_pdu ,contw 
+0x421c 013912 call memcpy 
+0x421d 013914 sub temp ,unsegmented_access_message_max_upper_transport_access_pdu_len ,null 
+0x421e 013915 nbranch ali_mesh_upper_transport_layer_control_packet_encrypt_access_segment_msg ,positive 
+:      013916 ali_mesh_upper_transport_layer_control_packet_encrypt_access_unsegment_msg:
+0x421f 013917 arg mem_mesh_upper_tran_layer_temp_packet_transmit_delay ,rega 
+0x4220 013918 call queue_store_new_ele 
+0x4221 013919 branch ali_mesh_lower_transport_layer_send_unsegmented_access_message 
+:      013921 ali_mesh_upper_transport_layer_control_packet_encrypt_access_segment_msg:
+0x4222 013922 call ali_mesh_upper_transport_layer_send_segmented_access_message_get_seqzero_segon 
+0x4223 013923 fetch 4 ,mem_mesh_segmented_lower_transport_layer_segzero 
+0x4224 013924 store 4 ,mem_mesh_upper_tran_layer_temp_segmented_pakcet_seqzero 
+0x4225 013925 arg mem_mesh_upper_tran_layer_temp_packet_transmit_delay ,rega 
+0x4226 013926 call queue_store_new_ele 
+0x4227 013927 branch ali_mesh_upper_transport_layer_split_segmented_msg_to_lower_tran_layer 
+:      013929 ali_mesh_upper_transport_layer_control_packet_encrypt_access_load_payload:
+0x4228 013930 fetch 1 ,mem_mesh_upper_tran_layer_temp_packet_length 
+0x4229 013931 copy pdata ,loopcnt 
+0x422a 013932 store 1 ,mem_mesh_access_layer_payload_len 
+0x422b 013933 fetch 1 ,mem_mesh_upper_tran_layer_temp_pakcet_akf_aid 
+0x422c 013934 store 1 ,mem_mesh_message_transport_head 
+0x422d 013935 arg mem_mesh_upper_tran_layer_temp_pakcet_upper_tran_access_pdu ,contr 
+0x422e 013936 arg mem_mesh_access_layer_payload ,contw 
+0x422f 013937 branch memcpy 
+:      013939 ali_mesh_upper_transport_layer_split_segmented_msg_to_lower_tran_layer:
+0x4230 013940 call ali_mesh_upper_transport_layer_send_segmented_access_message_calc_header 
+0x4231 013941 setarg mem_mesh_access_payload 
+0x4232 013942 store 2 ,mem_mesh_upper_transport_layer_payload_ptr 
+:      013943 ali_mesh_upper_transport_layer_send_segmented_access_message_loop:
+0x4233 013944 call ali_mesh_upper_transport_layer_control_packet_load_header 
+0x4234 013945 call ali_mesh_upper_transport_layer_send_access_message_calc_seq 
+0x4235 013946 call ali_mesh_upper_transport_layer_send_access_message_add_seq 
+0x4236 013948 fetcht 1 ,mem_mesh_access_layer_payload_len 
+0x4237 013949 setarg segmented_access_message_unint_pdu_len 
+0x4238 013950 call not_greater_than 
+0x4239 013951 copy pdata ,rega 
+0x423a 013952 copy temp ,pdata 
+0x423b 013953 isub rega ,pdata 
+0x423c 013954 store 1 ,mem_mesh_access_layer_payload_len 
+0x423d 013955 fetch 2 ,mem_mesh_upper_transport_layer_payload_ptr 
+0x423e 013956 copy pdata ,contr 
+0x423f 013957 iadd rega ,temp 
+0x4240 013958 storet 2 ,mem_mesh_upper_transport_layer_payload_ptr 
+0x4241 013959 call ali_mesh_lower_transport_layer_send_segmented_access_message 
+0x4242 013960 fetch 1 ,mem_mesh_access_layer_payload_len 
+0x4243 013961 rtn blank 
+0x4244 013962 fetch 1 ,mem_mesh_segmented_lower_transport_layer_sego 
+0x4245 013963 pincrease 1 
+0x4246 013964 store 1 ,mem_mesh_segmented_lower_transport_layer_sego 
+0x4247 013965 call ali_mesh_upper_transport_layer_send_segmented_access_message_calc_header 
+0x4248 013966 branch ali_mesh_upper_transport_layer_send_segmented_access_message_loop 
+:      013971 ali_mesh_upper_transport_layer_calc_transport_mic:
+0x4249 013972 fetch 1 ,mem_mesh_message_transport_head 
+0x424a 013973 bbit0 transport_head_bit_akf ,ali_mesh_upper_transport_layer_calc_transport_mic_by_devicekey 
+:      013974 ali_mesh_upper_transport_layer_calc_transport_mic_by_appkey:
+0x424b 013975 call ali_mesh_upper_transport_layer_load_application_nonce_and_application_key 
+0x424c 013976 branch ali_mesh_upper_transport_layer_calc_transport_mic_encrypt_aesccm 
+:      013977 ali_mesh_upper_transport_layer_calc_transport_mic_by_devicekey:
+0x424d 013978 call ali_mesh_upper_transport_layer_load_device_nonce_and_device_key 
+:      013979 ali_mesh_upper_transport_layer_calc_transport_mic_encrypt_aesccm:
+0x424e 013980 fetch 1 ,mem_mesh_access_layer_payload_len 
+0x424f 013981 add pdata ,4 ,temp 
+0x4250 013982 storet 1 ,mem_mesh_upper_transport_layer_payload_len 
+0x4251 013983 arg mem_mesh_access_layer_payload ,temp 
+0x4252 013984 branch ali_ccm_encrypt 
+:      013989 ali_mesh_upper_transport_layer_send_access_message_calc_seq:
+0x4253 013990 fetch 3 ,mem_mesh_send_message_seq 
+0x4254 013991 pincrease 1 
+0x4255 013992 store 3 ,mem_mesh_send_message_seq 
+0x4256 013993 fetch 1 ,mem_mesh_gatt_package_send_msg_id 
+0x4257 013994 pincrease 1 
+0x4258 013995 store 1 ,mem_mesh_gatt_package_send_msg_id 
+0x4259 013996 fetch 2 ,mem_mesh_cb_seq_changed 
+0x425a 013997 branch callback_func 
+:      014001 ali_mesh_upper_transport_layer_send_access_message_add_nid_src_ttl_seq_dst:
+0x425b 014002 fetch 1 ,mem_mesh_iv_index + 3 
+0x425c 014003 lshift4 pdata ,pdata 
+0x425d 014004 lshift3 pdata ,pdata 
+0x425e 014005 fetcht 1 ,mem_k2_nid 
+0x425f 014006 ior temp ,pdata 
+0x4260 014007 store 1 ,mem_mesh_send_upper_layer_ivi_and_nid 
+0x4261 014008 fetch 1 ,mem_mesh_send_message_ttl 
+0x4262 014009 store 1 ,mem_mesh_send_upper_layer_ctl_and_ttl 
+0x4263 014010 fetch 2 ,mem_mesh_send_message_src 
+0x4264 014011 store 2 ,mem_mesh_send_upper_layer_src 
+0x4265 014012 fetch 2 ,mem_mesh_send_message_dst 
+0x4266 014013 store 2 ,mem_mesh_send_upper_layer_dst 
+:      014015 ali_mesh_upper_transport_layer_send_access_message_add_seq:
+0x4267 014016 fetch 3 ,mem_mesh_send_message_seq 
+0x4268 014017 store 3 ,mem_mesh_send_upper_layer_seq 
+0x4269 014018 arg mem_mesh_send_upper_layer_seq ,rega 
+0x426a 014019 arg 3 ,loopcnt 
+0x426b 014020 call inverse_data 
+0x426c 014021 fetch 8 ,mem_mesh_send_upper_layer_ctl_and_ttl 
+0x426d 014022 store 8 ,mem_mesh_message_ttl 
+0x426e 014023 rtn 
+:      014025 ali_mesh_upper_transport_layer_send_segmented_access_message_get_seqzero_segon:
+0x426f 014026 fetch 1 ,mem_mesh_upper_transport_layer_payload_len 
+0x4270 014027 div pdata ,segmented_access_message_unint_pdu_len 
+0x4271 014028 call wait_div_end 
+0x4272 014029 quotient temp 
+0x4273 014030 remainder pdata 
+0x4274 014031 call ali_mesh_upper_transport_layer_send_segmented_access_message_sub_segn_one ,blank 
+0x4275 014032 storet 1 ,mem_mesh_segmented_lower_transport_layer_segn 
+0x4276 014033 jam 0 ,mem_mesh_segmented_lower_transport_layer_sego 
+0x4277 014034 fetch 3 ,mem_mesh_send_message_seq 
+0x4278 014035 arg 0x1fff ,temp 
+0x4279 014036 iand temp ,pdata 
+0x427a 014037 store 2 ,mem_mesh_segmented_lower_transport_layer_segzero 
+0x427b 014038 rtn 
+:      014040 ali_mesh_upper_transport_layer_send_segmented_access_message_calc_header:
+0x427c 014041 fetch 2 ,mem_mesh_segmented_lower_transport_layer_segzero 
+0x427d 014042 lshift4 pdata ,pdata 
+0x427e 014043 lshift pdata ,pdata 
+0x427f 014044 fetcht 1 ,mem_mesh_segmented_lower_transport_layer_sego 
+0x4280 014045 ior temp ,pdata 
+0x4281 014046 lshift4 pdata ,pdata 
+0x4282 014047 lshift pdata ,pdata 
+0x4283 014048 fetcht 1 ,mem_mesh_segmented_lower_transport_layer_segn 
+0x4284 014049 ior temp ,pdata 
+0x4285 014050 store 3 ,mem_mesh_segmented_access_lower_transport_layer_szmic_seqzero_sego_segn 
+0x4286 014051 arg 3 ,loopcnt 
+0x4287 014052 arg mem_mesh_segmented_access_lower_transport_layer_szmic_seqzero_sego_segn ,rega 
+0x4288 014053 branch inverse_data 
+:      014055 ali_mesh_upper_transport_layer_receive_new_msg_timer:
+0x4289 014056 arg mem_mesh_upper_receive_new_message_timer ,regc 
+0x428a 014057 arg ali_mesh_upper_transport_layer_receive_new_msg_timeout ,regb 
+0x428b 014058 branch timer_single_step 
+:      014060 ali_mesh_upper_transport_layer_receive_new_msg_timeout:
+0x428c 014061 arg 40 ,loopcnt 
+0x428d 014062 arg mem_mesh_access_message_mic_cache ,contw 
+0x428e 014063 branch clear_mem 
+:      014066 ali_mesh_upper_transport_layer_send_segmented_access_message_sub_segn_one:
+0x428f 014067 increase -1 ,temp 
+0x4290 014068 rtn 
+:      014070 ali_mesh_upper_transport_layer_clear_tx_buffer:
+0x4291 014071 branch ali_mesh_stop_send_indication_packet 
+:      014074 ali_mesh_upper_transport_layer_init_queue_param:
+0x4292 014075 setarg mem_mesh_upper_tran_layer_queue_each_size 
+0x4293 014076 store 2 ,mem_queue_ptr 
+0x4294 014077 rtn 
+:      014080 app_init:
+0x4295 014081 bpatch patch16_1 ,mem_patch16 
+0x4296 014082 fetch 1 ,mem_device_option 
+0x4297 014083 branch app_init ,blank 
+0x4298 014084 beq dvc_op_dongle ,dongle_init 
+0x4299 014085 beq dvc_op_shutter ,shutter_init 
+0x429a 014086 beq dvc_op_module ,module_init 
+0x429b 014087 beq dvc_op_car ,car_init 
+0x429c 014088 beq dvc_op_shutter_dy ,shutter_dy_init 
+0x429d 014089 beq dvc_op_remote_car ,remote_car_init 
+0x429e 014090 beq dvc_op_keyboard ,keyboard_init 
+0x429f 014091 beq dvc_op_hci_boot ,hci_init 
+0x42a0 014093 beq dvc_op_mouse ,mouse_init 
+0x42a1 014094 beq dvc_op_mesh ,ali_mesh_init 
+0x42a2 014095 rtn 
+:      014098 app_param_init:
+0x42a3 014099 rtn wake 
+0x42a4 014100 call adc_init_data 
+0x42a5 014101 fetch 1 ,mem_device_option 
+0x42a6 014102 beq dvc_op_shutter ,shutter_default_init 
+0x42a7 014103 beq dvc_op_shutter_dy ,shutter_default_init 
+0x42a8 014104 beq dvc_op_dongle ,dongle_default_init 
+0x42a9 014105 beq dvc_op_mouse ,mouse_default_init 
+0x42aa 014106 beq dvc_op_keyboard ,mouse_default_parm_init 
+0x42ab 014107 beq dvc_op_remote_car ,remote_car_default_init 
+0x42ac 014108 rtn 
+:      014110 app_process_idle:
+0x42ad 014111 call ui_dispatch 
+0x42ae 014112 call check_51cmd 
+0x42af 014113 call app_process_bb_event 
+0x42b0 014114 fetch 2 ,mem_cb_idle_process 
+0x42b1 014115 branch callback_func 
+:      014117 app_process_ble:
+0x42b2 014118 fetch 2 ,mem_cb_le_process 
+0x42b3 014119 branch callback_func 
+:      014121 app_process_bb_event:
+0x42b4 014122 bpatch patch16_2 ,mem_patch16 
+0x42b5 014124 arg mem_ipc_fifo_bt2c51 ,rega 
+0x42b6 014125 call fifo_out 
+0x42b7 014126 rtn blank 
+0x42b8 014128 copy pdata ,regc 
+0x42b9 014129 call app_event_normal_process 
+0x42ba 014130 branch app_process_bb_event_priority 
+:      014132 app_discard_event:
+0x42bb 014133 arg 0 ,regc 
+0x42bc 014134 rtn 
+:      014139 app_event_normal_process:
+0x42bd 014140 beq bt_evt_button_long_pressed ,app_evt_button_long_pressed 
+0x42be 014141 beq bt_evt_le_connected ,app_le_event_bb_connected 
+0x42bf 014142 beq bt_evt_le_disconnected ,app_le_event_bb_disconn 
+0x42c0 014143 rtn 
+:      014147 app_process_bb_event_priority:
+0x42c1 014148 fetch 2 ,mem_cb_bb_event_process 
+0x42c2 014149 branch callback_func 
+:      014151 app_check_wake_lock:
+0x42c3 014152 fetch 2 ,mem_cb_check_wakelock 
+0x42c4 014153 branch callback_func 
+:      014155 app_will_enter_lpm:
+0x42c5 014156 fetch 2 ,mem_cb_before_lpm 
+0x42c6 014157 branch callback_func 
+:      014159 app_le_event_bb_connected:
+0x42c7 014160 fetch 2 ,mem_ui_state_map 
+0x42c8 014161 set1 ui_state_ble_connected ,pdata 
+0x42c9 014162 store 2 ,mem_ui_state_map 
+0x42ca 014163 rtn 
+:      014165 app_le_event_bb_disconn:
+0x42cb 014166 jam 0 ,mem_le_l2cap_att_states 
+0x42cc 014167 fetch 2 ,mem_ui_state_map 
+0x42cd 014168 set0 ui_state_ble_connected ,pdata 
+0x42ce 014169 store 2 ,mem_ui_state_map 
+0x42cf 014170 branch app_lpm_mult_disable 
+:      014173 app_evt_button_long_pressed:
+0x42d0 014174 fetch app_disc_rsn_size ,mem_app_disconn_reason_flag 
+0x42d1 014175 set1 app_disc_by_button ,pdata 
+0x42d2 014176 store app_disc_rsn_size ,mem_app_disconn_reason_flag 
+0x42d3 014177 rtn 
+:      014180 app_evt_timer:
+0x42d4 014181 store 1 ,mem_app_evt_timer_count 
+:      014182 app_evt_100ms_loop:
+0x42d5 014183 bpatch patch16_3 ,mem_patch16 
+0x42d6 014184 fetch 1 ,mem_app_evt_timer_count 
+0x42d7 014185 rtn blank 
+0x42d8 014186 increase -1 ,pdata 
+0x42d9 014187 store 1 ,mem_app_evt_timer_count 
+0x42da 014188 call ui_button_polling 
+0x42db 014189 call app_lpm_wake_auto_lock_timer 
+0x42dc 014190 call flash_write_spi_sm_timer 
+0x42dd 014191 fetch 2 ,mem_cb_event_timer 
+0x42de 014192 call callback_func 
+0x42df 014193 branch app_evt_100ms_loop 
+:      014198 timer_single_step:
+0x42e0 014199 ifetch 1 ,regc 
+0x42e1 014200 rtn blank 
+0x42e2 014201 pincrease -1 
+0x42e3 014202 istore 1 ,regc 
+0x42e4 014203 nrtn blank 
+0x42e5 014204 copy regb ,pdata 
+0x42e6 014205 branch callback_func 
+:      014209 timer_single_step_2b:
+0x42e7 014210 ifetch 2 ,regc 
+0x42e8 014211 rtn blank 
+0x42e9 014212 pincrease -1 
+0x42ea 014213 istore 2 ,regc 
+0x42eb 014214 nrtn blank 
+0x42ec 014215 copy regb ,pdata 
+0x42ed 014216 branch callback_func 
+:      014218 app_power_timer:
+0x42ee 014219 fetcht 2 ,mem_power_param_ptr 
+0x42ef 014220 add temp ,power_timer_offset ,regc 
+0x42f0 014221 arg app_power_timer_timeout ,regb 
+0x42f1 014222 branch timer_single_step 
+:      014224 app_power_timer_timeout:
+0x42f2 014225 call app_got_power_state_common 
+0x42f3 014226 beq power_starting ,app_enter_power_stanby_state 
+:      014227 app_enter_power_off_state:
+0x42f4 014228 branch app_enter_hibernate 
+:      014229 app_enter_power_stanby_state:
+0x42f5 014230 setarg power_standby 
+0x42f6 014231 istore 1 ,regc 
+0x42f7 014232 add temp ,power_standby_cb_offset ,regb 
+:      014233 app_power_cb_common:
+0x42f8 014234 ifetch 2 ,regb 
+0x42f9 014235 branch callback_func 
+:      014238 app_bb_hibernate:
+0x42fa 014239 call app_disconn_reason_clear 
+0x42fb 014240 branch app_enter_hibernate 
+:      014243 app_disconn_reason_clear:
+0x42fc 014244 setarg 0 
+0x42fd 014245 store app_disc_rsn_size ,mem_app_disconn_reason 
+0x42fe 014246 rtn 
+:      014247 app_disconn_reason_flag_clear:
+0x42ff 014248 setarg 0 
+0x4300 014249 store app_disc_rsn_size ,mem_app_disconn_reason_flag 
+0x4301 014250 rtn 
+:      014254 app_disconn_reason_collect_ble:
+0x4302 014255 fetch app_disc_rsn_size ,mem_app_disconn_reason_flag 
+0x4303 014256 set1 app_disc_ble ,pdata 
+0x4304 014257 store app_disc_rsn_size ,mem_app_disconn_reason 
+0x4305 014258 setarg 0 
+0x4306 014259 store app_disc_rsn_size ,mem_app_disconn_reason_flag 
+0x4307 014260 rtn 
+:      014268 app_get_lpm_wake_lock:
+0x4308 014269 arg wake_lock_app ,queue 
+0x4309 014270 branch lpm_get_wake_lock 
+:      014272 app_put_lpm_wake_lock:
+0x430a 014273 arg wake_lock_app ,queue 
+0x430b 014274 branch lpm_put_wake_lock 
+:      014276 app_lpm_wake_auto_lock:
+0x430c 014277 jam lpm_wake_up_delay_timer ,mem_wake_up_delay_timer 
+0x430d 014278 branch app_get_lpm_wake_lock 
+:      014280 app_lpm_wake_auto_lock_timer:
+0x430e 014281 arg mem_wake_up_delay_timer ,regc 
+0x430f 014282 arg app_put_lpm_wake_lock ,regb 
+0x4310 014283 branch timer_single_step 
+:      014286 app_ble_start_direct_adv:
+0x4311 014287 jam bt_cmd_start_direct_adv ,mem_fifo_temp 
+0x4312 014288 branch ui_ipc_send_cmd 
+:      014290 app_ble_stop_direct_adv:
+0x4313 014291 jam bt_cmd_stop_direct_adv ,mem_fifo_temp 
+0x4314 014292 branch ui_ipc_send_cmd 
+:      014294 app_ble_stop_adv:
+0x4315 014295 jam bt_cmd_stop_adv ,mem_fifo_temp 
+0x4316 014296 branch ui_ipc_send_cmd 
+:      014298 app_ble_start_adv:
+0x4317 014299 jam bt_cmd_start_adv ,mem_fifo_temp 
+0x4318 014300 branch ui_ipc_send_cmd 
+:      014302 app_ble_start_scan:
+0x4319 014303 jam bt_cmd_le_start_scan ,mem_fifo_temp 
+0x431a 014304 branch ui_ipc_send_cmd 
+:      014306 app_ble_stop_scan:
+0x431b 014307 jam bt_cmd_le_stop_scan ,mem_fifo_temp 
+0x431c 014308 branch ui_ipc_send_cmd 
+:      014310 app_ble_start_conn:
+0x431d 014311 jam bt_cmd_le_start_conn ,mem_fifo_temp 
+0x431e 014312 branch ui_ipc_send_cmd 
+:      014314 app_ble_disconnect:
+0x431f 014315 jam bt_cmd_le_disconnect ,mem_fifo_temp 
+0x4320 014316 branch ui_ipc_send_cmd 
+:      014318 app_led_start_blink:
+0x4321 014319 jam bt_cmd_led_blink ,mem_fifo_temp 
+0x4322 014320 branch ui_ipc_send_cmd 
+:      014322 app_led_on:
+0x4323 014323 jam bt_cmd_led_on ,mem_fifo_temp 
+0x4324 014324 branch ui_ipc_send_cmd 
+:      014326 app_led_stop_blink:
+:      014327 app_led_off:
+0x4325 014328 jam bt_cmd_led_off ,mem_fifo_temp 
+0x4326 014329 branch ui_ipc_send_cmd 
+:      014331 app_enter_hibernate:
+0x4327 014332 jam bt_cmd_enter_hibernate ,mem_fifo_temp 
+0x4328 014333 branch ui_ipc_send_cmd 
+:      014336 app_ble_store_reconn_info:
+0x4329 014337 jam bt_cmd_store_reconn_info_le ,mem_fifo_temp 
+0x432a 014338 branch ui_ipc_send_cmd 
+:      014341 app_lpm_mult_enable:
+0x432b 014342 set1 mark_lpm_mult_enable ,mark 
+0x432c 014343 rtn 
+:      014345 app_lpm_mult_disable:
+0x432d 014346 set0 mark_lpm_mult_enable ,mark 
+0x432e 014347 rtn 
+:      014350 app_button_long_pressed:
+0x432f 014351 call app_got_power_state_common 
+0x4330 014352 beq power_standby ,app_power_shutting_down 
+:      014353 app_power_starting:
+0x4331 014354 setarg power_starting 
+0x4332 014355 istore 1 ,regc 
+0x4333 014356 add temp ,power_starting_timeout_offset ,rega 
+0x4334 014357 add temp ,power_starting_cb_offset ,regb 
+:      014358 app_power_common:
+0x4335 014359 ifetcht 1 ,rega 
+0x4336 014360 increase 1 ,regc 
+0x4337 014361 istoret 1 ,regc 
+0x4338 014362 branch app_power_cb_common 
+:      014364 app_power_shutting_down:
+0x4339 014365 setarg power_off 
+0x433a 014366 istore 1 ,regc 
+0x433b 014367 fetch 2 ,mem_ui_state_map 
+0x433c 014368 bbit0 ui_state_ble_connected ,app_power_off_end 
+0x433d 014369 call le_send_terminate_ind_user_terminated 
+0x433e 014370 call app_ble_disconnect 
+:      014371 app_power_off_end:
+0x433f 014372 fetcht 2 ,mem_power_param_ptr 
+0x4340 014373 add temp ,power_off_timeout_offset ,rega 
+0x4341 014374 add temp ,power_off_cb_offset ,regb 
+0x4342 014375 branch app_power_common 
+:      014377 app_got_power_state_common:
+0x4343 014378 fetcht 2 ,mem_power_param_ptr 
+0x4344 014379 add temp ,power_state_offset ,regc 
+0x4345 014380 ifetch 1 ,regc 
+0x4346 014381 rtn 
+:      014383 app_event_button_up:
+0x4347 014384 call app_got_power_state_common 
+0x4348 014385 bne power_off ,app_power_release 
+0x4349 014386 branch app_enter_hibernate 
+:      014387 app_power_release:
+0x434a 014388 add temp ,ui_butten_up_cb_offset ,regb 
+0x434b 014389 branch app_power_cb_common 
+:      014395 adpcm_decode:
+0x434c 014396 fetch 8 ,mem_ad_state_valpred 
+0x434d 014397 store 8 ,mem_ad_valpred 
+0x434e 014398 jam 0 ,mem_ad_bufferstep 
+0x434f 014399 fetch 1 ,mem_ad_index 
+0x4350 014400 lshift2 pdata ,pdata 
+0x4351 014401 arg mem_ad_stepsizetable ,temp 
+0x4352 014402 iadd temp ,temp 
+0x4353 014403 ifetch 4 ,temp 
+0x4354 014404 store 4 ,mem_ad_step 
+:      014405 adpcm_decode_loop:
+0x4355 014406 fetch 1 ,mem_ad_bufferstep 
+0x4356 014407 nbranch adpcm_next_byte ,blank 
+0x4357 014408 fetcht 2 ,mem_ad_in_ptr 
+0x4358 014409 ifetch 1 ,temp 
+0x4359 014410 store 1 ,mem_ad_inputbuffer 
+0x435a 014411 increase 1 ,temp 
+0x435b 014412 storet 2 ,mem_ad_in_ptr 
+0x435c 014413 rshift4 pdata ,pdata 
+0x435d 014414 store 1 ,mem_ad_delta 
+0x435e 014415 branch adpcm_cal 
+:      014416 adpcm_next_byte:
+0x435f 014417 fetch 1 ,mem_ad_inputbuffer 
+0x4360 014418 and pdata ,0x0f ,pdata 
+0x4361 014419 store 1 ,mem_ad_delta 
+:      014420 adpcm_cal:
+0x4362 014421 fetch 1 ,mem_ad_bufferstep 
+0x4363 014422 setflip 0 ,pdata 
+0x4364 014423 store 1 ,mem_ad_bufferstep 
+0x4365 014424 arg mem_ad_indextable ,temp 
+0x4366 014425 fetch 1 ,mem_ad_delta 
+0x4367 014426 iadd temp ,temp 
+0x4368 014427 ifetch 1 ,temp 
+0x4369 014428 fetcht 1 ,mem_ad_index 
+0x436a 014429 call adpcm_cal_index 
+0x436b 014430 store 1 ,mem_ad_index 
+0x436c 014432 fetch 1 ,mem_ad_delta 
+0x436d 014433 and pdata ,0x08 ,temp 
+0x436e 014434 storet 1 ,mem_ad_sign 
+0x436f 014435 and pdata ,0x07 ,temp 
+0x4370 014436 storet 1 ,mem_ad_delta 
+0x4371 014438 call adpcm_cal_vpdiff 
+0x4372 014439 storet 4 ,mem_ad_vpdiff 
+0x4373 014441 fetch 1 ,mem_ad_sign 
+0x4374 014442 branch adpcm_cal_valpred ,blank 
+0x4375 014443 fetch 4 ,mem_ad_valpred 
+0x4376 014444 fetcht 4 ,mem_ad_vpdiff 
+0x4377 014445 isub temp ,pdata 
+0x4378 014446 branch adpcm_cal_valpred_end 
+:      014447 adpcm_cal_valpred:
+0x4379 014448 fetch 4 ,mem_ad_valpred 
+0x437a 014449 fetcht 4 ,mem_ad_vpdiff 
+0x437b 014450 iadd temp ,pdata 
+:      014451 adpcm_cal_valpred_end:
+0x437c 014452 store 4 ,mem_ad_valpred 
+0x437d 014453 arg 32767 ,temp 
+0x437e 014454 isub temp ,pdata 
+0x437f 014455 bbit1 31 ,adpcm_cal_valpred_overflow 
+0x4380 014456 storet 4 ,mem_ad_valpred 
+0x4381 014457 branch adpcm_cal_valpred_overflow_end 
+:      014458 adpcm_cal_valpred_overflow:
+0x4382 014459 fetch 4 ,mem_ad_valpred 
+0x4383 014460 arg 32768 ,temp 
+0x4384 014461 iadd temp ,pdata 
+0x4385 014462 bbit0 31 ,adpcm_cal_valpred_overflow_end 
+0x4386 014463 arg -32768 ,temp 
+0x4387 014464 storet 4 ,mem_ad_valpred 
+:      014465 adpcm_cal_valpred_overflow_end:
+0x4388 014466 fetch 1 ,mem_ad_index 
+0x4389 014467 lshift2 pdata ,pdata 
+0x438a 014468 arg mem_ad_stepsizetable ,temp 
+0x438b 014469 iadd temp ,temp 
+0x438c 014470 ifetch 4 ,temp 
+0x438d 014471 store 4 ,mem_ad_step 
+0x438e 014473 fetch 2 ,mem_ad_out_ptr 
+0x438f 014474 fetcht 2 ,mem_ad_valpred 
+0x4390 014475 istoret 2 ,pdata 
+0x4391 014476 increase 2 ,pdata 
+0x4392 014477 store 2 ,mem_ad_out_ptr 
+0x4393 014479 fetch 1 ,mem_ad_in_numsamples 
+0x4394 014480 increase -1 ,pdata 
+0x4395 014481 store 1 ,mem_ad_in_numsamples 
+0x4396 014482 nbranch adpcm_decode_loop ,blank 
+0x4397 014483 fetch 8 ,mem_ad_valpred 
+0x4398 014484 store 8 ,mem_ad_state_valpred 
+0x4399 014485 rtn 
+:      014487 adpcm_cal_index:
+0x439a 014488 iadd temp ,pdata 
+0x439b 014489 bbit0 7 ,adpcm_cal_bigger_zero 
+0x439c 014490 setarg 0 
+0x439d 014491 rtn 
+:      014492 adpcm_cal_bigger_zero:
+0x439e 014493 and pdata ,0xff ,pdata 
+0x439f 014494 sub pdata ,88 ,null 
+0x43a0 014495 rtn positive 
+0x43a1 014496 setarg 88 
+0x43a2 014497 rtn 
+:      014499 adpcm_cal_vpdiff:
+0x43a3 014500 fetchr rega ,4 ,mem_ad_step 
+0x43a4 014501 rshift3 rega ,temp 
+0x43a5 014502 fetch 1 ,mem_ad_delta 
+0x43a6 014503 bbit0 2 ,adpcm_cal_vpdiff1 
+0x43a7 014504 copy rega ,pdata 
+0x43a8 014505 iadd temp ,temp 
+:      014506 adpcm_cal_vpdiff1:
+0x43a9 014507 fetch 1 ,mem_ad_delta 
+0x43aa 014508 bbit0 1 ,adpcm_cal_vpdiff2 
+0x43ab 014509 rshift rega ,pdata 
+0x43ac 014510 iadd temp ,temp 
+:      014511 adpcm_cal_vpdiff2:
+0x43ad 014512 fetch 1 ,mem_ad_delta 
+0x43ae 014513 rtnbit0 0 
+0x43af 014514 rshift2 rega ,pdata 
+0x43b0 014515 iadd temp ,temp 
+0x43b1 014516 rtn 
+:      014521 car_init:
+0x43b2 014522 call enable_authrom 
+0x43b3 014523 rtn wake 
+0x43b4 014524 setarg car_g24_receive_process 
+0x43b5 014525 store 2 ,mem_cb_24g_receive_process 
+0x43b6 014527 setarg g24_bind_ackpayload_prep 
+0x43b7 014528 store 2 ,mem_cb_24g_ackpayload 
+0x43b8 014530 setarg car_g24_cb_data_device1 
+0x43b9 014531 store 2 ,mem_cb_24g_data_device1 
+0x43ba 014533 setarg car_le_before_hibernate 
+0x43bb 014534 store 2 ,mem_cb_before_hibernate 
+0x43bc 014536 setarg car_le_process_lpm_before 
+0x43bd 014537 store 2 ,mem_cb_before_lpm 
+0x43be 014539 setarg car_scale_process_idle 
+0x43bf 014540 store 2 ,mem_cb_idle_process 
+0x43c0 014542 setarg car_scale_process_bb_event 
+0x43c1 014543 store 2 ,mem_cb_bb_event_process 
+0x43c2 014545 setarg app_get_lpm_wake_lock 
+0x43c3 014546 store 2 ,mem_cb_check_wakelock 
+0x43c4 014548 setarg car_le_receive_data 
+0x43c5 014549 store 2 ,mem_cb_att_write 
+0x43c6 014551 setarg car_le_bb_event_timer 
+0x43c7 014552 store 2 ,mem_cb_event_timer 
+0x43c8 014554 bpatch patch05_6 ,mem_patch05 
+0x43c9 014555 call car_init_environment 
+0x43ca 014556 call car_lpm_timer_enable 
+0x43cb 014557 call queue_init 
+0x43cc 014558 jam 2 ,mem_lpm_mult 
+0x43cd 014559 jam power_on ,mem_car_24g_received_pac 
+0x43ce 014560 fetch 1 ,mem_car_config_soft_switch_enable 
+0x43cf 014561 store 1 ,mem_car_hard_soft_switch 
+0x43d0 014562 beq hard_switch ,car_hard_switch_power_on_signal 
+0x43d1 014563 fetch 1 ,mem_car_config_soft_switch_gpio 
+0x43d2 014564 store 1 ,mem_ui_button_gpio 
+0x43d3 014565 jam off ,mem_le_adv_enable 
+:      014566 car_soft_switch_power_on_init:
+0x43d4 014567 call ui_button_init 
+0x43d5 014568 call ui_button_polling 
+0x43d6 014569 jam power_starting ,mem_car_power_state 
+0x43d7 014570 fetch 2 ,mem_ui_state_map 
+0x43d8 014571 rtnbit1 ui_state_btn_down 
+0x43d9 014572 branch app_enter_hibernate 
+:      014575 car_power_off_signal:
+0x43da 014576 branch car_ui_led_init 
+:      014578 car_hard_switch_power_on_signal:
+0x43db 014579 jam power_standby ,mem_car_power_state 
+:      014580 car_soft_switch_power_on_signal:
+0x43dc 014581 jam on ,mem_le_adv_enable 
+0x43dd 014582 setarg fast_adv_interval_value_car 
+0x43de 014583 call shutter_ble_adv_interval_set 
+:      014584 car_le_modified_name_adv:
+0x43df 014585 arg mem_le_name + 7 ,contw 
+0x43e0 014586 fetch 1 ,mem_le_lap 
+:      014587 car_name_loop:
+0x43e1 014588 and pdata ,0xF0 ,temp 
+0x43e2 014589 rshift4 temp ,temp 
+0x43e3 014590 call car_hex_to_ascii 
+0x43e4 014591 istoret 1 ,contw 
+0x43e5 014592 and pdata ,0x0F ,temp 
+0x43e6 014593 call car_hex_to_ascii 
+0x43e7 014594 istoret 1 ,contw 
+0x43e8 014595 call le_modified_name_att_list 
+0x43e9 014596 fetcht 1 ,mem_le_name_len 
+0x43ea 014597 copy temp ,loopcnt 
+0x43eb 014598 arg mem_le_adv_data + 2 ,contw 
+0x43ec 014599 arg mem_le_name ,contr 
+0x43ed 014600 call memcpy 
+:      014601 car_le_modified_name_scan:
+0x43ee 014602 fetcht 1 ,mem_le_name_len 
+0x43ef 014603 copy temp ,loopcnt 
+0x43f0 014604 arg mem_le_scan_data + 2 ,contw 
+0x43f1 014605 arg mem_le_name ,contr 
+0x43f2 014606 branch memcpy 
+:      014607 car_hex_to_ascii:
+0x43f3 014608 sub temp ,9 ,null 
+0x43f4 014609 branch car_hex_num ,positive 
+0x43f5 014610 add temp ,55 ,temp 
+0x43f6 014611 rtn 
+:      014612 car_hex_num:
+0x43f7 014613 add temp ,48 ,temp 
+0x43f8 014614 rtn 
+:      014616 car_ui_led_init:
+0x43f9 014617 fetch 1 ,mem_car_config_blood_led1_gpio 
+0x43fa 014618 bne invalid_pin_num ,car_blood_led_gpio_set 
+:      014619 car_ui_led_init_1:
+0x43fb 014620 fetch 1 ,mem_car_config_pairing_led_gpio 
+0x43fc 014621 bne invalid_pin_num ,car_pairing_led_gpio_set 
+:      014622 car_ui_led_init_2:
+0x43fd 014623 fetch 1 ,mem_car_config_low_voltage_led_gpio 
+0x43fe 014624 bne invalid_pin_num ,car_low_voltage_led_gpio_set 
+:      014625 car_ui_led_init_3:
+0x43ff 014626 fetch 1 ,mem_car_led_num 
+0x4400 014627 copy pdata ,loopcnt 
+0x4401 014628 setarg mem_car_led_map 
+0x4402 014629 copy pdata ,rega 
+:      014630 car_in_lp1:
+0x4403 014631 copy rega ,contr 
+0x4404 014632 ifetch 1 ,contr 
+0x4405 014633 copy contr ,rega 
+0x4406 014634 beq invalid_pin_num ,car_in_lp1_end 
+0x4407 014635 copy pdata ,temp 
+0x4408 014636 call gpio_config_output 
+:      014637 car_in_lp1_end:
+0x4409 014638 loop car_in_lp1 
+:      014639 car_ui_led_init_end:
+0x440a 014640 rtn 
+:      014641 car_blood_led_gpio_set:
+0x440b 014642 fetch 8 ,mem_car_config_blood_led1_gpio 
+0x440c 014643 store 8 ,mem_car_led_map + 2 
+0x440d 014644 branch car_ui_led_init_1 
+:      014645 car_pairing_led_gpio_set:
+0x440e 014646 store 1 ,mem_car_led_map 
+0x440f 014647 branch car_ui_led_init_2 
+:      014648 car_low_voltage_led_gpio_set:
+0x4410 014649 store 1 ,mem_car_led_map + 1 
+0x4411 014650 branch car_ui_led_init_3 
+:      014652 car_init_environment:
+0x4412 014654 call car_g24_init 
+0x4413 014655 call car_g24_load_commom_addr 
+0x4414 014656 arg 0 ,rega 
+0x4415 014657 call pwm_init 
+0x4416 014658 call car_ui_led_init 
+0x4417 014659 call car_start_blink 
+0x4418 014660 call car_init_adc_hvin 
+0x4419 014661 branch car_motor_init 
+:      014662 car_read_otp_addr:
+0x441a 014663 rtn 
+:      014664 car_motor_init:
+0x441b 014665 fetch 1 ,mem_car_motor_gpio_num 
+0x441c 014666 copy pdata ,loopcnt 
+0x441d 014667 setarg mem_car_motor_gpio_map 
+0x441e 014668 copy pdata ,rega 
+:      014669 p_in_lp1:
+0x441f 014670 copy rega ,contr 
+0x4420 014671 ifetch 1 ,contr 
+0x4421 014672 copy contr ,rega 
+0x4422 014673 beq invalid_pin_num ,p_in_lp1_end 
+0x4423 014674 copy pdata ,temp 
+0x4424 014675 store 1 ,mem_car_gpio 
+0x4425 014676 call car_ui_gpio_init 
+:      014677 p_in_lp1_end:
+0x4426 014678 loop p_in_lp1 
+:      014679 p_car_ui_led_init_end:
+0x4427 014680 rtn 
+:      014682 car_ui_gpio_init:
+0x4428 014683 fetch 1 ,mem_car_gpio 
+0x4429 014684 rtneq ui_button_gpio_disable 
+0x442a 014685 iforce temp 
+0x442b 014686 branch gpio_config_output 
+:      014689 car_init_adc_hvin:
+0x442c 014690 jam 100 ,mem_car_notify_vdd_value_last 
+0x442d 014691 rtn 
+:      014693 car_le_before_hibernate:
+0x442e 014694 call car_gpio_set_before_hibernate 
+0x442f 014695 call clear_wake 
+:      014696 car_le_process_lpm_before:
+0x4430 014697 branch keyscan_process_lpm_before 
+:      014699 car_gpio_set_before_hibernate:
+0x4431 014700 call check_51cmd_led_off 
+:      014701 car_gpio_set_before_lpm_common:
+0x4432 014702 arg gpio_number ,loopcnt 
+0x4433 014703 arg core_gpio_conf ,contr 
+:      014704 car_setgpio_loop:
+0x4434 014705 copy contr ,contw 
+0x4435 014706 ifetch 1 ,contr 
+0x4436 014707 beq gpcfg_spid_miso ,car_setgpio_pullup 
+0x4437 014708 beq gpcfg_spid_ncs ,car_setgpio_pullup 
+0x4438 014709 beq gpcfg_spid_sck ,car_setgpio_pullup 
+0x4439 014710 beq gpcfg_spid_mosi ,car_setgpio_pullup 
+0x443a 014711 beq gpcfg_spid_sdio ,car_setgpio_pullup 
+0x443b 014712 beq gpcfg_iic_scl ,car_setgpio_pullup 
+0x443c 014713 beq gpcfg_iic_sda ,car_setgpio_pullup 
+0x443d 014714 beq gpcfg_input ,car_setgpio_pullup 
+:      014715 car_setgpio_loop_end:
+0x443e 014716 loop car_setgpio_loop 
+0x443f 014717 arg core_gpio_conf_hi + gpio_number_ext ,pdata 
+0x4440 014718 isub contr ,null 
+0x4441 014719 branch car_motor_setgpio ,zero 
+:      014720 car_setgpio_loop_ext:
+0x4442 014721 arg gpio_number_ext ,loopcnt 
+0x4443 014722 arg core_gpio_conf_hi ,contr 
+0x4444 014723 branch car_setgpio_loop 
+:      014725 car_setgpio_pullup:
+0x4445 014726 setarg gpcfg_pullup 
+0x4446 014727 istore 1 ,contw 
+0x4447 014728 branch car_setgpio_loop_end 
+:      014729 car_setgpio_pulldown:
+0x4448 014730 setarg gpcfg_pulldown 
+0x4449 014731 istore 1 ,contw 
+0x444a 014732 branch car_setgpio_loop_end 
+:      014733 car_motor_setgpio:
+0x444b 014734 fetch 1 ,mem_car_motor_gpio_num 
+0x444c 014735 copy pdata ,loopcnt 
+0x444d 014736 arg mem_car_motor_gpio_map ,contr 
+:      014737 car_motor_setgpio_loop:
+0x444e 014738 ifetch 1 ,contr 
+0x444f 014739 set1 7 ,pdata 
+0x4450 014740 arg gpcfg_output_low ,temp 
+0x4451 014741 call gpio_config_function 
+0x4452 014742 loop car_motor_setgpio_loop 
+0x4453 014743 rtn 
+:      014745 car_key_scan_process:
+0x4454 014746 branch keyscan_key_process 
+:      014748 car_scale_process_idle:
+0x4455 014749 call car_le_send_packet 
+0x4456 014750 call car_g24_status_process 
+0x4457 014751 branch car_key_scan_process 
+:      014753 car_g24_status_process:
+0x4458 014754 fetch 2 ,mem_ui_state_map 
+0x4459 014755 rtnbit1 ui_state_ble_connected 
+0x445a 014756 fetch 1 ,mem_car_24g_received_pac 
+0x445b 014757 beq work_paired ,car_g24_connected_event 
+0x445c 014758 rtn 
+:      014759 car_g24_connected_event:
+0x445d 014760 fetch 1 ,mem_car_24g_status 
+0x445e 014761 rtneq work_paired 
+0x445f 014762 jam work_paired ,mem_car_24g_status 
+0x4460 014763 call car_lpm_timer_disable 
+0x4461 014764 call car_stop_blink 
+0x4462 014765 branch car_g24_connected 
+:      014767 car_lpm_timer_enable:
+0x4463 014768 fetch 2 ,mem_car_enter_lpm_timer_count 
+0x4464 014769 store 2 ,mem_car_enter_lpm_timer 
+0x4465 014770 jam 0 ,mem_car_enter_lpm_flag 
+0x4466 014771 rtn 
+:      014774 car_lpm_timer_disable:
+0x4467 014775 setarg 0 
+0x4468 014776 branch car_lpm_timer_enable + 1 
+:      014779 car_stop_blink:
+0x4469 014780 arg 0 ,rega 
+0x446a 014781 branch ui_led_blink_stop_global 
+:      014784 car_start_blink:
+0x446b 014785 arg 0 ,rega 
+0x446c 014786 branch ui_led_blink_start_global 
+:      014792 car_le_send_packet:
+0x446d 014793 fetch 2 ,mem_ui_state_map 
+0x446e 014794 rtnbit0 ui_state_ble_connected 
+0x446f 014795 call le_fifo_check_nearly_full 
+0x4470 014796 nrtn blank 
+0x4471 014797 arg mem_car_pop_queue_buff ,rega 
+0x4472 014798 call queue_pop 
+0x4473 014799 nrtn user 
+0x4474 014800 arg mem_car_pop_queue_buff ,contr 
+0x4475 014801 branch le_send_notify_from_list 
+:      014803 car_scale_process_bb_event:
+0x4476 014804 copy regc ,pdata 
+0x4477 014805 beq bt_evt_button_up ,app_event_button_up 
+0x4478 014806 beq bt_evt_button_long_pressed ,app_button_long_pressed 
+0x4479 014807 beq bt_evt_le_connected ,car_scale_event_le_conn 
+0x447a 014808 beq bt_evt_le_disconnected ,car_scale_event_le_discon 
+0x447b 014809 rtn 
+:      014811 car_scale_event_le_conn:
+0x447c 014812 call car_lpm_timer_disable 
+0x447d 014813 call car_stop_blink 
+0x447e 014814 set0 mark_24g_rxmode ,mark 
+0x447f 014815 branch car_scale_process_conn 
+:      014816 car_g24_connected:
+0x4480 014817 fetch 2 ,mem_car_24g_no_data_timeout_count 
+0x4481 014818 store 2 ,mem_car_24g_no_data_timeout_timer 
+:      014819 car_scale_process_conn:
+0x4482 014820 jam 0x14 ,mem_car_notify_vdd_timer 
+0x4483 014821 jam 0 ,mem_lpm_mode 
+0x4484 014822 call app_ble_stop_adv 
+0x4485 014823 branch app_lpm_mult_enable 
+:      014826 car_scale_event_le_discon:
+0x4486 014827 set1 mark_24g_rxmode ,mark 
+0x4487 014828 call car_lpm_timer_enable 
+0x4488 014829 call car_fb_motor_stop 
+0x4489 014830 call car_lr_motor_stop 
+:      014831 car_g24_disconnect:
+0x448a 014832 setarg 0 
+0x448b 014833 store 5 ,mem_car_led_control 
+0x448c 014834 call queue_init 
+0x448d 014835 jam 10 ,mem_motor1_speed 
+0x448e 014836 jam 10 ,mem_motor2_speed 
+0x448f 014837 jam 10 ,mem_motor3_speed 
+0x4490 014839 jam 2 ,mem_lpm_mult 
+0x4491 014840 setarg fast_adv_interval_value_car 
+0x4492 014841 call shutter_ble_adv_interval_set 
+0x4493 014842 branch app_ble_start_adv 
+:      014844 car_le_bb_event_timer:
+0x4494 014845 call car_moto1_blank_data_timer 
+0x4495 014846 call car_moto2_blank_data_timer 
+0x4496 014847 call car_moto3_blank_data_timer 
+0x4497 014850 call car_24g_no_data_timeout_timer 
+0x4498 014851 branch car_24g_bind_enable_timer 
+:      014854 car_24g_bind_enable_timer:
+0x4499 014855 arg mem_car_24g_bind_enable_delay_count ,regc 
+0x449a 014856 arg 0 ,regb 
+0x449b 014857 branch timer_single_step 
+:      014859 car_enter_lpm_timer:
+0x449c 014860 arg mem_car_enter_lpm_timer ,regc 
+0x449d 014861 arg car_enter_lpm_enable ,regb 
+0x449e 014862 branch timer_single_step_2b 
+:      014863 car_enter_lpm_enable:
+0x449f 014864 jam 1 ,mem_car_enter_lpm_flag 
+0x44a0 014865 rtn 
+:      014867 car_24g_no_data_timeout_timer:
+0x44a1 014868 arg mem_car_24g_no_data_timeout_timer ,regc 
+0x44a2 014869 arg car_24g_no_data_timer_timeout ,regb 
+0x44a3 014870 branch timer_single_step_2b 
+:      014871 car_24g_no_data_timer_timeout:
+0x44a4 014872 jam work_search ,mem_car_24g_status 
+0x44a5 014873 jam power_on ,mem_car_24g_received_pac 
+0x44a6 014874 branch car_g24_disconnect 
+:      014876 car_notify_vdd_timer:
+0x44a7 014877 fetch 1 ,mem_car_config_bat_notify_enable 
+0x44a8 014878 rtn blank 
+0x44a9 014879 arg mem_car_notify_vdd_timer ,regc 
+0x44aa 014880 arg car_notify_vdd ,regb 
+0x44ab 014881 branch timer_single_step 
+:      014882 car_notify_vdd:
+0x44ac 014883 fetch 1 ,mem_car_notify_vdd_count 
+0x44ad 014884 store 1 ,mem_car_notify_vdd_timer 
+0x44ae 014885 fetch 1 ,mem_car_working_flag 
+0x44af 014886 nrtn blank 
+:      014887 car_read_hvin:
+0x44b0 014888 call vdd_calculate_by_mode 
+0x44b1 014889 store 2 ,mem_vdd_now_vol 
+0x44b2 014890 arg mem_vdd_calculate_set ,rega 
+0x44b3 014891 call adc_bat_percent_lowpower_out 
+0x44b4 014892 fetcht 1 ,mem_car_notify_vdd_value_last 
+0x44b5 014893 isub temp ,null 
+0x44b6 014894 branch car_notify_vdd_next2 ,positive 
+0x44b7 014895 store 1 ,mem_car_notify_vdd_value_last 
+0x44b8 014896 copy pdata ,temp 
+:      014897 car_notify_vdd_next2:
+0x44b9 014898 storet 1 ,mem_car_notify_vdd_percent 
+0x44ba 014899 fetch 1 ,mem_car_config_low_voltage_percent 
+0x44bb 014900 isub temp ,null 
+0x44bc 014901 call car_enter_low_bat ,positive 
+0x44bd 014902 storet 1 ,mem_notify_bat_payload 
+0x44be 014903 arg 6 ,loopcnt 
+0x44bf 014904 arg mem_notify_bat_head ,contr 
+0x44c0 014905 call calc_check_sum_start 
+0x44c1 014906 store 1 ,mem_notify_bat_check_sum 
+0x44c2 014907 arg mem_notify_bat_packet ,rega 
+0x44c3 014908 branch queue_push 
+:      014909 car_enter_low_bat:
+0x44c4 014910 fetch 1 ,mem_low_bat_flag 
+0x44c5 014911 nrtn blank 
+0x44c6 014912 jam 1 ,mem_low_bat_flag 
+0x44c7 014913 arg 1 ,rega 
+0x44c8 014914 branch ui_led_blink_start_global 
+:      014915 car_low_bat_led_off:
+0x44c9 014916 arg 1 ,rega 
+0x44ca 014917 branch ui_led_blink_stop_global 
+:      014921 calc_check_sum_start:
+0x44cb 014922 arg 0 ,rega 
+:      014923 calc_check_sum_loop:
+0x44cc 014924 ifetch 1 ,contr 
+0x44cd 014925 iadd rega ,rega 
+0x44ce 014926 loop calc_check_sum_loop 
+:      014927 calc_check_sum_and:
+0x44cf 014928 and rega ,0xff ,pdata 
+0x44d0 014929 rtn 
+:      014931 car_le_receive_data:
+0x44d1 014932 fetch 1 ,mem_le_att_opcode 
+0x44d2 014933 beq attop_write_request ,car_le_parse_att_write_request 
+0x44d3 014934 rtn 
+:      014935 car_le_parse_att_write_request:
+0x44d4 014936 fetch 2 ,mem_le_att_handle 
+0x44d5 014937 beq att_car_control_handle ,car_control_le_receive 
+0x44d6 014938 rtn 
+:      014940 le_app_receive_data:
+0x44d7 014941 bpatch patch05_7 ,mem_patch05 
+0x44d8 014942 ifetch 5 ,rega 
+0x44d9 014943 store 5 ,mem_app_receive_temp 
+0x44da 014944 fetch 2 ,mem_app_receive_temp 
+0x44db 014945 arg le_receive_packet_head ,temp 
+0x44dc 014946 isub temp ,null 
+0x44dd 014947 nrtn zero 
+0x44de 014948 fetch 2 ,mem_app_receive_temp + 3 
+0x44df 014949 byteswap pdata ,pdata 
+0x44e0 014950 store 2 ,mem_app_receive_temp + 3 
+0x44e1 014951 copy pdata ,loopcnt 
+0x44e2 014952 increase 5 ,rega 
+0x44e3 014953 copy rega ,contr 
+0x44e4 014954 arg mem_app_receive_temp + 5 ,contw 
+0x44e5 014955 call memcpy 
+0x44e6 014956 ifetch 1 ,contr 
+0x44e7 014957 store 1 ,mem_app_receive_temp + 15 
+0x44e8 014958 arg mem_app_receive_temp + 2 ,rega 
+0x44e9 014959 arg mem_app_receive_temp + 5 ,regb 
+0x44ea 014960 rtn 
+:      014962 car_control_le_receive:
+0x44eb 014963 setarg 0 
+0x44ec 014964 store 5 ,mem_le_receive_payload 
+0x44ed 014965 store 5 ,mem_le_receive_payload + 5 
+0x44ee 014966 call le_app_receive_data 
+0x44ef 014967 copy regb ,contr 
+0x44f0 014968 arg mem_le_receive_payload ,contw 
+0x44f1 014969 arg 10 ,loopcnt 
+0x44f2 014970 call memcpy 
+:      014971 car_receive_cmd_select:
+0x44f3 014972 bpatch patch06_0 ,mem_patch06 
+0x44f4 014973 ifetch 1 ,rega 
+0x44f5 014974 beq car_cmd_old_car_control ,car_drive_old 
+0x44f6 014975 beq car_cmd_old_speed_control ,car_speed_set_old 
+0x44f7 014976 beq car_cmd_l_r_motor_control ,car_motor_control 
+0x44f8 014977 beq car_cmd_f_b_motor_control ,car_motor_control 
+0x44f9 014978 beq car_cmd_ir_control ,car_ir_data_rx_from_app 
+0x44fa 014979 beq car_cmd_led_control ,car_led_control_receive 
+0x44fb 014980 beq car_cmd_device_info ,car_info_request 
+0x44fc 014981 rtn 
+:      014983 car_24g_receive_data:
+0x44fd 014984 call car_control_le_receive 
+0x44fe 014985 fetch 1 ,mem_app_receive_temp + 2 
+0x44ff 014986 beq car_cmd_l_r_motor_control ,car_24g_receive_data_next 
+0x4500 014987 beq car_cmd_f_b_motor_control ,car_24g_receive_data_next 
+0x4501 014988 rtn 
+:      014989 car_24g_receive_data_next:
+0x4502 014990 fetch 1 ,mem_le_receive_payload 
+0x4503 014991 ncall car_moto1_enable_blank_data_timer ,blank 
+0x4504 014992 fetch 1 ,mem_le_receive_payload + 2 
+0x4505 014993 ncall car_moto2_enable_blank_data_timer ,blank 
+0x4506 014994 fetch 1 ,mem_le_receive_payload + 4 
+0x4507 014995 ncall car_moto3_enable_blank_data_timer ,blank 
+0x4508 014996 rtn 
+:      014998 car_moto1_enable_blank_data_timer:
+0x4509 014999 jam 5 ,mem_car_moto1_blank_timer 
+0x450a 015000 rtn 
+:      015001 car_moto2_enable_blank_data_timer:
+0x450b 015002 jam 5 ,mem_car_moto2_blank_timer 
+0x450c 015003 rtn 
+:      015004 car_moto3_enable_blank_data_timer:
+0x450d 015005 jam 5 ,mem_car_moto3_blank_timer 
+0x450e 015006 rtn 
+:      015008 car_moto1_blank_data_timer:
+0x450f 015009 arg mem_car_moto1_blank_timer ,regc 
+0x4510 015010 arg car_moto1_blank_data ,regb 
+0x4511 015011 branch timer_single_step 
+:      015012 car_moto2_blank_data_timer:
+0x4512 015013 arg mem_car_moto2_blank_timer ,regc 
+0x4513 015014 arg car_moto2_blank_data ,regb 
+0x4514 015015 branch timer_single_step 
+:      015016 car_moto3_blank_data_timer:
+0x4515 015017 arg mem_car_moto3_blank_timer ,regc 
+0x4516 015018 arg car_moto3_blank_data ,regb 
+0x4517 015019 branch timer_single_step 
+:      015021 car_moto1_blank_data:
+0x4518 015022 jam 0 ,mem_le_receive_payload 
+0x4519 015023 branch car_motor_control 
+:      015024 car_moto2_blank_data:
+0x451a 015025 jam 0 ,mem_le_receive_payload + 2 
+0x451b 015026 branch car_motor_control 
+:      015027 car_moto3_blank_data:
+0x451c 015028 jam 0 ,mem_le_receive_payload + 4 
+0x451d 015029 branch car_motor_control 
+:      015034 car_drive_old:
+0x451e 015035 fetch 1 ,mem_le_receive_payload 
+0x451f 015036 store 1 ,mem_motor1_status 
+0x4520 015037 fetch 1 ,mem_le_receive_payload + 1 
+0x4521 015038 store 1 ,mem_motor2_status 
+0x4522 015039 branch car_motor_control_common 
+:      015043 car_left_right_control_old:
+0x4523 015044 fetch 1 ,mem_le_receive_payload 
+0x4524 015045 store 1 ,mem_motor2_status 
+0x4525 015046 branch car_motor2_control 
+:      015047 car_front_back_control_old:
+0x4526 015048 fetch 1 ,mem_motor1_speed 
+0x4527 015049 call car_reset_old_speed 
+0x4528 015050 fetch 1 ,mem_le_receive_payload + 1 
+0x4529 015051 store 1 ,mem_motor1_status 
+0x452a 015052 branch car_motor1_control 
+:      015053 car_reset_old_speed:
+0x452b 015054 beq speed_level_2 ,car_reset_old_speed2 
+0x452c 015055 beq speed_level_3 ,car_reset_old_speed3 
+0x452d 015056 store 1 ,mem_motor1_speed 
+0x452e 015057 rtn 
+:      015058 car_reset_old_speed2:
+0x452f 015059 jam speed_level_5 ,mem_motor1_speed 
+0x4530 015060 rtn 
+:      015061 car_reset_old_speed3:
+0x4531 015062 jam speed_level_10 ,mem_motor1_speed 
+0x4532 015063 rtn 
+:      015064 car_speed_set_old:
+0x4533 015065 fetch 1 ,mem_le_receive_payload 
+0x4534 015066 call car_reset_old_speed 
+0x4535 015067 fetch 1 ,mem_motor1_speed 
+0x4536 015068 call car_motor_speed_duty_setting 
+0x4537 015069 call car_motor_speed_duty_transform 
+0x4538 015070 jam 0x00 ,mem_pdatatemp + 1 
+0x4539 015071 branch pwm_duty_cycle_set 
+:      015073 car_motor_control:
+0x453a 015074 fetch 1 ,mem_car_24g_go_die_flag 
+0x453b 015075 nrtn blank 
+0x453c 015076 fetch 6 ,mem_le_receive_payload 
+0x453d 015077 store 6 ,mem_motor1_status 
+0x453e 015078 fetch 1 ,mem_motor1_speed 
+0x453f 015079 fetcht 1 ,mem_motor2_speed 
+0x4540 015080 iand temp ,pdata 
+0x4541 015081 fetcht 1 ,mem_motor3_speed 
+0x4542 015082 iand temp ,pdata 
+0x4543 015083 call car_motor_working_flag ,blank 
+:      015084 car_motor_control_common:
+0x4544 015085 bpatch patch06_1 ,mem_patch06 
+0x4545 015086 fetch 2 ,mem_ui_state_map 
+0x4546 015087 isolate1 ui_state_ble_connected ,pdata 
+0x4547 015088 ncall car_lpm_timer_enable ,true 
+0x4548 015089 call car_motor1_control 
+0x4549 015090 call car_motor2_control 
+0x454a 015091 branch car_conn_led_state 
+:      015093 car_conn_led_state:
+0x454b 015094 fetch 1 ,mem_motor1_status 
+0x454c 015095 fetcht 1 ,mem_motor2_status 
+0x454d 015096 iadd temp ,pdata 
+0x454e 015097 nbranch check_51cmd_led_on ,blank 
+0x454f 015098 branch check_51cmd_led_off 
+:      015100 car_motor1_control:
+0x4550 015101 arg mem_motor1_status ,contr 
+0x4551 015102 branch car_motor1_status_select 
+:      015103 car_motor2_control:
+0x4552 015104 arg mem_motor2_status ,contr 
+0x4553 015105 branch car_motor2_status_select 
+:      015106 car_motor3_control:
+0x4554 015107 arg mem_motor3_status ,contr 
+0x4555 015108 branch car_motor_status_select 
+:      015109 car_motor_working_flag:
+0x4556 015110 jam 0 ,mem_car_working_flag 
+0x4557 015111 rtn 
+:      015113 car_motor1_status_select:
+0x4558 015114 ifetch 1 ,contr 
+0x4559 015115 beq turn_front ,car_lr_motor_stop 
+0x455a 015116 beq turn_left ,car_lr_motor_left 
+0x455b 015117 beq turn_right ,car_lr_motor_right 
+0x455c 015118 rtn 
+:      015119 car_motor2_status_select:
+0x455d 015120 ifetch 1 ,contr 
+0x455e 015121 beq motor_stop ,car_fb_motor_stop 
+0x455f 015122 beq go_back ,car_fb_motor_front 
+0x4560 015123 beq go_front ,car_fb_motor_back 
+0x4561 015124 rtn 
+:      015126 car_lr_motor_stop:
+0x4562 015127 fetcht 1 ,mem_car_motor_left_gpio 
+0x4563 015128 call gpio_out_inactive 
+0x4564 015129 fetcht 1 ,mem_car_motor_right_gpio 
+0x4565 015130 branch gpio_out_inactive 
+:      015131 car_lr_motor_left:
+0x4566 015132 fetcht 1 ,mem_car_motor_left_gpio 
+0x4567 015133 call gpio_out_active 
+0x4568 015134 fetcht 1 ,mem_car_motor_right_gpio 
+0x4569 015135 branch gpio_out_inactive 
+:      015136 car_lr_motor_right:
+0x456a 015137 fetcht 1 ,mem_car_motor_left_gpio 
+0x456b 015138 call gpio_out_inactive 
+0x456c 015139 fetcht 1 ,mem_car_motor_right_gpio 
+0x456d 015140 branch gpio_out_active 
+:      015141 car_fb_motor_stop:
+0x456e 015142 fetcht 1 ,mem_car_motor_front_gpio 
+0x456f 015143 call gpio_out_inactive 
+0x4570 015144 fetcht 1 ,mem_car_motor_back_gpio 
+0x4571 015145 branch gpio_out_inactive 
+:      015146 car_fb_motor_front:
+0x4572 015147 fetcht 1 ,mem_car_motor_front_gpio 
+0x4573 015148 call gpio_out_active 
+0x4574 015149 fetcht 1 ,mem_car_motor_back_gpio 
+0x4575 015150 branch gpio_out_inactive 
+:      015151 car_fb_motor_back:
+0x4576 015152 fetcht 1 ,mem_car_motor_front_gpio 
+0x4577 015153 call gpio_out_inactive 
+0x4578 015154 fetcht 1 ,mem_car_motor_back_gpio 
+0x4579 015155 branch gpio_out_active 
+:      015160 car_motor_status_select:
+0x457a 015161 bpatch patch06_2 ,mem_patch06 
+0x457b 015162 ifetch 1 ,contr 
+0x457c 015163 beq motor_stop ,car_motor_stop 
+0x457d 015164 beq go_front ,car_motor_positive 
+0x457e 015165 beq go_back ,car_motor_negative 
+0x457f 015166 rtn 
+:      015167 car_motor_positive:
+0x4580 015168 jam 0 ,mem_motor_select_p_n 
+0x4581 015169 branch car_motor_negative + 1 
+:      015170 car_motor_negative:
+0x4582 015171 jam 1 ,mem_motor_select_p_n 
+0x4583 015172 ifetch 1 ,contr 
+0x4584 015173 store 1 ,mem_car_motor_speed 
+0x4585 015174 ifetch 8 ,regb 
+0x4586 015175 branch car_motor_work 
+:      015177 car_motor_stop:
+0x4587 015178 ifetch 1 ,regb 
+0x4588 015179 call pwm_disable 
+0x4589 015180 increase 1 ,regb 
+0x458a 015181 ifetch 1 ,regb 
+0x458b 015182 branch pwm_disable 
+:      015183 car_motor_work:
+0x458c 015184 store 8 ,mem_motor_pwm_pin1_set 
+0x458d 015185 jam 1 ,mem_car_working_flag 
+0x458e 015186 fetch 1 ,mem_motor_select_p_n 
+0x458f 015187 beq 0 ,car_motor_select_positive 
+:      015188 car_motor_select_negative:
+0x4590 015189 fetch 1 ,mem_motor_pwm_pin2_set 
+0x4591 015190 store 1 ,mem_motor_pwm_pin_set 
+0x4592 015191 fetch 1 ,mem_motor_pwm_pin1_set 
+:      015192 car_motor_work_next:
+0x4593 015193 call pwm_disable 
+0x4594 015194 fetch 1 ,mem_car_motor_speed 
+0x4595 015195 call car_motor_speed_duty_setting 
+0x4596 015196 store 1 ,mem_motor_pwm_dute_set 
+0x4597 015197 fetch 6 ,mem_motor_pwm_pin_set 
+0x4598 015198 store 6 ,mem_pdatatemp 
+0x4599 015199 branch pwm_out_set 
+:      015200 car_motor_select_positive:
+0x459a 015201 fetch 1 ,mem_motor_pwm_pin1_set 
+0x459b 015202 store 1 ,mem_motor_pwm_pin_set 
+0x459c 015203 fetch 1 ,mem_motor_pwm_pin2_set 
+0x459d 015204 branch car_motor_work_next 
+:      015206 car_motor_speed_duty_setting:
+0x459e 015207 mul32 pdata ,5 ,pdata 
+0x459f 015208 add pdata ,50 ,pdata 
+0x45a0 015209 rtn 
+:      015210 car_motor_speed_duty_transform:
+0x45a1 015211 arg 12000 ,temp 
+0x45a2 015212 imul32 temp ,pdata 
+0x45a3 015213 div pdata ,100 
+0x45a4 015214 call wait_div_end 
+0x45a5 015215 quotient temp 
+0x45a6 015216 copy temp ,rega 
+0x45a7 015217 setarg 12000 
+0x45a8 015218 isub temp ,regb 
+0x45a9 015219 rtn 
+:      015221 car_ir_data_rx_from_app:
+0x45aa 015222 rtn 
+:      015224 car_led_control_receive:
+0x45ab 015225 fetch 8 ,mem_le_receive_payload 
+0x45ac 015226 store 8 ,mem_car_led_control 
+0x45ad 015227 rtn 
+:      015229 car_info_request:
+0x45ae 015230 fetch 1 ,mem_car_config_device_select 
+0x45af 015231 store 1 ,mem_car_info_request_payload 
+0x45b0 015232 fetch 1 ,mem_car_config_motor_layout 
+0x45b1 015233 store 1 ,mem_car_info_request_payload + 1 
+0x45b2 015234 fetch 1 ,mem_car_config_ir_enable 
+0x45b3 015235 store 1 ,mem_car_info_request_payload + 2 
+0x45b4 015236 arg 13 ,loopcnt 
+0x45b5 015237 arg mem_car_info_request_head ,contr 
+0x45b6 015238 call calc_check_sum_start 
+0x45b7 015239 store 1 ,mem_car_info_request_checksum 
+0x45b8 015240 arg mem_car_info_request ,rega 
+0x45b9 015241 branch queue_push 
+:      015245 car_g24_init:
+0x45ba 015246 setarg 0 
+0x45bb 015247 store 8 ,mem_24g_bind_payload 
+0x45bc 015248 call g24_receive_init 
+0x45bd 015249 branch g24_mode_switch_init 
+:      015251 car_g24_receive_process:
+0x45be 015252 call car_g24_mode_switch 
+0x45bf 015253 call car_g24_work_mode 
+0x45c0 015254 call car_g24_bind_mode 
+0x45c1 015255 branch car_g24_lpm_dipatch 
+:      015257 car_g24_mode_switch:
+0x45c2 015258 call g24_mode_switch_bind_work 
+:      015259 car_g24_bind_mode_enable:
+0x45c3 015260 fetch 1 ,mem_24g_work_mode 
+0x45c4 015261 rtnne dongle_bind 
+0x45c5 015262 fetch 1 ,mem_car_24g_bind_enable_delay_count 
+0x45c6 015263 nbranch g24_switch_work_mode ,blank 
+0x45c7 015264 fetch 1 ,mem_car_24g_status 
+0x45c8 015265 beq work_search ,g24_switch_work_mode 
+0x45c9 015266 rtn 
+:      015268 car_g24_work_mode:
+0x45ca 015269 fetch 1 ,mem_24g_work_mode 
+0x45cb 015270 rtnne dongle_work 
+0x45cc 015271 call car_g24_work_mode_start 
+0x45cd 015272 branch car_g24_ch_polling_clear ,user3 
+:      015273 car_g24_receive_ch_polling:
+0x45ce 015274 fetch 1 ,mem_car_enter_lpm_flag 
+0x45cf 015275 rtn blank 
+0x45d0 015276 fetch 1 ,mem_car_24g_ch_polling 
+0x45d1 015277 increase 1 ,pdata 
+0x45d2 015278 store 1 ,mem_car_24g_ch_polling 
+0x45d3 015279 beq 4 ,car_g24_ch_polling_clear 
+0x45d4 015280 call g24_ch 
+0x45d5 015281 call car_g24_receive_packet_start 
+0x45d6 015282 nbranch car_g24_receive_ch_polling ,user3 
+:      015283 car_g24_ch_polling_clear:
+0x45d7 015284 jam 0 ,mem_car_24g_ch_polling 
+0x45d8 015285 rtn 
+:      015286 car_g24_work_mode_start:
+0x45d9 015287 fetch 1 ,mem_24g_work_mode 
+0x45da 015288 rtnne dongle_work 
+0x45db 015289 call car_g24_work_init 
+0x45dc 015290 call g24_ch_process 
+0x45dd 015291 branch car_g24_receive_packet_start 
+:      015292 car_g24_work_init:
+0x45de 015293 fetch 1 ,mem_24g_mode_init 
+0x45df 015294 rtnbit1 dongle_work 
+0x45e0 015295 set1 dongle_work ,pdata 
+0x45e1 015296 store 1 ,mem_24g_mode_init 
+0x45e2 015297 fetch 1 ,mem_tx_power_temp 
+0x45e3 015298 store 1 ,mem_tx_power 
+0x45e4 015299 jam 0 ,mem_24g_ackpayload_enable 
+0x45e5 015300 jam 0 ,mem_usb_tx_enable 
+0x45e6 015301 jam 1 ,mem_24g_abort_packet 
+0x45e7 015302 jam 0 ,mem_24g_pid 
+0x45e8 015304 fetch 4 ,mem_car_24g_commom_addr 
+0x45e9 015305 branch g24_work_init + 12 
+:      015306 car_g24_receive_packet_start:
+0x45ea 015307 call g24_receive_transmit_ack 
+0x45eb 015308 nbranch g24_rx_interrupt_clear ,user3 
+:      015309 p_g24_receive_packet_parse:
+0x45ec 015310 call g24_receive_packet_parse_pid_crc 
+0x45ed 015311 nbranch g24_rx_interrupt_clear ,user 
+0x45ee 015312 fetch 1 ,mem_24g_rxdata_length 
+0x45ef 015313 branch g24_rx_interrupt_clear ,blank 
+0x45f0 015314 increase 2 ,pdata 
+0x45f1 015315 iforce loopcnt 
+0x45f2 015316 arg mem_24g_rxbuf ,contr 
+0x45f3 015317 arg mem_24g_rxdata_temp ,contw 
+0x45f4 015318 call memcpy 
+0x45f5 015319 jam 0 ,mem_24g_mode_switch 
+0x45f6 015320 fetch 1 ,mem_24g_pair_mode 
+0x45f7 015321 call g24_enable_nodata_timer ,blank 
+0x45f8 015322 fetch 1 ,mem_24g_rxdata_temp + 2 
+0x45f9 015323 beq datatype_attemp ,car_g24_data_attemp 
+0x45fa 015324 beq datatype_device1 ,car_g24_data_device1 
+0x45fb 015325 branch g24_receive_packet_parse + 14 
+:      015326 car_g24_data_attemp:
+0x45fc 015327 fetch 1 ,mem_24g_pair_mode 
+0x45fd 015328 nrtn blank 
+0x45fe 015329 fetch 1 ,mem_24g_bind_device_status 
+0x45ff 015330 rtn blank 
+0x4600 015332 branch g24_data_attemp 
+:      015333 car_g24_data_device1:
+0x4601 015334 call g24_ch_timer_reinit 
+0x4602 015335 fetch 1 ,mem_24g_abort_packet 
+0x4603 015336 fetcht 1 ,mem_24g_rxdata_temp 
+0x4604 015337 isolate1 bit_abort ,temp 
+0x4605 015338 setflag true ,0 ,pdata 
+0x4606 015339 store 1 ,mem_24g_abort_packet 
+0x4607 015340 beq 1 ,car_g24_data_attemp_device1_abort 
+0x4608 015341 branch g24_data_device1 + 7 
+:      015342 car_g24_data_attemp_device1_abort:
+0x4609 015343 fetch 1 ,mem_device_option 
+0x460a 015344 sub pdata ,dvc_op_car ,null 
+0x460b 015345 call check_51cmd_led_on ,zero 
+0x460c 015346 fetch 4 ,mem_24g_rxdata_temp + 10 
+0x460d 015347 branch g24_store_device1_addr 
+:      015349 car_g24_bind_mode:
+0x460e 015350 fetch 1 ,mem_24g_work_mode 
+0x460f 015351 rtnne dongle_bind 
+0x4610 015352 call g24_bind_init 
+0x4611 015353 call car_g24_bind_device_addr 
+0x4612 015355 call g24_rx_interrupt_clear 
+0x4613 015356 call g24_receive_packet 
+0x4614 015357 nbranch g24_rx_interrupt_clear ,user3 
+0x4615 015358 call g24_bind_data_parse 
+0x4616 015359 call g24_transmit_ack 
+0x4617 015360 call g24_bind_device_status_check 
+0x4618 015361 call g24_bind_data_process + 8 
+0x4619 015363 fetch 1 ,mem_24g_bind_device_status 
+0x461a 015364 nbranch car_g24_bind_mode_exit ,blank 
+0x461b 015365 call g24_nodata_process 
+0x461c 015366 fetch 1 ,mem_24g_nodata_timer_enable 
+0x461d 015367 rtn blank 
+0x461e 015368 setarg 0 
+0x461f 015369 store 4 ,mem_24g_device1_addr 
+0x4620 015370 rtn 
+:      015371 car_g24_bind_mode_exit:
+0x4621 015372 jam 0 ,mem_24g_mode_switch 
+0x4622 015373 arg 0 ,rega 
+0x4623 015374 call check_51cmd_led_on 
+0x4624 015375 call g24_switch_work_mode 
+0x4625 015376 call g24_timer_init 
+0x4626 015378 fetch 4 ,mem_24g_lap 
+0x4627 015379 store 4 ,mem_car_24g_commom_addr 
+0x4628 015380 fetch 1 ,mem_car_save_addr_flag 
+0x4629 015381 ncall car_g24_save_commom_addr ,blank 
+0x462a 015383 fetch 4 ,mem_car_24g_commom_addr 
+0x462b 015384 branch g24_update_addr_and_synccrc8 
+:      015386 car_g24_save_commom_addr:
+0x462c 015388 fetch 1 ,mem_car_save_addr_flag 
+0x462d 015389 rtn blank 
+0x462e 015390 fetch 1 ,mem_24g_transmitter_addr + 1 
+0x462f 015391 store 1 ,mem_car_24g_commom_addr + 3 
+0x4630 015393 fetch 1 ,mem_24g_lap + 1 
+0x4631 015394 store 1 ,mem_car_24g_commom_addr + 2 
+0x4632 015396 fetch 1 ,mem_24g_transmitter_addr 
+0x4633 015397 store 1 ,mem_car_24g_commom_addr + 1 
+0x4634 015399 fetch 1 ,mem_24g_lap 
+0x4635 015400 store 1 ,mem_car_24g_commom_addr 
+0x4636 015401 rtn 
+0x4637 015402 call car_g24_search_commom_addr 
+0x4638 015403 fetch 4 ,mem_car_24g_commom_addr 
+0x4639 015404 fetcht 4 ,mem_car_24g_commom_addr_temp 
+0x463a 015405 isub temp ,null 
+0x463b 015406 rtn zero 
+0x463c 015407 copy regc ,regb 
+0x463d 015408 arg mem_car_24g_commom_addr ,rega 
+0x463e 015409 arg 4 ,loopcnt 
+0x463f 015410 branch otp_write 
+:      015412 car_g24_load_commom_addr:
+0x4640 015414 fetch 4 ,mem_24g_lap 
+0x4641 015415 store 4 ,mem_car_24g_commom_addr 
+0x4642 015416 fetch 1 ,mem_car_save_addr_flag 
+0x4643 015417 rtn blank 
+0x4644 015418 rtn 
+0x4645 015419 call car_g24_search_commom_addr 
+0x4646 015420 fetch 4 ,mem_car_24g_commom_addr_temp 
+0x4647 015421 rtn blank 
+0x4648 015422 store 4 ,mem_car_24g_commom_addr 
+0x4649 015423 rtn 
+:      015426 car_g24_search_commom_addr:
+0x464a 015427 rtn 
+0x464b 015428 fetch 1 ,mem_car_save_addr_flag 
+0x464c 015429 rtn blank 
+0x464d 015430 arg otp_offset_car_commom_start_addr ,regc 
+:      015431 car_g24_search_commom_addr_loop:
+0x464e 015432 copy regc ,regb 
+0x464f 015433 arg mem_car_24g_commom_addr_read ,rega 
+0x4650 015434 arg 4 ,loopcnt 
+0x4651 015435 call otp_read_data 
+0x4652 015436 fetch 4 ,mem_car_24g_commom_addr_read 
+0x4653 015437 rtn blank 
+0x4654 015438 store 4 ,mem_car_24g_commom_addr_temp 
+0x4655 015439 copy regc ,pdata 
+0x4656 015440 arg otp_offset_car_commom_end_addr ,temp 
+0x4657 015441 isub temp ,null 
+0x4658 015442 rtn positive 
+0x4659 015443 increase 4 ,regc 
+0x465a 015444 branch car_g24_search_commom_addr_loop 
+:      015446 car_g24_bind_device_addr:
+0x465b 015447 fetch 4 ,mem_24g_device1_addr 
+0x465c 015448 rtn blank 
+0x465d 015449 branch g24_update_addr_and_synccrc8 
+:      015451 car_g24_cb_data_device1:
+0x465e 015452 fetch 2 ,mem_ui_state_map 
+0x465f 015453 rtnbit1 ui_state_ble_connected 
+0x4660 015454 fetch 2 ,mem_car_24g_no_data_timeout_count 
+0x4661 015455 store 2 ,mem_car_24g_no_data_timeout_timer 
+0x4662 015456 jam work_paired ,mem_car_24g_received_pac 
+0x4663 015457 arg mem_24g_rxdata_temp + 3 ,rega 
+0x4664 015458 branch car_24g_receive_data 
+:      015460 car_g24_lpm_dipatch:
+0x4665 015461 fetch 1 ,mem_car_enter_lpm_flag 
+0x4666 015462 rtn blank 
+0x4667 015463 call car_g24_lpm_wait 
+0x4668 015464 nrtn user 
+0x4669 015465 fetch 3 ,mem_24g_enter_hibernate 
+0x466a 015466 call clk2lpo 
+0x466b 015467 storet 4 ,mem_sleep_counter 
+0x466c 015468 branch lpm_sleep 
+:      015469 car_g24_lpm_wait:
+0x466d 015470 enable user 
+0x466e 015471 call lpo_calibration 
+0x466f 015472 fetch 3 ,mem_clks_per_lpo 
+0x4670 015473 branch disable_user ,blank 
+0x4671 015474 branch car_le_process_lpm_before 
+:      015480 remote_car_init:
+0x4672 015481 rtn wake 
+0x4673 015482 call remote_car_default_init 
+0x4674 015483 call keyscan_key_init 
+0x4675 015484 setarg remote_car_g24_package_data 
+0x4676 015485 store 2 ,mem_cb_24g_transmit_data 
+0x4677 015487 setarg remote_car_process_lpm_before 
+0x4678 015488 store 2 ,mem_cb_24g_lpm_before 
+0x4679 015490 setarg remote_car_le_before_hibernate 
+0x467a 015491 store 2 ,mem_cb_before_hibernate 
+0x467b 015493 setarg remote_car_scale_process_idle 
+0x467c 015494 store 2 ,mem_cb_idle_process 
+0x467d 015496 setarg remote_car_scale_process_bb_event 
+0x467e 015497 store 2 ,mem_cb_bb_event_process 
+0x467f 015499 setarg remote_car_event_timer 
+0x4680 015500 store 2 ,mem_cb_event_timer 
+0x4681 015502 setarg remote_car_power_off_signal 
+0x4682 015503 store 2 ,mem_remote_car_power_off_cb 
+0x4683 015505 setarg remote_car_soft_switch_power_on_signal 
+0x4684 015506 store 2 ,mem_remote_car_power_standby_cb 
+0x4685 015509 bpatch patch06_3 ,mem_patch06 
+0x4686 015510 call set_eeprom_size_2k 
+0x4687 015511 call remote_car_init_environment 
+0x4688 015513 call queue_init 
+0x4689 015514 fetch 1 ,mem_remote_car_config_soft_switch_enable 
+0x468a 015515 store 1 ,mem_remote_car_hard_soft_switch 
+0x468b 015516 beq hard_switch ,remote_car_hard_switch_power_on_signal 
+0x468c 015517 fetch 1 ,mem_remote_car_config_soft_switch_gpio 
+0x468d 015518 store 1 ,mem_ui_button_gpio 
+:      015519 remote_car_soft_switch_power_on_init:
+0x468e 015520 call remote_car_ui_led_init 
+0x468f 015521 call ui_button_init 
+0x4690 015522 call ui_button_polling 
+0x4691 015523 jam power_starting ,mem_remote_car_power_state 
+0x4692 015524 fetch 2 ,mem_ui_state_map 
+0x4693 015525 rtnbit1 ui_state_btn_down 
+0x4694 015526 branch app_enter_hibernate 
+:      015530 remote_car_hard_switch_power_on_signal:
+0x4695 015531 jam power_standby ,mem_remote_car_power_state 
+:      015532 remote_car_soft_switch_power_on_signal:
+0x4696 015533 call remote_car_ui_led_init 
+0x4697 015534 arg 0 ,rega 
+0x4698 015535 call ui_led_blink_start_global 
+0x4699 015536 call remote_car_g24_load_commom_addr 
+0x469a 015537 fetch 4 ,mem_remote_24g_commom_addr 
+0x469b 015538 store 4 ,mem_24g_addr 
+0x469c 015539 branch g24_pair_start ,blank 
+0x469d 015540 fetch 4 ,mem_24g_addr 
+0x469e 015541 store 4 ,mem_24g_receiver_addr 
+0x469f 015542 fetch 2 ,mem_24g_reconn_timeout_init 
+0x46a0 015543 store 2 ,mem_24g_reconn_timeout 
+0x46a1 015544 branch g24_reconn_start 
+:      015546 remote_car_set_24g_addr_eeprom:
+0x46a2 015547 arg 4 ,temp 
+0x46a3 015548 arg mem_24g_addr ,rega 
+0x46a4 015549 arg remote_info_eeprom_offect ,regb 
+0x46a5 015550 rtn 
+:      015553 remote_car_power_off_signal:
+:      015554 remote_car_ui_led_init:
+0x46a6 015555 bpatch patch06_4 ,mem_patch06 
+0x46a7 015556 fetch 1 ,mem_remote_car_config_connect_led_gpio 
+0x46a8 015557 bne invalid_pin_num ,remote_car_pairing_led_gpio_set 
+:      015558 remote_car_ui_led_init_1:
+0x46a9 015559 fetcht 1 ,mem_remote_car_led_map 
+0x46aa 015560 branch gpio_config_output 
+:      015561 remote_car_pairing_led_gpio_set:
+0x46ab 015562 store 1 ,mem_remote_car_led_map 
+0x46ac 015563 branch remote_car_ui_led_init_1 
+:      015566 remote_car_init_environment:
+0x46ad 015567 call g24_transmit_init 
+:      015568 remote_no_data_timer_init:
+0x46ae 015569 fetch 2 ,mem_remote_car_no_data_timeout 
+0x46af 015570 store 2 ,mem_remote_car_no_data_timer 
+0x46b0 015571 rtn 
+:      015573 remote_car_le_before_hibernate:
+0x46b1 015574 call remote_car_process_lpm_before 
+:      015575 remote_gpio_set_before_hibernate:
+0x46b2 015576 fetch 1 ,mem_remote_style_struct_led_gpio 
+0x46b3 015577 set1 7 ,pdata 
+0x46b4 015578 arg gpcfg_output_high ,temp 
+0x46b5 015579 branch gpio_config_function 
+:      015581 remote_car_process_lpm_before:
+0x46b6 015582 call gpio_set_before_lpm 
+0x46b7 015583 branch keyscan_process_lpm_before 
+:      015585 remote_car_key_scan_process:
+0x46b8 015586 call keyscan_key_process 
+0x46b9 015587 call get_remote_key_state 
+0x46ba 015588 call remote_conn_led_state 
+0x46bb 015589 branch send_data 
+:      015591 remote_conn_led_state:
+0x46bc 015592 fetch 1 ,mem_remote_car_24g_status 
+0x46bd 015593 rtnne work_paired 
+0x46be 015594 fetch 4 ,mem_remote_car_motor1_key0_press_state 
+0x46bf 015595 branch remote_car_stop_state ,blank 
+0x46c0 015596 jam 0 ,mem_remote_car_no_data_check 
+0x46c1 015597 enable user 
+0x46c2 015598 branch check_51cmd_led_on 
+:      015599 remote_car_stop_state:
+0x46c3 015600 fetch 1 ,mem_remote_car_no_data_check 
+0x46c4 015601 rtneq 0xff 
+0x46c5 015602 pincrease 1 
+0x46c6 015603 store 1 ,mem_remote_car_no_data_check 
+0x46c7 015604 disable user 
+0x46c8 015605 branch check_51cmd_led_off 
+:      015608 get_remote_key_state:
+0x46c9 015609 fetcht 2 ,mem_key_value_retention 
+0x46ca 015610 and temp ,0x01 ,pdata 
+0x46cb 015611 rshift temp ,temp 
+0x46cc 015612 store 1 ,mem_remote_car_motor1_key0_press_state 
+0x46cd 015613 and temp ,0x01 ,pdata 
+0x46ce 015614 rshift temp ,temp 
+0x46cf 015615 store 1 ,mem_remote_car_motor1_key1_press_state 
+0x46d0 015616 and temp ,0x01 ,pdata 
+0x46d1 015617 rshift temp ,temp 
+0x46d2 015618 store 1 ,mem_remote_car_motor2_key2_press_state 
+0x46d3 015619 and temp ,0x01 ,pdata 
+0x46d4 015620 rshift temp ,temp 
+0x46d5 015621 store 1 ,mem_remote_car_motor2_key3_press_state 
+0x46d6 015622 rtn 
+:      015623 send_data:
+0x46d7 015624 bpatch patch06_5 ,mem_patch06 
+0x46d8 015625 call remote_car_fb_check 
+0x46d9 015626 call remote_car_lr_check 
+0x46da 015627 call remote_car_no_data_timeout_check 
+0x46db 015628 nrtn user 
+0x46dc 015629 branch remote_car_send_key 
+:      015632 remote_car_no_data_timeout_check:
+0x46dd 015633 fetch 1 ,mem_remote_car_24g_status 
+0x46de 015634 rtnne work_paired 
+0x46df 015635 fetch 1 ,mem_remote_car_no_data_check 
+0x46e0 015636 rtn blank 
+0x46e1 015637 sub pdata ,1 ,null 
+0x46e2 015638 nrtn positive 
+0x46e3 015639 fetch 2 ,mem_24g_reconn_timeout_init 
+0x46e4 015640 store 2 ,mem_24g_reconn_timeout 
+0x46e5 015641 branch enable_user 
+:      015645 remote_car_fb_check:
+0x46e6 015646 fetch 1 ,mem_remote_car_motor1_key0_press_state 
+0x46e7 015647 nbranch remote_car_send_motor1_key0_press ,blank 
+0x46e8 015648 fetch 1 ,mem_remote_car_motor1_key1_press_state 
+0x46e9 015649 nbranch remote_car_send_motor1_key1_press ,blank 
+0x46ea 015650 branch remote_car_send_motor1_key0_rel 
+:      015652 remote_car_lr_check:
+0x46eb 015653 fetch 1 ,mem_remote_car_motor2_key2_press_state 
+0x46ec 015654 nbranch remote_car_send_motor2_key2_press ,blank 
+0x46ed 015655 fetch 1 ,mem_remote_car_motor2_key3_press_state 
+0x46ee 015656 nbranch remote_car_send_motor2_key3_press ,blank 
+0x46ef 015657 branch remote_car_send_motor2_key2_rel 
+:      015660 remote_car_scale_process_idle:
+0x46f0 015661 call remote_car_24g_status_process 
+0x46f1 015662 branch remote_car_key_scan_process 
+:      015664 remote_car_scale_process_bb_event:
+0x46f2 015665 copy regc ,pdata 
+0x46f3 015666 beq bt_evt_button_up ,app_event_button_up 
+0x46f4 015667 beq bt_evt_button_long_pressed ,app_button_long_pressed 
+0x46f5 015668 beq bt_evt_24g_pairing_complete ,remote_car_24g_pairing_complete 
+0x46f6 015669 beq bt_evt_24g_attempt_success ,remote_car_24g_attempt_success 
+0x46f7 015670 beq bt_evt_24g_attempt_fail ,remote_car_24g_attempt_fail 
+0x46f8 015671 rtn 
+:      015673 remote_car_24g_attempt_fail:
+0x46f9 015674 branch g24_txbuf_clear 
+:      015676 remote_car_24g_pairing_complete:
+0x46fa 015677 bpatch patch06_6 ,mem_patch06 
+0x46fb 015678 fetch 4 ,mem_24g_receiver_addr 
+0x46fc 015679 store 4 ,mem_remote_24g_commom_addr 
+0x46fd 015680 fetch 1 ,mem_remote_save_addr_flag 
+0x46fe 015681 ncall remote_car_g24_save_commom_addr ,blank 
+0x46ff 015682 fetch 4 ,mem_remote_24g_commom_addr 
+0x4700 015683 call g24_update_addr_and_synccrc8 
+:      015686 remote_car_24g_attempt_success:
+0x4701 015687 jam 0 ,mem_24g_conn_sm 
+0x4702 015688 jam work_paired ,mem_remote_car_24g_auto_work_step 
+0x4703 015689 jam work_paired ,mem_remote_car_24g_pair_success_flag 
+0x4704 015690 jam 0 ,mem_24g_reconn_timeout 
+0x4705 015691 rtn 
+:      015692 remote_car_g24_save_commom_addr:
+0x4706 015695 fetch 1 ,mem_remote_save_addr_flag 
+0x4707 015696 rtn blank 
+0x4708 015697 fetch 1 ,mem_24g_lap + 1 
+0x4709 015698 store 1 ,mem_remote_24g_commom_addr + 3 
+0x470a 015700 fetch 1 ,mem_24g_receiver_addr + 1 
+0x470b 015701 store 1 ,mem_remote_24g_commom_addr + 2 
+0x470c 015703 fetch 1 ,mem_24g_lap 
+0x470d 015704 store 1 ,mem_remote_24g_commom_addr + 1 
+0x470e 015706 fetch 1 ,mem_24g_receiver_addr 
+0x470f 015707 store 1 ,mem_remote_24g_commom_addr 
+0x4710 015708 call remote_car_g24_search_commom_addr 
+0x4711 015709 fetch 4 ,mem_remote_24g_commom_addr 
+0x4712 015710 fetcht 4 ,mem_remote_24g_commom_addr_temp 
+0x4713 015711 isub temp ,null 
+0x4714 015712 rtn zero 
+0x4715 015713 copy regc ,regb 
+0x4716 015714 arg mem_remote_24g_commom_addr ,rega 
+0x4717 015715 arg 4 ,loopcnt 
+0x4718 015716 branch otp_write 
+:      015718 remote_car_g24_load_commom_addr:
+0x4719 015719 fetch 1 ,mem_remote_save_addr_flag 
+0x471a 015720 rtn blank 
+0x471b 015721 call remote_car_g24_search_commom_addr 
+0x471c 015722 fetch 4 ,mem_remote_24g_commom_addr_temp 
+0x471d 015723 rtn blank 
+0x471e 015724 store 4 ,mem_remote_24g_commom_addr 
+0x471f 015725 rtn 
+:      015728 remote_car_g24_search_commom_addr:
+0x4720 015729 fetch 1 ,mem_remote_save_addr_flag 
+0x4721 015730 rtn blank 
+0x4722 015731 arg otp_offset_remote_commom_start_addr ,regc 
+:      015732 remote_car_g24_search_commom_addr_loop:
+0x4723 015733 copy regc ,regb 
+0x4724 015734 arg mem_remote_24g_commom_addr_temp ,rega 
+0x4725 015735 arg 4 ,loopcnt 
+0x4726 015736 call otp_read_data 
+0x4727 015737 fetch 4 ,mem_remote_24g_commom_addr_read 
+0x4728 015738 rtn blank 
+0x4729 015739 store 4 ,mem_remote_24g_commom_addr_temp 
+0x472a 015740 copy regc ,pdata 
+0x472b 015741 arg otp_offset_remote_commom_end_addr ,temp 
+0x472c 015742 isub temp ,null 
+0x472d 015743 rtn positive 
+0x472e 015744 increase 4 ,regc 
+0x472f 015745 branch remote_car_g24_search_commom_addr_loop 
+:      015747 remote_car_24g_status_process:
+0x4730 015748 fetch 1 ,mem_remote_car_24g_auto_work_step 
+0x4731 015749 rtneq power_on 
+0x4732 015750 fetch 1 ,mem_remote_car_24g_status 
+0x4733 015751 rtneq work_paired 
+0x4734 015752 jam work_paired ,mem_remote_car_24g_status 
+:      015753 remote_car_scale_process_paired:
+0x4735 015754 arg 0 ,rega 
+0x4736 015755 branch ui_led_off_global 
+:      015756 remote_car_scale_process_shutdown:
+0x4737 015757 arg 0 ,rega 
+0x4738 015758 call ui_led_off_global 
+0x4739 015759 call remote_car_ui_led_init 
+0x473a 015760 branch app_enter_hibernate 
+:      015762 remote_car_event_timer:
+0x473b 015763 call app_power_timer 
+0x473c 015764 call g24_pair_timeout_timer 
+0x473d 015765 call g24_reconn_timeout_timer 
+0x473e 015766 branch remote_car_no_data_timer 
+:      015768 remote_car_no_data_timer:
+0x473f 015769 fetch 1 ,mem_remote_car_config_timeout_shutdown_enable 
+0x4740 015770 rtn blank 
+0x4741 015771 fetch 1 ,mem_key_value_retention 
+0x4742 015772 nbranch remote_no_data_timer_init ,blank 
+0x4743 015773 arg mem_remote_car_no_data_timer ,regc 
+0x4744 015774 arg remote_car_scale_process_shutdown ,regb 
+0x4745 015775 branch timer_single_step_2b 
+:      015779 remote_car_send_motor1_key0_press:
+0x4746 015780 jam motor_positive ,mem_remote_car_24g_motor1_payload 
+0x4747 015781 rtn 
+:      015782 remote_car_send_motor1_key1_press:
+0x4748 015783 jam motor_negative ,mem_remote_car_24g_motor1_payload 
+0x4749 015784 rtn 
+:      015785 remote_car_send_motor2_key2_press:
+0x474a 015786 jam motor_positive ,mem_remote_car_24g_motor2_payload 
+0x474b 015787 rtn 
+:      015788 remote_car_send_motor2_key3_press:
+0x474c 015789 jam motor_negative ,mem_remote_car_24g_motor2_payload 
+0x474d 015790 rtn 
+:      015793 remote_car_send_motor1_key0_rel:
+:      015794 remote_car_send_motor1_key1_rel:
+0x474e 015795 jam motor_stop ,mem_remote_car_24g_motor1_payload 
+0x474f 015796 rtn 
+:      015797 remote_car_send_motor2_key2_rel:
+:      015798 remote_car_send_motor2_key3_rel:
+0x4750 015799 jam motor_stop ,mem_remote_car_24g_motor2_payload 
+0x4751 015800 rtn 
+:      015802 remote_car_send_key:
+0x4752 015803 arg mem_remote_car_24g_motor_packet ,rega 
+0x4753 015804 branch queue_push 
+:      015805 remote_car_send_attack:
+0x4754 015806 arg mem_remote_car_24g_fire_packet ,rega 
+0x4755 015807 branch queue_push 
+:      015809 remote_car_g24_package_data:
+0x4756 015810 fetch 1 ,mem_remote_car_24g_pair_success_flag 
+0x4757 015811 beq work_paired ,remote_car_g24_send_empty 
+0x4758 015812 arg mem_remote_car_24g_tx_temp ,rega 
+0x4759 015813 call queue_pop 
+0x475a 015814 nbranch remote_car_moto_data ,user 
+:      015815 remote_car_g24_package_data_continue:
+0x475b 015816 arg mem_remote_car_24g_tx_temp ,contr 
+0x475c 015817 ifetch 1 ,contr 
+0x475d 015818 copy pdata ,rega 
+0x475e 015819 arg mem_remote_car_24g_tx_temp + 1 ,regb 
+0x475f 015822 rtn 
+:      015824 remote_car_g24_send_empty:
+0x4760 015825 jam 0 ,mem_remote_car_24g_pair_success_flag 
+0x4761 015826 enable user 
+0x4762 015827 arg 1 ,rega 
+0x4763 015828 arg mem_remote_car_empty_packet ,regb 
+0x4764 015829 rtn 
+:      015831 remote_car_moto_data:
+0x4765 015832 fetch 1 ,mem_remote_car_24g_tx_temp + 3 
+0x4766 015833 beq car_cmd_l_r_motor_control ,remote_car_moto_data_next 
+0x4767 015834 beq car_cmd_f_b_motor_control ,remote_car_moto_data_next 
+0x4768 015835 rtn 
+:      015836 remote_car_moto_data_next:
+0x4769 015837 fetch 1 ,mem_remote_car_24g_tx_temp + 6 
+0x476a 015838 nbranch remote_car_moto_data_enable_user ,blank 
+0x476b 015839 fetch 1 ,mem_remote_car_24g_tx_temp + 8 
+0x476c 015840 nbranch remote_car_moto_data_enable_user ,blank 
+0x476d 015841 fetch 1 ,mem_remote_car_24g_tx_temp + 10 
+0x476e 015842 nbranch remote_car_moto_data_enable_user ,blank 
+0x476f 015843 rtn 
+:      015844 remote_car_moto_data_enable_user:
+0x4770 015845 enable user 
+0x4771 015846 branch remote_car_g24_package_data_continue 
+:      015851 remote_car_default_init:
+0x4772 015852 jam 0x14 ,mem_ui_button_timeout 
+0x4773 015853 jam 0x01 ,mem_ui_button_last_state 
+0x4774 015854 setarg 0x060f 
+0x4775 015855 store 2 ,mem_remote_car_queue_each_size 
+0x4776 015856 setarg mem_remote_car_queue_each_size 
+0x4777 015857 store 2 ,mem_queue_ptr 
+0x4778 015858 jam 0x01 ,mem_lpm_mode 
+0x4779 015859 jam 0x06 ,mem_lpm_overhead 
+0x477a 015860 jam 0x02 ,mem_lpm_mult_timeout 
+0x477b 015861 jam 0x00 ,mem_remote_car_hard_soft_switch 
+0x477c 015862 setarg mem_remote_style_led_type 
+0x477d 015863 store 2 ,mem_ui_led_struct_ptr 
+0x477e 015864 jam 0x01 ,mem_ui_led_struct_num 
+0x477f 015865 jam 0xff ,mem_remote_style_blink_count 
+0x4780 015866 setarg 0x0296 
+0x4781 015867 store 2 ,mem_remote_style_on_time 
+0x4782 015868 setarg 0x073a 
+0x4783 015869 store 2 ,mem_remote_style_off_time 
+0x4784 015870 setarg mem_remote_car_soft_power 
+0x4785 015871 store 2 ,mem_power_param_ptr 
+0x4786 015872 setarg 0x0c0c 
+0x4787 015873 store 2 ,mem_remote_car_power_off_timeout 
+0x4788 015874 setarg mem_remote_car_keyscan 
+0x4789 015875 store 2 ,mem_keyscan_ptr 
+0x478a 015876 jam 0x00 ,mem_remote_car_config_soft_switch_enable 
+0x478b 015877 jam 0xff ,mem_remote_car_config_connect_led_gpio 
+0x478c 015878 jam 0xff ,mem_remote_car_config_soft_switch_gpio 
+0x478d 015879 jam 0x00 ,mem_remote_car_config_key_map 
+0x478e 015880 jam 0x00 ,mem_remote_car_config_layout 
+0x478f 015881 jam 0x00 ,mem_remote_car_config_check_way 
+0x4790 015882 jam 0x01 ,mem_remote_car_config_timeout_shutdown_enable 
+0x4791 015883 setarg 0x4e55 
+0x4792 015884 store 2 ,mem_current_vdd_value_default_mid_x 
+0x4793 015885 store 2 ,mem_current_vdd_value_default_mid_y 
+0x4794 015886 setarg 0x0007 
+0x4795 015887 store 2 ,mem_current_vdd_default_range 
+0x4796 015888 jam 0x02 ,mem_adc_config_flag 
+0x4797 015889 setsect 0 ,0x35a0c 
+0x4798 015890 setsect 1 ,0x11a 
+0x4799 015891 setsect 2 ,0x60 
+0x479a 015892 setsect 3 ,0x28 
+0x479b 015893 store 9 ,mem_remote_car_24g_motor_packet 
+0x479c 015894 setsect 0 ,0x2000a 
+0x479d 015895 setsect 1 ,0x02 
+0x479e 015896 istore 4 ,contw 
+0x479f 015897 setsect 0 ,0x35a08 
+0x47a0 015898 setsect 1 ,0x19a 
+0x47a1 015899 setsect 2 ,0x00 
+0x47a2 015900 setsect 3 ,0x00 
+0x47a3 015901 store 9 ,mem_remote_car_24g_fire_packet 
+0x47a4 015902 setarg 0x0064 
+0x47a5 015903 store 2 ,mem_remote_car_no_data_timeout 
+0x47a6 015904 jam tx_power_0db ,mem_tx_power 
+0x47a7 015905 jam 0x01 ,mem_24g_data_type 
+0x47a8 015906 jam 0x06 ,mem_24g_max_retry 
+0x47a9 015907 jam 0x01 ,mem_24g_pair_switch 
+0x47aa 015908 jam 0x00 ,mem_24g_fast_conn_enable 
+0x47ab 015909 call g24_rx_window_init 
+0x47ac 015910 call g24_interval_param_8ms 
+0x47ad 015911 call g24_chmap_param_init 
+0x47ae 015914 setarg 0x0708 
+0x47af 015915 store 2 ,mem_24g_pair_timeout_init 
+0x47b0 015916 setarg 0x0050 
+0x47b1 015917 store 2 ,mem_24g_reconn_timeout_init 
+0x47b2 015918 setarg 0x0a7700 
+0x47b3 015919 store 3 ,mem_24g_long_sleep_set 
+0x47b4 015920 setarg 0x604800 
+0x47b5 015921 store 3 ,mem_24g_enter_hibernate 
+0x47b6 015922 rtn 
+:      015929 dongle_init:
+0x47b7 015930 setarg dongle_dispatch 
+0x47b8 015931 store 2 ,mem_cb_24g_receive_process 
+0x47b9 015932 setarg dongle_g24_mouse 
+0x47ba 015933 store 2 ,mem_cb_24g_data_device1 
+0x47bb 015934 setarg dongle_g24_kb 
+0x47bc 015935 store 2 ,mem_cb_24g_data_device2 
+0x47bd 015936 setarg dongle_ackpayload_prep 
+0x47be 015937 store 2 ,mem_cb_24g_ackpayload 
+0x47bf 015938 setarg dongle_usb_config 
+0x47c0 015939 store 2 ,mem_cb_usb_config 
+0x47c1 015940 branch usb_init 
+:      015943 dongle_default_init:
+0x47c2 015944 bpatch patch06_7 ,mem_patch06 
+0x47c3 015946 call dongle_read_kb_bind_status 
+0x47c4 015947 call dongle_xtal_select 
+0x47c5 015948 fetch 1 ,mem_dg_sys_config 
+0x47c6 015949 isolate1 dg_enable_eeprom ,pdata 
+0x47c7 015950 branch dongle_default_no_eeprom ,true 
+0x47c8 015951 fetch 1 ,mem_dg_sys_config 
+0x47c9 015952 isolate1 dg_enable_new_chmap ,pdata 
+0x47ca 015953 call g24_chamap_param_update ,true 
+:      015954 dongle_default_no_eeprom:
+0x47cb 015955 fetch 1 ,mem_dg_24g_tx_power_default 
+0x47cc 015956 store 1 ,mem_tx_power 
+0x47cd 015958 jam 0xff ,mem_rssi_buff_index 
+0x47ce 015959 setarg mem_dg_rssi_noise_buffer 
+0x47cf 015960 store 2 ,mem_rssi_noise_buffer_ptr 
+0x47d0 015961 setarg mem_dg_rssi_noise_dg_buffer 
+0x47d1 015962 store 2 ,mem_rssi_noise_self_buffer_ptr 
+0x47d2 015963 setarg mem_dg_rssi_noise_ms_buffer 
+0x47d3 015964 store 2 ,mem_rssi_noise_device1_buffer_ptr 
+0x47d4 015965 setarg mem_dg_rssi_noise_kb_buffer 
+0x47d5 015966 store 2 ,mem_rssi_noise_device2_buffer_ptr 
+0x47d6 015967 jam tx_power_f5db ,mem_24g_pair_tx_power 
+0x47d7 015968 jam 0 ,mem_dg_kb_bind_success 
+0x47d8 015969 jam 0 ,mem_24g_bind_device_living 
+0x47d9 015970 call g24_enable_1m 
+0x47da 015971 fetch 1 ,mem_dg_sys_config 
+0x47db 015972 isolate1 dg_enable_24g_2m ,pdata 
+0x47dc 015973 call g24_enable_2m ,true 
+0x47dd 015974 call g24_receive_init 
+0x47de 015975 call g24_pair_param_init 
+0x47df 015976 call g24_chmap_param_init 
+0x47e0 015978 fetch 1 ,mem_dg_usb_tx_interval 
+0x47e1 015979 store 1 ,mem_usb_tx_interval 
+0x47e2 015980 fetch 9 ,mem_dg_usb_vid_pid 
+0x47e3 015981 store 9 ,mem_usb_vid_pid 
+0x47e4 015982 rtn 
+:      015984 dongle_xtal_select:
+0x47e5 015985 jam xtal_24m ,mem_fcomp_div 
+0x47e6 015986 fetch 1 ,mem_dg_sys_config 
+0x47e7 015987 rtnbit0 dg_enable_xtal_24m 
+0x47e8 015988 jam xtal_16m ,mem_fcomp_div 
+0x47e9 015989 rtn 
+:      015991 dongle_dispatch:
+0x47ea 015992 fetch 1 ,mem_24g_pair_mode 
+0x47eb 015993 beq 0x00 ,dongle_auto_bind 
+0x47ec 015994 beq 0x01 ,dongle_pc_bind 
+0x47ed 015995 beq 0x0f ,dongle_all_powerful 
+0x47ee 015996 rtn 
+:      015999 dongle_read_kb_bind_status:
+0x47ef 016000 bpatch patch07_0 ,mem_patch07 
+0x47f0 016001 arg dongle_kb_bind_efuse_offect ,regb 
+0x47f1 016002 arg mem_dg_kb_bind_flag ,rega 
+0x47f2 016003 arg 1 ,loopcnt 
+0x47f3 016004 branch otp_read_data 
+:      016006 dongle_write_kb_bind_status:
+0x47f4 016007 bpatch patch07_1 ,mem_patch07 
+0x47f5 016008 arg 1 ,loopcnt 
+0x47f6 016009 arg mem_dg_kb_bind_flag ,rega 
+0x47f7 016010 arg dongle_kb_bind_efuse_offect ,regb 
+0x47f8 016011 branch otp_write 
+:      016013 dongle_usb_config:
+0x47f9 016014 fetch 1 ,mem_dg_sys_config 
+0x47fa 016015 bbit1 dg_enable_kb_icon ,dongle_usb_config_kb 
+0x47fb 016016 fetch 1 ,mem_dg_kb_bind_flag 
+0x47fc 016017 bne dongle_kb_bind_success ,dongle_usb_config_param 
+:      016018 dongle_usb_config_kb:
+0x47fd 016019 jam dongle_kb_bind_success ,mem_dg_kb_bind_flag 
+0x47fe 016020 fetch 4 ,usb_devicedata_addr + 9 
+0x47ff 016021 set1 29 ,pdata 
+0x4800 016022 store 4 ,mem_devicedesc + 9 
+:      016023 dongle_usb_config_param:
+0x4801 016024 call dongle_usb_device_name 
+0x4802 016025 call usb_tx_interval_config 
+0x4803 016026 call dongle_usb_vid_pid_config 
+0x4804 016027 branch dongle_usb_hid_icon_config 
+:      016029 dongle_usb_vid_pid_config:
+0x4805 016030 fetch 1 ,mem_usb_vid_pid 
+0x4806 016031 rtn blank 
+0x4807 016032 fetch 1 ,mem_dg_kb_bind_flag 
+0x4808 016033 beq dongle_kb_bind_success ,dongle_usb_vid_pid_for_suit 
+:      016034 dongle_usb_vid_pid_for_mouse_only_auto_pair:
+0x4809 016035 fetch 4 ,mem_usb_vid_pid + 1 
+:      016036 dongle_usb_vid_pid_store:
+0x480a 016037 store 4 ,mem_devicedesc + 9 
+0x480b 016038 rtn 
+:      016039 dongle_usb_vid_pid_for_suit:
+0x480c 016040 fetch 4 ,mem_usb_vid_pid + 5 
+0x480d 016041 branch dongle_usb_vid_pid_store 
+:      016043 dongle_usb_hid_icon_config:
+0x480e 016044 fetch 1 ,mem_dg_kb_bind_flag 
+0x480f 016045 beq dongle_kb_bind_success ,dongle_usb_kb_hidreportdesc 
+0x4810 016046 setarg usb_kbdata_vendor_define_addr 
+0x4811 016047 store 2 ,mem_hidreportdesc_kb 
+0x4812 016048 jam 0x1a ,mem_confdesc + 26 
+0x4813 016049 rtn 
+:      016050 dongle_usb_kb_hidreportdesc:
+0x4814 016051 setarg usb_kbdata_addr 
+0x4815 016052 store 2 ,mem_hidreportdesc_kb 
+0x4816 016053 jam 0x3f ,mem_confdesc + 26 
+0x4817 016054 rtn 
+:      016056 dongle_usb_device_name:
+0x4818 016057 fetch 1 ,mem_dg_usb_device_name 
+0x4819 016058 rtn blank 
+0x481a 016059 arg mem_dg_usb_device_name ,contr 
+0x481b 016060 arg mem_string2 ,contw 
+0x481c 016061 arg 30 ,loopcnt 
+0x481d 016062 branch memcpy 
+:      016065 dongle_all_powerful:
+0x481e 016066 call g24_switch_work_mode 
+:      016067 dongle_all_powerful_loop:
+0x481f 016068 call dongle_work_mode_auto 
+0x4820 016069 call dongle_usb_dispatch 
+0x4821 016070 branch dongle_all_powerful_loop 
+:      016072 dongle_pc_bind:
+0x4822 016073 call g24_switch_work_mode 
+:      016074 dongle_pc_bind_loop:
+0x4823 016075 call dongle_work_mode_auto 
+0x4824 016076 call g24_bind_mode_auto 
+0x4825 016077 call dongle_usb_dispatch 
+0x4826 016078 branch dongle_pc_bind_loop 
+:      016080 dongle_g24_blank_data_process:
+0x4827 016081 call dongle_g24_ms_blank_data 
+0x4828 016082 call dongle_g24_kb_blank_data 
+0x4829 016083 call dongle_g24_kb_sys_ctrl_blank_data 
+0x482a 016084 branch dongle_g24_kb_mul_blank_data 
+:      016086 dongle_g24_ms_blank_data:
+0x482b 016087 bpatch patch07_2 ,mem_patch07 
+0x482c 016088 fetch 1 ,mem_dg_ms_blank_data_enable 
+0x482d 016089 rtn blank 
+0x482e 016090 arg g24_timer_ms_blank ,queue 
+0x482f 016091 call timer_check 
+0x4830 016092 nrtn blank 
+0x4831 016093 jam 0 ,mem_dg_ms_blank_data_enable 
+0x4832 016094 setarg ms_report_id 
+0x4833 016095 store 1 ,mem_usb_mouse_data 
+0x4834 016096 setarg 0 
+0x4835 016097 istore 7 ,contw 
+:      016098 dongle_usb_tx_ms_data:
+0x4836 016099 jam usb_ep2_ms ,mem_usb_ep2_data 
+:      016100 dongle_usb_tx_enable_ep2:
+0x4837 016101 fetch 1 ,mem_usb_tx_enable 
+0x4838 016102 set1 2 ,pdata 
+0x4839 016103 store 1 ,mem_usb_tx_enable 
+0x483a 016104 rtn 
+:      016106 dongle_g24_kb_blank_data:
+0x483b 016107 bpatch patch07_3 ,mem_patch07 
+0x483c 016108 fetch 1 ,mem_dg_kb_blank_data_enable 
+0x483d 016109 rtn blank 
+0x483e 016110 arg g24_timer_kb_blank ,queue 
+0x483f 016111 call timer_check 
+0x4840 016112 nrtn blank 
+0x4841 016113 jam 0 ,mem_dg_kb_blank_data_enable 
+0x4842 016114 arg mem_usb_kb_data ,contw 
+0x4843 016115 call memset0_16 
+0x4844 016116 fetch 8 ,mem_usb_kb_data 
+0x4845 016117 store 8 ,mem_dg_kb_data_last_data 
+:      016118 dongle_usb_tx_kb_data:
+0x4846 016119 jam kb_normal_report_id ,mem_usb_kb_data 
+:      016120 dongle_usb_tx_enable_ep1:
+0x4847 016121 jam usb_ep1_kb ,mem_usb_ep1_data 
+0x4848 016122 fetch 1 ,mem_usb_tx_enable 
+0x4849 016123 set1 1 ,pdata 
+0x484a 016124 store 1 ,mem_usb_tx_enable 
+0x484b 016125 rtn 
+:      016127 dongle_g24_kb_sys_ctrl_blank_data:
+0x484c 016128 fetch 1 ,mem_dg_kb_system_crtl_blank_data_enable 
+0x484d 016129 rtn blank 
+0x484e 016130 arg g24_timer_kb_sys_crtl_blank ,queue 
+0x484f 016131 call timer_check 
+0x4850 016132 nrtn blank 
+0x4851 016133 jam 0 ,mem_dg_kb_system_crtl_blank_data_enable 
+0x4852 016134 arg mem_usb_kb_system ,contw 
+0x4853 016135 call memset0_16 
+0x4854 016136 jam kb_system_conctrl_report_id ,mem_usb_kb_system 
+0x4855 016137 fetch 2 ,mem_usb_kb_system 
+0x4856 016138 store 2 ,mem_dg_kb_system_sta_data 
+:      016139 dongle_usb_tx_sys_ctrl_data:
+0x4857 016140 jam usb_ep2_systemkey ,mem_usb_ep2_data 
+0x4858 016141 branch dongle_usb_tx_enable_ep2 
+:      016143 dongle_g24_kb_mul_blank_data:
+0x4859 016144 bpatch patch07_4 ,mem_patch07 
+0x485a 016145 fetch 1 ,mem_dg_kb_mul_blank_data_enable 
+0x485b 016146 rtn blank 
+0x485c 016147 arg g24_timer_kb_mul_blank ,queue 
+0x485d 016148 call timer_check 
+0x485e 016149 nrtn blank 
+0x485f 016150 jam 0 ,mem_dg_kb_mul_blank_data_enable 
+0x4860 016151 arg mem_usb_kb_multikey ,contw 
+0x4861 016152 call memset0_16 
+0x4862 016153 jam kb_multikey_report_id ,mem_usb_kb_multikey 
+0x4863 016154 fetch 3 ,mem_usb_kb_multikey 
+0x4864 016155 store 3 ,mem_dg_kb_multikey_last_data 
+:      016156 dongle_usb_tx_multikey_data:
+0x4865 016157 jam usb_ep2_multikey ,mem_usb_ep2_data 
+0x4866 016158 branch dongle_usb_tx_enable_ep2 
+:      016160 dongle_usb_dispatch:
+0x4867 016161 bpatch patch07_5 ,mem_patch07 
+0x4868 016162 fetch 1 ,mem_usb_remote_wakeup 
+0x4869 016163 call dongle_clear_pc_sleep_flag ,blank 
+0x486a 016164 call usb_isr 
+0x486b 016165 fetch 1 ,mem_usb0_get_set_report 
+0x486c 016166 rtn blank 
+0x486d 016167 jam 0 ,mem_usb0_get_set_report 
+0x486e 016168 fetch 2 ,mem_usb_setup_bvalue_temp 
+0x486f 016169 arg pc_set_report ,temp 
+0x4870 016170 isub temp ,null 
+0x4871 016171 nrtn zero 
+0x4872 016173 fetch 1 ,mem_usb0_set_report_data 
+0x4873 016174 rtnne pc_report_id 
+0x4874 016175 fetch 1 ,mem_usb0_set_report_data + 1 
+0x4875 016176 beq command_mode ,dongle_dispose_cmd_mode 
+0x4876 016177 beq command_bind ,dongle_dispose_cmd_bind 
+0x4877 016178 beq command_current_project ,dongle_dispose_cmd_current_project 
+0x4878 016179 beq command_current_mode ,dongle_dispose_cmd_current_mode 
+0x4879 016180 beq command_current_fw_version ,dongle_dispose_cmd_current_fw_version 
+:      016182 dongle_usb0_data_ready_report_set0:
+0x487a 016183 jam 0 ,mem_usb0_data_ready_report 
+0x487b 016184 rtn 
+:      016186 dongle_dispose_cmd_mode:
+0x487c 016187 fetch 1 ,mem_usb0_set_report_data + 2 
+0x487d 016188 beq com_mode_bind ,dongle_enter_bind_mode 
+0x487e 016189 branch dongle_usb0_data_ready_report_set0 
+:      016190 dongle_enter_bind_mode:
+0x487f 016191 call g24_bind_mode_enable 
+:      016192 dongle_usb0_data_ready_report_set1:
+0x4880 016193 jam 1 ,mem_usb0_data_ready_report 
+0x4881 016194 rtn 
+:      016196 dongle_dispose_cmd_bind:
+0x4882 016197 fetch 1 ,mem_usb0_set_report_data + 2 
+0x4883 016198 beq com_bind_get ,dongle_dispose_cmd_get_bind 
+0x4884 016199 beq com_bind_exit ,dongle_dispose_cmd_exit_bind 
+0x4885 016200 beq com_read_mode ,dongle_dispose_cmd_read_mode 
+0x4886 016201 branch dongle_usb0_data_ready_report_set0 
+:      016202 dongle_dispose_cmd_get_bind:
+0x4887 016203 fetch 1 ,mem_24g_bind_device_status 
+0x4888 016204 store 1 ,mem_usb0_get_report_data + 1 
+0x4889 016205 branch dongle_usb0_data_ready_report_set1 
+:      016206 dongle_dispose_cmd_exit_bind:
+0x488a 016207 call g24_work_mode_enable 
+0x488b 016208 branch dongle_dispose_cmd_get_bind 
+:      016209 dongle_dispose_cmd_read_mode:
+:      016210 dongle_dispose_in_bind_mode:
+0x488c 016211 jam command_bind ,mem_usb0_get_report_data + 1 
+0x488d 016212 branch dongle_usb0_data_ready_report_set1 
+:      016214 dongle_dispose_cmd_current_project:
+0x488e 016215 jam product_id ,mem_usb0_get_report_data + 1 
+0x488f 016216 branch dongle_usb0_data_ready_report_set1 
+:      016218 dongle_dispose_cmd_current_mode:
+0x4890 016219 fetch 1 ,mem_24g_work_mode 
+0x4891 016220 beq dongle_work ,dongle_dispose_in_work_mode 
+0x4892 016221 beq dongle_bind ,dongle_dispose_in_bind_mode 
+0x4893 016222 rtn 
+:      016223 dongle_dispose_in_work_mode:
+0x4894 016224 jam command_mode ,mem_usb0_get_report_data + 1 
+0x4895 016225 branch dongle_usb0_data_ready_report_set1 
+:      016227 dongle_dispose_cmd_current_fw_version:
+0x4896 016228 jam fw_version0 ,mem_usb0_get_report_data + 1 
+0x4897 016229 jam fw_version1 ,mem_usb0_get_report_data + 2 
+0x4898 016230 jam fw_version2 ,mem_usb0_get_report_data + 3 
+0x4899 016231 jam fw_version3 ,mem_usb0_get_report_data + 4 
+0x489a 016232 branch dongle_usb0_data_ready_report_set1 
+:      016240 dongle_auto_bind:
+0x489b 016241 call g24_mode_switch_init 
+:      016242 dongle_auto_bind_loop:
+0x489c 016243 call g24_mode_switch_bind_work 
+0x489d 016244 call g24_mode_switch_bind_search 
+0x489e 016245 call dongle_work_mode_auto 
+0x489f 016246 call g24_bind_mode_auto 
+0x48a0 016247 call g24_search_mode_auto 
+0x48a1 016248 call dongle_usb_dispatch 
+0x48a2 016249 branch dongle_auto_bind_loop 
+:      016251 dongle_work_mode_auto:
+0x48a3 016252 bpatch patch07_6 ,mem_patch07 
+0x48a4 016253 fetch 1 ,mem_24g_work_mode 
+0x48a5 016254 rtnne dongle_work 
+0x48a6 016255 call g24_work_mode_start 
+0x48a7 016256 call dongle_g24_blank_data_process 
+0x48a8 016257 fetch 1 ,mem_24g_pair_mode 
+0x48a9 016258 nrtn blank 
+0x48aa 016259 branch g24_nodata_process 
+:      016261 dongle_ackpayload_prep:
+0x48ab 016262 fetch 1 ,mem_24g_data_type 
+0x48ac 016263 beq datatype_device1 ,dongle_ackpayload_prep_mouse 
+0x48ad 016264 beq datatype_device2 ,dongle_ackpayload_prep_keyboard 
+:      016265 dongle_ackpayload_prep_mouse:
+0x48ae 016266 fetch 1 ,mem_dg_pc_sleep_flag 
+0x48af 016267 bbit1 0 ,dongle_pc_sleep_ackpayload_prep_mouse 
+0x48b0 016268 branch dongle_ackpayload_prep_end 
+:      016270 dongle_set_pc_sleep_flag:
+0x48b1 016271 fetch 1 ,mem_device_option 
+0x48b2 016272 rtnne dvc_op_dongle 
+0x48b3 016273 jam 3 ,mem_dg_pc_sleep_flag 
+0x48b4 016274 rtn 
+:      016275 dongle_clear_pc_sleep_flag:
+0x48b5 016276 jam 0 ,mem_dg_pc_sleep_flag 
+0x48b6 016277 rtn 
+:      016279 dongle_ackpayload_prep_keyboard:
+0x48b7 016280 fetch 1 ,mem_dg_pc_sleep_flag 
+0x48b8 016281 bbit1 1 ,dongle_pc_sleep_ackpayload_prep_keyboard 
+:      016282 dongle_ackpayload_prep_end:
+0x48b9 016283 fetch 1 ,mem_24g_ackpayload_enable 
+0x48ba 016284 beq bind_ackpayload ,dongle_g24_bind_ackpayload_prep 
+0x48bb 016285 beq kb_led_ackpayload ,dongle_g24_kb_led_ackpayload_prep 
+0x48bc 016286 rtn 
+:      016288 dongle_pc_sleep_ackpayload_prep_mouse:
+0x48bd 016289 fetch 1 ,mem_dg_pc_sleep_flag 
+0x48be 016290 set0 0 ,pdata 
+0x48bf 016291 store 1 ,mem_dg_pc_sleep_flag 
+0x48c0 016292 branch dongle_pc_sleep_ackpayload_prep 
+:      016294 dongle_pc_sleep_ackpayload_prep_keyboard:
+0x48c1 016295 fetch 1 ,mem_dg_pc_sleep_flag 
+0x48c2 016296 set0 1 ,pdata 
+0x48c3 016297 store 1 ,mem_dg_pc_sleep_flag 
+:      016298 dongle_pc_sleep_ackpayload_prep:
+0x48c4 016299 jam 0x01 ,mem_24g_datalen 
+0x48c5 016300 setarg 0xff 
+0x48c6 016301 store 1 ,mem_24g_txbuf 
+0x48c7 016302 rtn 
+:      016305 dongle_g24_bind_ackpayload_prep:
+0x48c8 016306 jam 1 ,mem_24g_ackpayload_enable 
+0x48c9 016307 call g24_binding_device_check 
+0x48ca 016308 nrtn user3 
+0x48cb 016309 branch g24_bind_ackpayload_prep 
+:      016311 dongle_g24_kb_led_ackpayload_prep:
+0x48cc 016312 fetch 1 ,mem_24g_rxbuf + 2 
+0x48cd 016313 beq datatype_device1 ,dongle_g24_bind_ackpayload_prep 
+0x48ce 016314 beq datatype_attemp ,dongle_g24_bind_ackpayload_prep 
+0x48cf 016315 jam 0 ,mem_usb_tx_win_enable 
+0x48d0 016316 jam 0x01 ,mem_24g_datalen 
+0x48d1 016317 fetch 1 ,mem_24g_led_status 
+0x48d2 016318 store 1 ,mem_24g_txbuf 
+0x48d3 016319 rtn 
+:      016321 dongle_g24_mouse:
+0x48d4 016322 setarg ms_report_id 
+0x48d5 016323 store 1 ,mem_usb_mouse_data 
+0x48d6 016324 fetch 7 ,mem_24g_rxdata_temp + 3 
+0x48d7 016325 istore 7 ,contw 
+0x48d8 016326 fetch 1 ,mem_24g_rxdata_temp + 3 
+0x48d9 016327 ncall dongle_g24_ms_enable_blank_data_forcibly ,blank 
+0x48da 016328 fetch 1 ,mem_24g_rxdata_temp + 3 
+0x48db 016329 call dongle_g24_ms_disable_blank_data_forcibly ,blank 
+0x48dc 016330 branch dongle_usb_tx_ms_data 
+:      016332 dongle_g24_ms_enable_blank_data_forcibly:
+0x48dd 016333 jam 1 ,mem_dg_ms_blank_data_enable 
+0x48de 016334 setarg timer_ms_blank_delay 
+0x48df 016335 arg g24_timer_ms_blank ,queue 
+0x48e0 016336 branch timer_init 
+:      016338 dongle_g24_ms_disable_blank_data_forcibly:
+0x48e1 016339 jam 0 ,mem_dg_ms_blank_data_enable 
+0x48e2 016340 setarg 0 
+0x48e3 016341 arg g24_timer_ms_blank ,queue 
+0x48e4 016342 branch timer_init 
+:      016344 dongle_g24_kb:
+0x48e5 016345 fetch 1 ,mem_24g_rxdata_temp + 3 
+0x48e6 016346 beq 0 ,dongle_g24_kb_type0 
+0x48e7 016347 beq 2 ,dongle_g24_kb_type2 
+0x48e8 016348 beq 3 ,dongle_g24_kb_type3 
+0x48e9 016349 branch g24_rx_interrupt_clear 
+:      016351 dongle_g24_kb_type0:
+0x48ea 016352 fetch 1 ,mem_24g_rxdata_temp + 5 
+0x48eb 016353 store 1 ,mem_24g_ackpayload_enable 
+0x48ec 016354 jam 0 ,mem_24g_rxdata_temp + 5 
+0x48ed 016355 arg mem_usb_kb_data ,contw 
+0x48ee 016356 arg mem_24g_rxdata_temp + 4 ,contr 
+0x48ef 016357 arg 8 ,loopcnt 
+0x48f0 016358 call memcpy 
+0x48f1 016359 fetch 8 ,mem_usb_kb_data 
+0x48f2 016360 ncall dongle_g24_kb_enable_blank_data_forcibly ,blank 
+0x48f3 016361 fetch 8 ,mem_usb_kb_data 
+0x48f4 016362 call dongle_g24_kb_disable_blank_data_forcibly ,blank 
+0x48f5 016363 fetch 8 ,mem_usb_kb_data 
+0x48f6 016364 store 8 ,mem_dg_kb_data_sta_data 
+0x48f7 016365 fetcht 8 ,mem_dg_kb_data_last_data 
+0x48f8 016366 isub temp ,null 
+0x48f9 016367 ncall dongle_usb_tx_enable_ep1 ,zero 
+0x48fa 016368 fetch 8 ,mem_dg_kb_data_sta_data 
+0x48fb 016369 store 8 ,mem_dg_kb_data_last_data 
+0x48fc 016370 branch g24_rx_interrupt_clear 
+:      016372 dongle_g24_kb_enable_blank_data_forcibly:
+0x48fd 016373 jam 1 ,mem_dg_kb_blank_data_enable 
+0x48fe 016374 setarg timer_kb_blank_delay 
+0x48ff 016375 arg g24_timer_kb_blank ,queue 
+0x4900 016376 branch timer_init 
+:      016378 dongle_g24_kb_disable_blank_data_forcibly:
+0x4901 016379 jam 0 ,mem_dg_kb_blank_data_enable 
+0x4902 016380 setarg 0 
+0x4903 016381 arg g24_timer_kb_blank ,queue 
+0x4904 016382 branch timer_init 
+:      016384 dongle_g24_kb_type3:
+0x4905 016385 arg mem_usb_kb_multikey ,contw 
+0x4906 016386 arg mem_24g_rxdata_temp + 3 ,contr 
+0x4907 016387 arg 3 ,loopcnt 
+0x4908 016388 call memcpy 
+0x4909 016389 fetch 2 ,mem_usb_kb_multikey + 1 
+0x490a 016390 ncall dongle_g24_kb_mul_enable_blank_data_forcibly ,blank 
+0x490b 016391 fetch 2 ,mem_usb_kb_multikey + 1 
+0x490c 016392 call dongle_g24_kb_mul_disable_blank_data_forcibly ,blank 
+0x490d 016393 fetch 3 ,mem_usb_kb_multikey 
+0x490e 016394 store 3 ,mem_dg_kb_multikey_sta_data 
+0x490f 016395 fetcht 3 ,mem_dg_kb_multikey_last_data 
+0x4910 016396 isub temp ,null 
+0x4911 016397 ncall dongle_usb_tx_multikey_data ,zero 
+0x4912 016398 fetch 3 ,mem_dg_kb_multikey_sta_data 
+0x4913 016399 store 3 ,mem_dg_kb_multikey_last_data 
+0x4914 016400 branch g24_rx_interrupt_clear 
+:      016402 dongle_g24_kb_mul_enable_blank_data_forcibly:
+0x4915 016403 jam 1 ,mem_dg_kb_mul_blank_data_enable 
+0x4916 016404 setarg timer_kb_mul_blank_delay 
+0x4917 016405 arg g24_timer_kb_mul_blank ,queue 
+0x4918 016406 branch timer_init 
+:      016408 dongle_g24_kb_mul_disable_blank_data_forcibly:
+0x4919 016409 jam 0 ,mem_dg_kb_mul_blank_data_enable 
+0x491a 016410 setarg 0 
+0x491b 016411 arg g24_timer_kb_mul_blank ,queue 
+0x491c 016412 branch timer_init 
+:      016414 dongle_g24_kb_type2:
+0x491d 016415 arg mem_usb_kb_system ,contw 
+0x491e 016416 arg mem_24g_rxdata_temp + 3 ,contr 
+0x491f 016417 arg 2 ,loopcnt 
+0x4920 016418 call memcpy 
+0x4921 016419 fetch 2 ,mem_usb_kb_system 
+0x4922 016420 ncall dongle_g24_kb_sys_enable_blank_data_forcibly ,blank 
+0x4923 016421 fetch 2 ,mem_usb_kb_system 
+0x4924 016422 call dongle_g24_kb_sys_disable_blank_data_forcibly ,blank 
+0x4925 016423 fetch 2 ,mem_usb_kb_system 
+0x4926 016424 store 2 ,mem_dg_kb_system_sta_data 
+0x4927 016425 fetcht 2 ,mem_dg_kb_system_last_data 
+0x4928 016426 isub temp ,null 
+0x4929 016427 ncall dongle_usb_tx_sys_data ,zero 
+0x492a 016428 fetch 2 ,mem_dg_kb_system_sta_data 
+0x492b 016429 store 2 ,mem_dg_kb_system_last_data 
+0x492c 016430 branch g24_rx_interrupt_clear 
+:      016432 dongle_g24_kb_sys_enable_blank_data_forcibly:
+0x492d 016433 jam 1 ,mem_dg_kb_system_crtl_blank_data_enable 
+0x492e 016434 setarg timer_kb_sys_crtl_blank_delay 
+0x492f 016435 arg g24_timer_kb_sys_crtl_blank ,queue 
+0x4930 016436 branch timer_init 
+:      016437 dongle_g24_kb_sys_disable_blank_data_forcibly:
+0x4931 016438 jam 0 ,mem_dg_kb_system_crtl_blank_data_enable 
+0x4932 016439 setarg 0 
+0x4933 016440 arg g24_timer_kb_sys_crtl_blank ,queue 
+0x4934 016441 branch timer_init 
+:      016443 dongle_usb_tx_sys_data:
+0x4935 016444 jam usb_ep2_systemkey ,mem_usb_ep2_data 
+0x4936 016445 branch dongle_usb_tx_enable_ep2 
+:      016448 dongle_g24_store_dvc2_bind_flag:
+0x4937 016449 fetch 1 ,mem_device_option 
+0x4938 016450 rtnne dvc_op_dongle 
+0x4939 016451 fetch 1 ,mem_dg_kb_bind_flag 
+0x493a 016452 rtneq dongle_kb_bind_success 
+:      016453 dongle_prep_soft_reset:
+0x493b 016454 jam 1 ,mem_dg_kb_bind_success 
+0x493c 016455 rtn 
+:      016458 dongle_kb_bind_soft_reset:
+0x493d 016459 fetch 1 ,mem_device_option 
+0x493e 016460 rtnne dvc_op_dongle 
+0x493f 016461 fetch 1 ,mem_dg_kb_bind_success 
+0x4940 016462 rtn blank 
+0x4941 016463 jam 0 ,mem_temp 
+:      016464 dongle_wirte_efuse_bind_status:
+0x4942 016465 jam dongle_kb_bind_success ,mem_dg_kb_bind_flag 
+0x4943 016466 call dongle_write_kb_bind_status 
+0x4944 016467 call dongle_read_kb_bind_status 
+0x4945 016468 fetch 1 ,mem_temp 
+0x4946 016469 increase 1 ,pdata 
+0x4947 016470 store 1 ,mem_temp 
+0x4948 016471 beq 0xff ,soft_reset_chip 
+0x4949 016472 fetch 1 ,mem_dg_kb_bind_flag 
+0x494a 016473 bne dongle_kb_bind_success ,dongle_wirte_efuse_bind_status 
+0x494b 016474 branch soft_reset_chip 
+:      016486 keyboard_softreset_process:
+0x494c 016487 fetch 1 ,mem_device_option 
+0x494d 016488 rtnne dvc_op_keyboard 
+0x494e 016489 call mouse_wakeup_from_power_check 
+0x494f 016490 nbranch soft_reset + 1 ,user 
+0x4950 016491 fetch 1 ,mem_power_on_flag 
+0x4951 016492 branch soft_reset + 1 ,blank 
+0x4952 016493 fetch 1 ,mem_config_select_device_button_gpio 
+0x4953 016494 rtneq ui_button_gpio_disable 
+0x4954 016495 copy pdata ,queue 
+0x4955 016496 fetch 4 ,mem_saved_gpio_in 
+0x4956 016497 qisolate0 pdata 
+0x4957 016498 call keyboard_pb_set ,true 
+0x4958 016499 branch soft_reset + 2 
+:      016501 keyboard_init:
+0x4959 016502 call enable_authrom 
+0x495a 016503 call keyboard_setting_config 
+0x495b 016505 call keyboard_gpio_init 
+0x495c 016506 call keyboard_low_vol_mult_set 
+0x495d 016507 rtn wake 
+0x495e 016508 call keyboard_usb_check_enable 
+0x495f 016509 call keyboard_cb_fuction 
+0x4960 016510 fetch 1 ,mem_usb_addr 
+0x4961 016511 rtnbit1 7 
+:      016512 keyboard_init_wireless:
+0x4962 016513 fetch 2 ,mem_ui_state_map 
+0x4963 016514 bbit1 ui_state_btn_down ,keyboard_start_discovery 
+0x4964 016515 call mouse_check_select_device_by_switch 
+0x4965 016516 branch keyboard_start_work 
+:      016519 keyboard_usb_check_enable:
+0x4966 016520 fetch mouse_flag_len ,mem_mouse_flag 
+0x4967 016521 rtnbit0 mouse_enable_usb 
+0x4968 016522 setarg keyboard_usb_config_param 
+0x4969 016523 store 2 ,mem_cb_usb_config 
+0x496a 016524 jam mouse_usb_interface_remove ,mem_mouse_usb_vdd_status 
+0x496b 016525 branch keyboard_usb_interface_check 
+:      016527 keyboard_usb_config_param:
+0x496c 016528 call keyboard_usb_config_kb_check 
+0x496d 016529 call keyboard_usb_config_param_init 
+0x496e 016530 branch keyboard_usb_config_param_setup 
+:      016532 keyboard_usb_config_kb_check:
+0x496f 016533 jam dongle_kb_bind_eeprom_offect ,mem_mouse_usb_keyboard_flag 
+0x4970 016534 fetch mouse_flag_len ,mem_mouse_flag 
+0x4971 016535 rtnbit0 mouse_enable_keyboard 
+0x4972 016536 jam dongle_kb_bind_success ,mem_mouse_usb_keyboard_flag 
+0x4973 016537 rtn 
+:      016539 keyboard_usb_config_param_init:
+0x4974 016540 fetch mouse_flag_len ,mem_mouse_flag 
+0x4975 016541 bbit1 mouse_enable_usb_250 ,keyboard_usb_report_rate_set_250hz 
+0x4976 016542 bbit1 mouse_enable_usb_500 ,keyboard_usb_report_rate_set_500hz 
+0x4977 016543 bbit1 mouse_enable_usb_1000 ,keyboard_usb_report_rate_set_1000hz 
+0x4978 016544 jam 0x19 ,mem_wire_usb_interval 
+0x4979 016545 jam 0x08 ,mem_usb_tx_interval 
+0x497a 016546 rtn 
+:      016547 keyboard_usb_report_rate_set_250hz:
+0x497b 016548 jam 0x0c ,mem_wire_usb_interval 
+0x497c 016549 jam 0x04 ,mem_usb_tx_interval 
+0x497d 016550 rtn 
+:      016551 keyboard_usb_report_rate_set_500hz:
+0x497e 016552 jam 0x06 ,mem_wire_usb_interval 
+0x497f 016553 jam 0x02 ,mem_usb_tx_interval 
+0x4980 016554 rtn 
+:      016555 keyboard_usb_report_rate_set_1000hz:
+0x4981 016556 jam 0x03 ,mem_wire_usb_interval 
+0x4982 016557 jam 0x01 ,mem_usb_tx_interval 
+0x4983 016558 rtn 
+:      016560 keyboard_usb_config_param_setup:
+0x4984 016561 call usb_tx_interval_config 
+0x4985 016562 call keyboard_usb_vid_pid_config 
+0x4986 016563 branch keyboard_usb_hid_icon_config 
+:      016565 keyboard_usb_vid_pid_config:
+0x4987 016566 fetch 1 ,mem_usb_vid_pid 
+0x4988 016567 rtn blank 
+0x4989 016568 fetch 1 ,mem_mouse_usb_keyboard_flag 
+0x498a 016569 beq dongle_kb_bind_success ,dongle_usb_vid_pid_for_suit 
+0x498b 016570 branch dongle_usb_vid_pid_for_mouse_only_auto_pair 
+:      016572 keyboard_usb_hid_icon_config:
+0x498c 016573 fetch 1 ,mem_mouse_usb_keyboard_flag 
+0x498d 016574 branch dongle_usb_hid_icon_config + 1 
+:      016578 keyboard_usb_interface_check:
+0x498e 016579 bpatch patch08_1 ,mem_patch08 
+0x498f 016580 fetcht 1 ,mem_usb_offline_check_gpio 
+0x4990 016581 call gpio_get_bit 
+0x4991 016582 branch keyboard_usb_gpio_low ,true 
+0x4992 016583 branch keyboard_usb_gpio_high 
+:      016586 keyboard_usb_gpio_low:
+0x4993 016587 fetch 1 ,mem_mouse_usb_vdd_status 
+0x4994 016588 rtneq mouse_usb_interface_remove 
+0x4995 016589 jam mouse_usb_interface_remove ,mem_mouse_usb_vdd_status 
+0x4996 016590 jam 0 ,mem_usb_device_enumeration_endflag 
+0x4997 016591 jam 0 ,mem_usb_status 
+0x4998 016592 jam 0 ,mem_usb_state 
+0x4999 016593 branch keyboard_init_wireless 
+:      016596 keyboard_usb_gpio_high:
+0x499a 016597 fetch 1 ,mem_mouse_usb_vdd_status 
+0x499b 016598 rtneq mouse_usb_interface_insert 
+0x499c 016599 jam mouse_usb_interface_insert ,mem_mouse_usb_vdd_status 
+0x499d 016600 call mouse_24g_stop 
+0x499e 016601 call mouse_stop_bluetooth_mode 
+0x499f 016602 call keyboard_device_led_all_off 
+0x49a0 016603 branch usb_init 
+:      016607 keyboard_setting_config:
+0x49a1 016608 rtn wake 
+0x49a2 016610 call g24_transmit_init 
+0x49a3 016611 call g24_chmap_param_init 
+0x49a4 016613 call keyboard_param_init 
+0x49a5 016614 fetcht 1 ,mem_mcu_rstb_gpio 
+0x49a6 016615 call gpio_out_inactive 
+0x49a7 016617 call keyboard_device_led_off 
+0x49a8 016618 call mouse_device_multi_led_parm_init 
+0x49a9 016619 call le_set_fixed_ltk_justwork 
+0x49aa 016621 fetch mouse_flag_len ,mem_mouse_flag 
+0x49ab 016622 bbit1 mouse_enable_otp ,keyboard_load_otp_info_check 
+0x49ac 016623 bbit1 mouse_enable_eeprom ,mouse_load_eeprom_info_check 
+0x49ad 016624 bbit1 mouse_enable_flash ,mouse_load_flash_info_check 
+0x49ae 016625 rtn 
+:      016630 keyboard_param_init:
+0x49af 016632 call mouse_param_common_init 
+0x49b0 016634 jam 0 ,mem_same_keyvalue_timerout_flag 
+0x49b1 016635 setarg 0x230170 
+0x49b2 016636 store 3 ,mem_mouse_vdd_full_vol 
+0x49b3 016637 setarg 0x015301 
+0x49b4 016638 istore 3 ,contw 
+0x49b5 016639 arg mem_le_adv_swift_pair ,contw 
+0x49b6 016640 arg 20 ,loopcnt 
+0x49b7 016641 call clear_mem 
+0x49b8 016643 fetch 1 ,mem_le_name_len 
+0x49b9 016644 sub pdata ,12 ,null 
+0x49ba 016645 nbranch ble_name_set_no_swift_pair ,positive 
+0x49bb 016646 setarg 0x06ff06 
+0x49bc 016647 store 3 ,mem_le_adv_swift_pair 
+0x49bd 016648 setarg 0x000300 
+0x49be 016649 istore 3 ,contw 
+0x49bf 016650 setarg 0x80 
+0x49c0 016651 istore 1 ,contw 
+:      016652 ble_store_le_name:
+0x49c1 016653 fetch 1 ,mem_le_name_len 
+0x49c2 016654 increase 1 ,pdata 
+0x49c3 016655 copy pdata ,loopcnt 
+0x49c4 016656 arg mem_le_scan_data ,contr 
+0x49c5 016657 branch memcpy 
+:      016659 ble_name_set_no_swift_pair:
+0x49c6 016660 arg mem_le_adv_swift_pair ,contw 
+0x49c7 016661 branch ble_store_le_name 
+:      016664 keyboard_gpio_init:
+0x49c8 016667 fetcht 1 ,mem_mcu_clk_gpio 
+0x49c9 016668 call gpio_set_high_impedance 
+0x49ca 016669 fetcht 1 ,mem_mcu_stb_gpio 
+0x49cb 016670 call gpio_set_high_impedance 
+0x49cc 016671 fetcht 1 ,mem_mcu_rstb_gpio 
+0x49cd 016672 call gpio_set_high_impedance 
+0x49ce 016674 setarg mem_key_row_gpio 
+0x49cf 016675 store 2 ,mem_kb_row_ptr 
+0x49d0 016677 setarg mem_key_col_gpio 
+0x49d1 016678 store 2 ,mem_kb_col_ptr 
+0x49d2 016680 setarg mem_key_excol_gpio 
+0x49d3 016681 store 2 ,mem_kb_excol_ptr 
+0x49d4 016683 fetch 2 ,mem_kb_row_ptr 
+0x49d5 016684 copy pdata ,regb 
+0x49d6 016685 arg 8 ,loopcnt 
+:      016687 keyboard_key_row_init:
+0x49d7 016688 ifetcht 1 ,regb 
+0x49d8 016689 sub temp ,ui_button_gpio_disable ,null 
+0x49d9 016690 ncall keboard_gpio_set_high_impedance ,zero 
+0x49da 016691 increase 1 ,regb 
+0x49db 016692 loop keyboard_key_row_init 
+0x49dc 016693 call lpm_write_gpio_wakeup 
+0x49dd 016694 fetch 2 ,mem_kb_col_ptr 
+0x49de 016695 copy pdata ,regb 
+0x49df 016696 copy pdata ,regc 
+0x49e0 016697 arg 11 ,loopcnt 
+:      016699 keyboard_key_cow_init:
+0x49e1 016700 ifetcht 1 ,regb 
+0x49e2 016701 isolate1 7 ,temp 
+0x49e3 016702 ncall gpio_set_high_impedance ,true 
+0x49e4 016703 increase 1 ,regb 
+0x49e5 016704 loop keyboard_key_cow_init 
+0x49e6 016705 rtn 
+:      016706 keboard_gpio_set_high_impedance:
+0x49e7 016708 call gpio_set_high_impedance 
+0x49e8 016709 ifetcht 1 ,regb 
+0x49e9 016710 branch gpio_set_low_pullup 
+:      016714 keyboard_low_vol_mult_set:
+0x49ea 016715 fetch 1 ,mem_device_flag 
+0x49eb 016716 beq mode_bt_device1 ,keyboard_low_vol_mult_ble_set 
+0x49ec 016717 setarg 0x5d4800 
+0x49ed 016718 store 4 ,mem_24g_long_sleep_set1 
+0x49ee 016719 fetch 1 ,mem_adc_power_flag 
+0x49ef 016720 rtnbit0 0 
+0x49f0 016721 branch mouse_24g_long_sleep_set 
+:      016722 keyboard_low_vol_mult_ble_set:
+0x49f1 016723 jam 0x0c ,mem_lpm_mult_init 
+0x49f2 016724 fetch 1 ,mem_adc_power_flag 
+0x49f3 016725 rtnbit0 0 
+0x49f4 016726 jam 0x10 ,mem_lpm_mult_init 
+0x49f5 016727 fetch 1 ,mem_mouse_current_mult_timer 
+0x49f6 016728 branch mouse_current_mult_reinit ,blank 
+0x49f7 016729 rtn 
+:      016732 keyboard_pairing_check_otp_offset:
+0x49f8 016733 fetch 2 ,mem_otp_read_retention_offset 
+0x49f9 016734 arg 0x528 ,temp 
+0x49fa 016735 isub temp ,null 
+0x49fb 016736 nrtn positive 
+0x49fc 016737 branch assert 
+:      016739 keyboard_load_otp_info_check:
+0x49fd 016740 bpatch patch08_2 ,mem_patch08 
+0x49fe 016741 fetch 1 ,mem_device_flag 
+0x49ff 016742 beq mode_24g_device ,keyboard_load_otp_device_info_g24_init 
+0x4a00 016743 beq mode_bt_device1 ,keyboard_load_otp_device_info_ble_init 
+0x4a01 016744 rtn 
+:      016746 keyboard_load_otp_device_info_g24_init:
+0x4a02 016747 arg 80 ,regd 
+0x4a03 016748 setarg 0x400 
+0x4a04 016749 idiv regd 
+0x4a05 016750 call wait_div_end 
+0x4a06 016751 quotient pdata 
+0x4a07 016752 store 2 ,mem_pdatatemp 
+0x4a08 016753 arg 0x1fcc ,pdata 
+0x4a09 016754 arg 4 ,temp 
+0x4a0a 016755 arg 4 ,rege 
+0x4a0b 016756 branch keyboard_load_otp_device_info 
+:      016757 keyboard_load_otp_device_info_ble_init:
+0x4a0c 016758 arg 280 ,regd 
+0x4a0d 016759 setarg 0x400 
+0x4a0e 016760 idiv regd 
+0x4a0f 016761 call wait_div_end 
+0x4a10 016762 quotient pdata 
+0x4a11 016763 store 2 ,mem_pdatatemp 
+0x4a12 016764 arg 0x1fc2 ,pdata 
+0x4a13 016765 arg 14 ,temp 
+0x4a14 016766 arg 14 ,rege 
+0x4a15 016767 branch keyboard_load_otp_device_info 
+:      016768 keyboard_load_otp_device_info:
+0x4a16 016769 storet 1 ,mem_temp 
+0x4a17 016770 arg mem_otp_read_retention_memory ,rega 
+0x4a18 016771 arg 0 ,regc 
+:      016772 keyboard_load_otp_info_check_page_loop:
+0x4a19 016773 copy pdata ,regb 
+0x4a1a 016774 fetchr loopcnt ,1 ,mem_temp 
+0x4a1b 016775 call otp_read_data 
+0x4a1c 016776 fetch 8 ,mem_otp_read_retention_memory 
+0x4a1d 016777 fetcht 8 ,mem_otp_read_retention_memory + 8 
+0x4a1e 016778 ior temp ,pdata 
+0x4a1f 016779 fetcht 8 ,mem_otp_read_retention_memory + 16 
+0x4a20 016780 ior temp ,pdata 
+0x4a21 016781 branch keyboard_load_otp_info_check_first_time ,blank 
+0x4a22 016782 increase 1 ,regc 
+0x4a23 016783 fetch 2 ,mem_pdatatemp 
+0x4a24 016784 isub regc ,null 
+0x4a25 016786 copy regb ,pdata 
+0x4a26 016787 isub regd ,pdata 
+0x4a27 016788 branch keyboard_load_otp_info_check_page_loop 
+:      016789 keyboard_load_otp_info_check_first_time:
+0x4a28 016791 sub regc ,0 ,null 
+0x4a29 016792 branch keyboard_load_otp_info_check_first_time_process ,zero 
+:      016793 keyboard_load_otp_info_check_first_time_loop_init:
+0x4a2a 016794 copy regb ,pdata 
+0x4a2b 016795 iadd regd ,pdata 
+:      016796 keyboard_load_otp_info_check_first_time_loop:
+0x4a2c 016797 isub rege ,pdata 
+0x4a2d 016798 copy pdata ,regb 
+0x4a2e 016799 fetchr loopcnt ,1 ,mem_temp 
+0x4a2f 016800 call otp_read_data 
+0x4a30 016801 fetch 8 ,mem_otp_read_retention_memory 
+0x4a31 016802 fetcht 8 ,mem_otp_read_retention_memory + 8 
+0x4a32 016803 ior temp ,pdata 
+0x4a33 016804 fetcht 8 ,mem_otp_read_retention_memory + 16 
+0x4a34 016805 ior temp ,pdata 
+0x4a35 016806 branch keyboard_load_otp_info_check_offset_process ,blank 
+0x4a36 016807 copy regb ,pdata 
+0x4a37 016808 branch keyboard_load_otp_info_check_first_time_loop 
+:      016809 keyboard_load_otp_info_check_first_time_process:
+0x4a38 016810 storer rege ,1 ,mem_otp_read_retention_offset 
+0x4a39 016811 rtn 
+:      016812 keyboard_load_otp_info_check_offset_process:
+0x4a3a 016813 bpatch patch08_3 ,mem_patch08 
+0x4a3b 016814 setarg 0x1fd0 
+0x4a3c 016815 isub regb ,pdata 
+0x4a3d 016816 store 2 ,mem_otp_read_retention_offset 
+0x4a3e 016817 copy regb ,pdata 
+0x4a3f 016818 iadd rege ,regb 
+0x4a40 016819 fetchr loopcnt ,1 ,mem_temp 
+0x4a41 016820 arg mem_otp_read_retention_memory ,rega 
+0x4a42 016821 call otp_read_data 
+0x4a43 016822 fetch 1 ,mem_device_flag 
+0x4a44 016823 beq mode_24g_device ,keyboard_load_otp_info_check_offset_process_g24 
+0x4a45 016824 beq mode_bt_device1 ,keyboard_load_otp_info_check_offset_process_ble 
+0x4a46 016825 rtn 
+:      016827 keyboard_load_otp_info_check_offset_process_g24:
+0x4a47 016828 fetch 6 ,mem_otp_read_retention_memory 
+0x4a48 016829 store 4 ,mem_mouse_24g_addr 
+0x4a49 016830 branch keybaord_load_device_info 
+:      016832 keyboard_load_otp_info_check_offset_process_ble:
+0x4a4a 016833 fetch 1 ,mem_otp_read_retention_memory 
+0x4a4b 016834 sub pdata ,system_os_mac ,null 
+0x4a4c 016835 ncall set_pdata_0 ,positive 
+0x4a4d 016836 store 1 ,mem_kb_computer_system 
+0x4a4e 016837 fetch 1 ,mem_otp_read_retention_memory + 1 
+0x4a4f 016838 store 1 ,mem_device1_type 
+0x4a50 016839 fetch 6 ,mem_otp_read_retention_memory + 2 
+0x4a51 016840 store 6 ,mem_device1_addr 
+0x4a52 016841 fetch 6 ,mem_otp_read_retention_memory + 8 
+0x4a53 016842 store 6 ,mem_device1_locall_addr 
+0x4a54 016843 branch mouse_select_reconn_device 
+:      016846 keyboard_load_otp_info_check_overwise:
+0x4a55 016847 branch assert 
+:      016850 keyboard_store_device_info:
+0x4a56 016851 bpatch patch08_4 ,mem_patch08 
+0x4a57 016852 fetch mouse_flag_len ,mem_mouse_flag 
+0x4a58 016853 bbit1 mouse_enable_otp ,keyboard_store_otp_device_info 
+0x4a59 016854 bbit1 mouse_enable_eeprom ,mouse_store_eeprom_device_info 
+0x4a5a 016855 bbit1 mouse_enable_flash ,mouse_store_flash_device_info 
+0x4a5b 016856 rtn 
+:      016858 keyboard_store_otp_device_info:
+0x4a5c 016859 rtn 
+0x4a5d 016860 fetch 1 ,mem_device_flag 
+0x4a5e 016861 beq mode_24g_device ,keyboard_store_otp_device_info_g24 
+0x4a5f 016862 beq mode_bt_device1 ,keyboard_store_otp_device_info_ble 
+0x4a60 016863 rtn 
+:      016865 keyboard_store_otp_device_info_g24:
+0x4a61 016866 fetcht 2 ,mem_otp_read_retention_offset 
+0x4a62 016867 setarg 0x1fd0 
+0x4a63 016868 isub temp ,regb 
+0x4a64 016869 arg mem_mouse_24g_addr ,rega 
+0x4a65 016870 arg 4 ,loopcnt 
+0x4a66 016871 call otp_write 
+0x4a67 016872 fetcht 2 ,mem_otp_read_retention_offset 
+0x4a68 016873 increase 4 ,temp 
+0x4a69 016874 storet 2 ,mem_otp_read_retention_offset 
+0x4a6a 016875 rtn 
+:      016877 keyboard_store_otp_device_info_ble:
+0x4a6b 016878 fetcht 2 ,mem_otp_read_retention_offset 
+0x4a6c 016879 setarg 0x1fd0 
+0x4a6d 016880 isub temp ,regb 
+0x4a6e 016883 add regb ,1 ,regb 
+0x4a6f 016884 arg mem_device1_addr ,rega 
+0x4a70 016885 arg 6 ,loopcnt 
+0x4a71 016886 call otp_write 
+0x4a72 016888 add regb ,7 ,regb 
+0x4a73 016889 arg mem_device1_locall_addr ,rega 
+0x4a74 016890 arg 6 ,loopcnt 
+0x4a75 016891 branch otp_write 
+:      016893 keybaord_load_device_info:
+0x4a76 016894 fetch 4 ,mem_mouse_24g_addr 
+0x4a77 016895 store 4 ,mem_24g_receiver_addr 
+0x4a78 016896 store 4 ,mem_24g_addr 
+0x4a79 016897 rtn 
+:      016900 keyboard_cb_fuction:
+0x4a7a 016901 bpatch patch08_5 ,mem_patch08 
+0x4a7b 016902 setarg mouse_24g_before_lpm_sleep 
+0x4a7c 016903 store 2 ,mem_cb_before_lpm_sleep 
+0x4a7d 016904 setarg keyboard_24g_package_data 
+0x4a7e 016905 store 2 ,mem_cb_24g_transmit_data 
+0x4a7f 016906 setarg keyboard_24g_search_dongle 
+0x4a80 016907 store 2 ,mem_cb_24g_search_receiver 
+0x4a81 016908 setarg keyboard_lpm_before_common 
+0x4a82 016909 store 2 ,mem_cb_24g_lpm_before 
+0x4a83 016910 setarg keyboard_le 
+0x4a84 016911 store 2 ,mem_cb_le_process 
+0x4a85 016913 setarg keyboard_process_lpm_before 
+0x4a86 016914 store 2 ,mem_cb_before_lpm 
+0x4a87 016916 setarg keyboard_priority_bb_event 
+0x4a88 016917 store 2 ,mem_cb_bb_event_process 
+0x4a89 016918 setarg keyboard_idle 
+0x4a8a 016919 store 2 ,mem_cb_idle_process 
+0x4a8b 016920 setarg keyboard_before_hibernate 
+0x4a8c 016921 store 2 ,mem_cb_before_hibernate 
+0x4a8d 016922 setarg mouse_le_bb_event_connect_complete 
+0x4a8e 016923 store 2 ,mem_cb_att_write 
+0x4a8f 016924 setarg keyboard_bb_event_timer 
+0x4a90 016925 store 2 ,mem_cb_event_timer 
+0x4a91 016926 setarg mouse_spi_write_flash_cb 
+0x4a92 016927 store 2 ,mem_cb_spi_flash_write_complate 
+0x4a93 016928 setarg mouse_lpm_check_wake_lock 
+0x4a94 016929 store 2 ,mem_cb_check_wakelock 
+0x4a95 016930 setarg mouse_le_transmit 
+0x4a96 016931 store 2 ,mem_cb_ble_transmit 
+0x4a97 016932 setarg mouse_set_lpm_mult 
+0x4a98 016933 store 2 ,mem_cb_bt_set_mult 
+0x4a99 016934 rtn 
+:      016938 keyboard_priority_bb_event:
+0x4a9a 016939 bpatch patch08_6 ,mem_patch08 
+0x4a9b 016940 copy regc ,pdata 
+0x4a9c 016942 beq bt_evt_le_start_enc ,keyboard_le_ll_start_encryt 
+0x4a9d 016943 beq bt_evt_le_parse_conn_param_accepted ,keyboard_le_parse_conn_param_accepted 
+0x4a9e 016944 beq bt_evt_le_parse_conn_papa_update_rsp ,keyboard_le_conn_param_update_rsp_recieved 
+0x4a9f 016945 beq bt_evt_le_disconnected ,keyboard_le_bb_disconnected 
+0x4aa0 016947 beq bt_evt_le_connected ,keyboard_le_bb_event_connected 
+0x4aa1 016948 beq bt_evt_button_long_pressed ,keyboard_bb_event_discovery_btn 
+0x4aa2 016949 beq bt_evt_le_pairing_success ,mouse_le_pairing_success 
+0x4aa3 016950 beq bt_evt_le_enc_info ,mouse_le_enc_info 
+0x4aa4 016952 beq bt_evt_le_pairing_complete ,app_ble_store_reconn_info 
+0x4aa5 016953 beq bt_evt_le_parse_conn_param_accepted ,mouse_le_parse_conn_param_accepted 
+0x4aa6 016955 beq bt_evt_24g_pairing_complete ,keyboard_24g_pairing_complete 
+0x4aa7 016956 beq bt_evt_24g_attempt_success ,keyboard_24g_attempt_success 
+0x4aa8 016957 beq bt_evt_24g_attempt_fail ,keyboard_24g_attempt_fail 
+0x4aa9 016960 rtn 
+:      016966 keyboard_le_bb_event_connected:
+0x4aaa 016967 jam 0 ,mem_mouse_long_mult_flag 
+0x4aab 016969 jam 1 ,mem_mouse_le_bb_connected_flag 
+0x4aac 016970 call mouse_24g_first_store_reconn_info 
+0x4aad 016971 fetch 1 ,mem_mouse_le_reconnect_flag 
+0x4aae 016972 nbranch keyboard_le_bb_event_connected_next ,blank 
+0x4aaf 016973 jam 0x14 ,mem_mouse_send_secutiry_request_timer 
+:      016974 keyboard_le_bb_event_connected_next:
+0x4ab0 016975 fetch app_disc_rsn_size ,mem_app_disconn_reason_flag 
+0x4ab1 016976 set0 app_disc_by_button ,pdata 
+0x4ab2 016977 store app_disc_rsn_size ,mem_app_disconn_reason_flag 
+0x4ab3 016978 jam 0 ,mem_mouse_direct_timer 
+0x4ab4 016979 fetch 2 ,mem_le_battery_level_updata_timer_init 
+0x4ab5 016980 store 2 ,mem_le_battery_level_updata_timer 
+0x4ab6 016981 call mouse_no_data_timer_init 
+0x4ab7 016982 branch keyboard_stop_discovery 
+:      016985 keyboard_le_bb_disconnected:
+0x4ab8 016986 setarg 0 
+0x4ab9 016987 store 2 ,mem_le_battery_level_updata_timer 
+0x4aba 016988 store 1 ,mem_keyboard_le_send_conn_param_update 
+0x4abb 016989 store 1 ,mem_keyboard_le_send_conn_param_update_timer 
+0x4abc 016990 store 1 ,mem_mouse_le_bb_connected_flag 
+:      016991 keyboard_le_bb_disconnected_next:
+0x4abd 016992 jam le_lpm_enable ,mem_mouse_le_conn_param_reject 
+0x4abe 016993 jam 0 ,mem_mouse_clear_sensor_data_flag 
+0x4abf 016994 call le_clr_config_more_data 
+0x4ac0 016995 branch keyboard_bb_disconnected 
+:      016996 keyboard_bb_disconnected:
+0x4ac1 016997 call mouse_bb_discon_clear_stack 
+0x4ac2 016998 fetch app_disc_rsn_size ,mem_app_disconn_reason 
+0x4ac3 016999 bbit1 app_disc_ble ,keyboard4_0_event_bb_disconn 
+0x4ac4 017000 bbit1 app_disc_by_button ,app_disconn_reason_clear 
+0x4ac5 017001 branch keyboard_start_discovery 
+:      017002 keyboard4_0_event_bb_disconn:
+0x4ac6 017003 call mouse_le_clean_connect_flag 
+0x4ac7 017004 fetch app_disc_rsn_size ,mem_app_disconn_reason 
+0x4ac8 017005 bbit1 app_disc_by_button ,app_disconn_reason_clear 
+0x4ac9 017006 call ice_break 
+0x4aca 017007 branch keyboard_app_enter_hibernate 
+:      017010 keyboard_le_ll_start_encryt:
+0x4acb 017011 fetch 1 ,mem_mouse_le_reconnect_flag 
+0x4acc 017012 beq 1 ,keyboard_le_ll_reconn_start_encryt 
+0x4acd 017013 jam 20 ,mem_le_start_encrypt_timer 
+0x4ace 017014 jam 5 ,mem_le_start_auto_reco_timer 
+0x4acf 017015 branch mouse_le_ll_enable_start_enc_flag 
+:      017016 keyboard_le_ll_reconn_start_encryt:
+0x4ad0 017017 call mouse_updata_le_param 
+0x4ad1 017018 jam 5 ,mem_le_start_encrypt_timer 
+0x4ad2 017019 branch mouse_le_ll_enable_start_enc_flag 
+:      017021 keyboard_le_parse_conn_param_accepted:
+0x4ad3 017022 fetch 1 ,mem_le_new_conninterval 
+0x4ad4 017023 sub pdata ,le_interval_15ms ,null 
+0x4ad5 017024 nbranch mouse_le_conn_param_lpm_disable ,positive 
+0x4ad6 017025 fetch 1 ,mem_le_new_connslavelatency 
+0x4ad7 017026 fetcht 1 ,mem_lpm_mult_init 
+0x4ad8 017027 isub temp ,null 
+0x4ad9 017028 branch mouse_le_lpm_mult_reinit ,positive 
+0x4ada 017029 fetch 1 ,mem_le_new_connslavelatency 
+0x4adb 017030 store 1 ,mem_lpm_mult 
+0x4adc 017031 branch mouse_le_conn_param_lpm_enable 
+:      017033 keyboard_le_conn_param_update_rsp_recieved:
+0x4add 017034 fetch 1 ,mem_keyboard_le_send_conn_param_update 
+0x4ade 017035 nrtn blank 
+0x4adf 017036 jam 1 ,mem_keyboard_le_send_conn_param_update 
+0x4ae0 017037 jam 30 ,mem_keyboard_le_send_conn_param_update_timer 
+0x4ae1 017038 rtn 
+:      017040 keyboard_24g_pairing_complete:
+0x4ae2 017041 call keyboard_get_24g_led_enable 
+0x4ae3 017042 call mouse_no_data_timer_init 
+0x4ae4 017043 branch mouse_24g_pairing_complete_common 
+:      017045 keyboard_24g_attempt_success:
+0x4ae5 017046 call keyboard_get_24g_led_enable 
+0x4ae6 017047 fetch 4 ,mem_24g_addr 
+0x4ae7 017048 store 4 ,mem_24g_receiver_addr 
+0x4ae8 017049 store 4 ,mem_mouse_24g_addr 
+0x4ae9 017050 call g24_ch_syncword_crc8_init 
+0x4aea 017051 call mouse_device_poweron_led_config 
+0x4aeb 017052 call mouse_no_data_timer_init 
+0x4aec 017053 branch mouse_24g_attempt_success 
+:      017055 keyboard_24g_get_led:
+0x4aed 017056 jam device_data_tpye_standard_keyboard ,mem_keyboard_data_send_flag 
+0x4aee 017057 call keyboard_clear_key_data 
+0x4aef 017058 jam 0x03 ,mem_customer_key_press + 2 
+0x4af0 017059 rtn 
+:      017061 keyboard_24g_led_get_status_check:
+0x4af1 017062 arg 6 ,loopcnt 
+0x4af2 017063 arg mem_keyboard_tx_data + 3 ,contr 
+:      017064 keyboard_24g_led_data_check:
+0x4af3 017065 ifetch 1 ,contr 
+0x4af4 017066 beq hid_key_num_lock ,keyboard_get_24g_led_enable 
+0x4af5 017067 beq hid_key_caps_lock ,keyboard_get_24g_led_enable 
+0x4af6 017068 beq hid_key_scroll_lock ,keyboard_get_24g_led_enable 
+0x4af7 017069 loop keyboard_24g_led_data_check 
+0x4af8 017070 rtn 
+:      017072 keyboard_get_24g_led_enable:
+0x4af9 017073 jam 0x03 ,mem_keyboard_led_status_get 
+0x4afa 017074 jam 1 ,mem_keyboard_data_change_flag 
+0x4afb 017075 rtn 
+:      017077 keyboard_set_repeat_send_flag:
+0x4afc 017078 jam 1 ,mem_24g_repeat_send_flag 
+0x4afd 017079 rtn 
+:      017082 keyboard_24g_attempt_fail:
+0x4afe 017083 fetch 1 ,mem_24g_attempt_fail_flag 
+0x4aff 017084 nbranch keyboard_24g_hibernate_set ,blank 
+0x4b00 017085 fetch 1 ,mem_24g_reconn_type 
+0x4b01 017086 beq fast_conn_and_3_0_addr ,keyboard_24g_fast_conn_attempt_fail 
+0x4b02 017087 beq receiver_and_3_0_addr ,keyboard_24g_attempt_fail_enter_hibernate 
+0x4b03 017088 branch keyboard_24g_attempt_fail_enter_hibernate 
+:      017090 keyboard_24g_attempt_fail_enter_hibernate:
+0x4b04 017091 call mouse_24g_stop 
+0x4b05 017092 fetch 1 ,mem_reconn_times 
+0x4b06 017093 nbranch mouse_polling_device ,blank 
+0x4b07 017094 fetch 1 ,mem_device_flag 
+0x4b08 017095 beq mode_24g_device ,keyboard_app_enter_hibernate 
+0x4b09 017096 rtn 
+:      017098 keyboard_24g_fast_conn_attempt_fail:
+0x4b0a 017099 fetch mouse_flag_len ,mem_mouse_flag 
+0x4b0b 017100 bbit1 mouse_enable_24g_first_auto_pairing ,mouse_24g_start_auto_pair 
+0x4b0c 017101 bbit1 mouse_enable_auto_24g_paring ,mouse_24g_start_auto_pair 
+0x4b0d 017102 bbit0 mouse_enable_24g_auto_pair_nerver_been_paired ,mouse_24g_reconn_dongle_start 
+0x4b0e 017103 fetch 4 ,mem_mouse_24g_addr 
+0x4b0f 017104 branch keyboard_24g_start_pair_mode ,blank 
+0x4b10 017105 branch mouse_24g_reconn_dongle_start 
+:      017107 keyboard_24g_hibernate_set:
+0x4b11 017108 jam 0 ,mem_24g_attempt_fail_flag 
+0x4b12 017109 call g24_transmit_next_packet 
+0x4b13 017110 setarg -1 
+0x4b14 017111 store 8 ,mem_24g_enter_hibernate 
+0x4b15 017112 setarg 0 
+0x4b16 017113 store 7 ,mem_mouse_key 
+0x4b17 017114 jam 1 ,mem_sensor_shutdown_flag 
+0x4b18 017115 branch keyboard_g24_long_sleep 
+:      017120 keyboard_bb_event_timer:
+0x4b19 017121 bpatch patch08_7 ,mem_patch08 
+0x4b1a 017122 call mouse_adc_read 
+0x4b1b 017123 call keyboard_low_voltage_param_set 
+0x4b1c 017124 call mouse_low_voltage_led_timer 
+0x4b1d 017126 call g24_pair_timeout_timer 
+0x4b1e 017127 call g24_reconn_timeout_timer 
+0x4b1f 017128 call mouse_24g_long_sleep_param_update_timer 
+0x4b20 017129 call keyboard_24g_repeat_send_data 
+0x4b21 017130 call keyboard_24g_led_status_get_timer 
+0x4b22 017134 call keyboard_check_discovery_timeout_timer 
+0x4b23 017136 call keyboard_check_direct_timeout_timer 
+0x4b24 017137 call mouse_le_enable_att_list_timer 
+0x4b25 017138 call keyboard_le_battery_updata_timer 
+0x4b26 017139 call mouse_le_send_smp_security_request_timer 
+0x4b27 017140 call keyboard_le_send_conn_param_update_timer 
+0x4b28 017141 call keyboard_le_auto_recognize_timer 
+0x4b29 017143 call mouse_current_mult_update_timer 
+0x4b2a 017144 call mouse_wheel_trigger_timer 
+0x4b2b 017145 call keyboard_store_information_delay_timer 
+0x4b2c 017146 call keyboard_capslock_led_on_timer 
+0x4b2d 017147 call keyboard_long_press_timer 
+0x4b2e 017148 call keyboard_commbination_delay_release_timer 
+0x4b2f 017149 fetch 1 ,mem_device_flag 
+0x4b30 017150 beq mode_24g_device ,keyboard_check_no_data_timeout_timer 
+0x4b31 017151 branch mouse_check_no_data_timeout_timer 
+:      017154 keyboard_commbination_key_process:
+0x4b32 017155 fetch 1 ,mem_commbination_key_statue 
+0x4b33 017156 rtnne commbination_key_state_down 
+0x4b34 017157 arg mem_combination_ui_button_count ,regc 
+0x4b35 017158 arg mouse_bluetooth_fast_conn_init ,regb 
+0x4b36 017159 branch timer_single_step 
+:      017161 keyboard_commbination_fast_conn_bt_check:
+0x4b37 017162 fetch 2 ,mem_keyboard_keyvalue_buffer + 2 
+0x4b38 017163 fetcht 2 ,mem_keyboard_commbination_fast_conn_bt 
+0x4b39 017164 isub temp ,null 
+0x4b3a 017165 branch keyboard_commbination_key_down ,zero 
+0x4b3b 017166 byteswap temp ,temp 
+0x4b3c 017167 isub temp ,null 
+0x4b3d 017168 branch keyboard_commbination_key_down ,zero 
+0x4b3e 017169 branch mouse_commbination_key_up 
+:      017171 keyboard_commbination_key_down:
+0x4b3f 017172 fetch 1 ,mem_commbination_key_statue 
+0x4b40 017173 rtneq commbination_key_state_down 
+0x4b41 017174 jam commbination_key_state_down ,mem_commbination_key_statue 
+0x4b42 017175 rtn 
+:      017178 keyboard_check_discovery_timeout_timer:
+0x4b43 017179 arg mem_mouse_discovery_timer ,regc 
+0x4b44 017180 arg keyboard_check_discovery_timeout ,regb 
+0x4b45 017181 branch timer_single_step_2b 
+:      017183 keyboard_check_discovery_timeout:
+0x4b46 017184 call keyboard_stop_discovery 
+0x4b47 017185 branch keyboard_app_enter_hibernate 
+:      017190 keyboard_store_information_delay_timer:
+0x4b48 017191 arg mem_store_information_delay_timer ,regc 
+0x4b49 017192 arg keyboard_store_device_info_check ,regb 
+0x4b4a 017193 branch timer_single_step 
+:      017195 keyboard_store_device_info_check:
+0x4b4b 017196 call keyboard_store_device_info 
+0x4b4c 017197 fetch 1 ,mem_mouse_need_soft_reset 
+0x4b4d 017198 nbranch mouse_soft_reset ,blank 
+0x4b4e 017199 rtn 
+:      017201 keyboard_low_voltage_param_set:
+0x4b4f 017202 fetch 1 ,mem_mouse_adc_last_low_voltage_flag 
+0x4b50 017203 branch keyboard_low_voltage_param_set_33v ,blank 
+0x4b51 017204 jam 58 ,mem_mouse_vdd_low_vol 
+0x4b52 017205 rtn 
+:      017206 keyboard_low_voltage_param_set_33v:
+0x4b53 017207 jam 53 ,mem_mouse_vdd_low_vol 
+0x4b54 017208 rtn 
+:      017210 keyboard_le_auto_recognize_timer:
+0x4b55 017212 arg mem_le_start_auto_reco_timer ,regc 
+0x4b56 017213 arg keyboard_le_send_att_find_by_type_value_request_ancs ,regb 
+0x4b57 017214 branch timer_single_step 
+:      017216 keyboard_check_direct_timeout_timer:
+0x4b58 017217 arg mem_mouse_direct_timer ,regc 
+0x4b59 017218 arg mouse_check_direct_timeout ,regb 
+0x4b5a 017219 call timer_single_step 
+0x4b5b 017220 branch mouse_check_direct_timeout_timer + 3 
+:      017222 keyboard_le_battery_updata_timer:
+0x4b5c 017223 fetch mouse_flag_len ,mem_mouse_flag 
+0x4b5d 017224 rtnbit1 mouse_enable_le_battery_service_cancel 
+0x4b5e 017225 branch mouse_le_battery_updata_timer 
+:      017227 keyboard_le_send_conn_param_update_timer:
+0x4b5f 017228 arg mem_keyboard_le_send_conn_param_update_timer ,regc 
+0x4b60 017229 arg mouse_updata_le_param ,regb 
+0x4b61 017230 branch timer_single_step 
+:      017232 keyboard_24g_repeat_send_data:
+0x4b62 017233 fetch 1 ,mem_24g_repeat_send_flag 
+0x4b63 017234 rtn blank 
+0x4b64 017235 jam 0 ,mem_24g_repeat_send_flag 
+0x4b65 017236 jam 1 ,mem_keyboard_data_change_flag 
+0x4b66 017237 call g24_txdata_prep 
+0x4b67 017238 branch keyboard_g24_transmit_process 
+:      017240 keyboard_24g_led_status_get_timer:
+0x4b68 017241 arg mem_keyboard_led_status_get_timer ,regc 
+0x4b69 017242 arg keyboard_24g_led_status_clear ,regb 
+0x4b6a 017243 branch timer_single_step 
+:      017245 keyboard_24g_led_status_clear:
+0x4b6b 017246 jam 0 ,mem_keyboard_led_status_get 
+0x4b6c 017247 rtn 
+:      017253 keyboard_device_led_off:
+0x4b6d 017254 call mouse_device_multi_led_off 
+0x4b6e 017255 call keyboard_capslock_led_off 
+:      017256 keyboard_power_led_off:
+0x4b6f 017257 fetcht 1 ,mem_keyboard_power_led_gpio 
+0x4b70 017258 branch gpio_out_inactive 
+:      017259 keyboard_numlock_led_off:
+0x4b71 017260 rtn 
+:      017263 keyboard_capslock_led_on_timer:
+0x4b72 017264 fetch 1 ,mem_keyboard_caps_led_gpio 
+0x4b73 017265 rtneq gpio_disable 
+0x4b74 017266 fetch 2 ,mem_mouse_no_data_timer 
+0x4b75 017267 rtn blank 
+0x4b76 017268 fetch 2 ,mem_mouse_no_data_timeout 
+0x4b77 017269 fetcht 2 ,mem_mouse_no_data_timer 
+0x4b78 017270 isub temp ,temp 
+0x4b79 017271 fetch 2 ,mem_keyboard_caps_led_on_timer 
+0x4b7a 017272 isub temp ,pdata 
+0x4b7b 017273 branch keyboard_capslock_led_check_on ,positive 
+:      017274 keyboard_capslock_led_off:
+0x4b7c 017275 fetcht 1 ,mem_keyboard_caps_led_gpio 
+0x4b7d 017276 branch gpio_out_inactive 
+:      017280 keyboard_capslock_led_check_on:
+0x4b7e 017281 fetch 1 ,mem_keyboard_led_status 
+0x4b7f 017282 bbit0 kb_pc_keysel_capslock ,keyboard_capslock_led_off 
+0x4b80 017283 fetcht 1 ,mem_keyboard_caps_led_gpio 
+0x4b81 017284 branch gpio_out_active 
+:      017286 keyboard_long_press_timer:
+0x4b82 017287 arg mem_same_keyvalue_timer ,regc 
+0x4b83 017288 arg keyboard_long_press_timerout ,regb 
+0x4b84 017289 branch timer_single_step_2b 
+:      017291 keyboard_long_press_timerout:
+0x4b85 017292 jam 1 ,mem_same_keyvalue_timerout_flag 
+0x4b86 017293 branch app_enter_hibernate 
+:      017295 keyboard_commbination_delay_release_timer:
+0x4b87 017296 arg mem_keyboard_commbination_control_key_delay_release_timer ,regc 
+0x4b88 017297 arg keyboard_commbination_key_null_set ,regb 
+0x4b89 017298 branch timer_single_step 
+:      017301 keyboard_check_no_data_timeout_timer:
+0x4b8a 017302 arg mem_mouse_no_data_timer ,regc 
+0x4b8b 017303 arg keyboard_check_no_data_timeout ,regb 
+0x4b8c 017304 branch timer_single_step_2b 
+:      017306 keyboard_check_no_data_timeout:
+0x4b8d 017307 fetch 1 ,mem_device_flag 
+0x4b8e 017308 beq mode_24g_device ,keyboard_24g_hibernate_set 
+0x4b8f 017309 branch mouse_disconnect 
+:      017312 keyboard_bb_event_discovery_btn:
+0x4b90 017313 isolate1 mark_24g ,mark 
+0x4b91 017314 call mouse_24g_stop ,true 
+0x4b92 017315 call mouse_disconnect 
+0x4b93 017316 call mouse_le_clean_connect_flag 
+0x4b94 017317 branch keyboard_start_discovery 
+:      017319 keyboard_start_discovery:
+0x4b95 017320 bpatch patch09_0 ,mem_patch09 
+0x4b96 017321 call mouse_device_discovery_led_config 
+0x4b97 017322 fetch 2 ,mem_ui_state_map 
+0x4b98 017323 isolate1 ui_state_ble_adv ,pdata 
+0x4b99 017324 call mouse_stop_le_adv ,true 
+0x4b9a 017326 setarg 0 
+0x4b9b 017327 store 2 ,mem_le_battery_level_updata_timer 
+0x4b9c 017328 call keyboard_capslock_led_off 
+0x4b9d 017329 jam 0xff ,mem_kb_computer_system 
+0x4b9e 017331 fetch 2 ,mem_ui_state_map 
+0x4b9f 017332 isolate1 ui_state_ble_adv ,pdata 
+0x4ba0 017333 call mouse_stop_le_adv ,true 
+0x4ba1 017334 call mouse_bluetooth_fast_conn_disable 
+0x4ba2 017335 fetch 2 ,mem_ui_state_map 
+0x4ba3 017336 bbit1 ui_state_ble_adv ,keyboard_start_discovery_norandom 
+0x4ba4 017337 fetch mouse_flag_len ,mem_mouse_flag 
+0x4ba5 017338 bbit0 mouse_enable_ble_random_addre ,keyboard_start_discovery_norandom 
+0x4ba6 017339 fetcht 2 ,mem_random_addr_increase_count 
+0x4ba7 017340 increase 1 ,temp 
+0x4ba8 017341 storet 2 ,mem_random_addr_increase_count 
+0x4ba9 017342 storet 2 ,mem_le_lap + 1 
+0x4baa 017343 random pdata 
+0x4bab 017344 store 1 ,mem_le_lap 
+:      017345 keyboard_start_discovery_norandom:
+0x4bac 017346 fetch 3 ,mem_mouse_le_lap_temp 
+0x4bad 017347 store 3 ,mem_le_lap + 3 
+0x4bae 017348 call app_lpm_mult_disable 
+0x4baf 017349 fetch 2 ,mem_mouse_discovery_timeout 
+0x4bb0 017350 store 2 ,mem_mouse_discovery_timer 
+0x4bb1 017351 setarg 0 
+0x4bb2 017352 store 2 ,mem_mouse_no_data_timer 
+0x4bb3 017353 store 2 ,mem_le_battery_level_updata_timer 
+0x4bb4 017354 store 1 ,mem_mouse_direct_timer 
+0x4bb5 017355 store 1 ,mem_mouse_bluetooth_reconnect_timeout 
+0x4bb6 017356 store 1 ,mem_mouse_clear_sensor_data_flag 
+0x4bb7 017357 arg mouse_store_eeprom_flag ,queue 
+0x4bb8 017358 call mouse_enable_function_flag 
+0x4bb9 017359 call mouse_bt_discovery_button_down_disable 
+0x4bba 017360 branch mouse_check_51cmd_adv 
+:      017363 keyboard_low_voltage_led_blink_disable:
+0x4bbb 017364 jam 0 ,mem_mouse_adc_last_low_voltage_flag 
+0x4bbc 017365 branch mouse_low_voltage_led_off_judge 
+:      017367 keyboard_stop_discovery:
+0x4bbd 017368 bpatch patch09_1 ,mem_patch09 
+0x4bbe 017369 setarg 0 
+0x4bbf 017370 store 2 ,mem_mouse_discovery_timer 
+0x4bc0 017371 arg mouse_bt_discovery_button_long_down_flag ,queue 
+0x4bc1 017372 call mouse_disable_function_flag 
+0x4bc2 017373 jam 0 ,mem_mouse_bluetooth_reconnect_timeout 
+0x4bc3 017374 call mouse_stop_le_adv 
+0x4bc4 017375 branch keyboard_device_led_off 
+:      017378 keyboard_store_remote_bdaddr:
+0x4bc5 017379 bpatch patch09_2 ,mem_patch09 
+0x4bc6 017380 fetch mouse_flag_len ,mem_mouse_flag 
+0x4bc7 017381 rtnbit0 mouse_store_eeprom_flag 
+0x4bc8 017382 arg mouse_store_eeprom_flag ,queue 
+0x4bc9 017383 call mouse_disable_function_flag 
+0x4bca 017384 call mouse_check_device_addr 
+0x4bcb 017385 branch mouse_unplug_clean_bdaddr 
+:      017388 keyboard_idle:
+0x4bcc 017389 bpatch patch09_3 ,mem_patch09 
+0x4bcd 017390 call mouse_low_voltage_led_no_enter_lpm 
+0x4bce 017391 branch ui_check_paring_button 
+:      017395 keyboard_start_work:
+0x4bcf 017396 bpatch patch09_4 ,mem_patch09 
+0x4bd0 017397 fetch mouse_flag_len ,mem_mouse_flag 
+0x4bd1 017398 bbit0 mouse_enable_adc ,keyboard_start_work_next 
+0x4bd2 017399 call enable_adc 
+0x4bd3 017400 call vdd_calculate_by_mode 
+0x4bd4 017401 store 2 ,mem_mouse_vdd_now_vol 
+0x4bd5 017403 fetch 2 ,mem_adc_current_value 
+0x4bd6 017404 isub temp ,null 
+0x4bd7 017405 branch keyboard_start_work ,positive 
+0x4bd8 017406 arg mem_mouse_vdd_calculate_set ,rega 
+0x4bd9 017407 call mouse_adc_bat_percent_lowpower_out 
+0x4bda 017408 fetch 1 ,mem_adc_power_flag 
+0x4bdb 017409 bbit1 1 ,keyboard_power_down 
+:      017410 keyboard_start_work_next:
+0x4bdc 017412 fetch 1 ,mem_keyboard_pairing_type 
+0x4bdd 017413 call keyboard_enable_bt_button_pairing ,blank 
+0x4bde 017414 fetch 1 ,mem_keyboard_bt_button_flag 
+0x4bdf 017415 nrtn blank 
+0x4be0 017416 fetch 1 ,mem_device_flag 
+0x4be1 017417 beq mode_24g_device ,mouse_24g_reconn_general_dongle 
+0x4be2 017418 call mouse_bluetooth_fast_conn_disable 
+0x4be3 017419 fetch 6 ,mem_device1_addr 
+0x4be4 017420 branch mouse_bluetooth_fast_conn_init ,blank 
+0x4be5 017421 branch mouse_start_reconnect_device 
+:      017433 keyboard_le:
+0x4be6 017434 bpatch patch09_5 ,mem_patch09 
+0x4be7 017435 call le_fifo_check_nearly_full 
+0x4be8 017436 nrtn blank 
+0x4be9 017437 fetch 1 ,mem_mouse_bluetooth_fast_conn_flag 
+0x4bea 017438 beq 0xff ,keyboard_le_next 
+0x4beb 017439 fetch 1 ,mem_le_connect_status_flag 
+0x4bec 017440 and pdata ,0x03 ,pdata 
+0x4bed 017441 rtnne 0x03 
+:      017442 keyboard_le_next:
+0x4bee 017443 fetch mouse_flag_len ,mem_mouse_flag 
+0x4bef 017444 bbit1 mouse_24g_pairing_flag ,mouse_le_send_empty_packet 
+0x4bf0 017445 bbit1 mouse_select_device_flag ,mouse_le_send_empty_packet 
+0x4bf1 017446 bbit1 mouse_bt_discovery_button_down_flag ,mouse_le_send_empty_packet 
+0x4bf2 017447 bbit1 mouse_bt_discovery_button_long_down_flag ,mouse_le_send_empty_packet 
+0x4bf3 017448 call keyboard_motion 
+0x4bf4 017449 nrtn user 
+0x4bf5 017450 call mouse_current_mult_update 
+0x4bf6 017451 call mouse_wheel_trigger 
+0x4bf7 017452 fetch mouse_flag_len ,mem_mouse_flag 
+0x4bf8 017453 bbit0 mouse_enable_keyboard ,mouse_le_send_mouse_data 
+0x4bf9 017454 fetch 1 ,mem_customer_key 
+0x4bfa 017455 branch mouse_le_send_keyboard_package_data 
+:      017462 kscan_dispatch:
+0x4bfb 017463 fetch 1 ,mem_device_option 
+0x4bfc 017464 rtnne dvc_op_keyboard 
+0x4bfd 017465 call keyboard_keyscan 
+0x4bfe 017466 call keyboard_key_process 
+0x4bff 017467 branch keyboard_special_key_check 
+:      017474 keyboard_keyscan:
+0x4c00 017475 bpatch patch09_6 ,mem_patch09 
+0x4c01 017476 call keyboard_stb_state_low 
+0x4c02 017477 setarg 0 
+0x4c03 017478 store 2 ,mem_keyscan_exmcu_wait_wake_count 
+0x4c04 017479 arg mem_keyscan_value_current ,contr 
+0x4c05 017480 arg mem_keyscan_value_check ,contw 
+0x4c06 017481 arg 20 ,loopcnt 
+0x4c07 017482 call memcpy 
+0x4c08 017483 setarg mem_keyscan_value_current 
+0x4c09 017484 store 2 ,mem_keyscan_value_ptr 
+0x4c0a 017485 setarg mem_keyscan_exmcu_value 
+0x4c0b 017486 store 2 ,mem_keyscan_exmcu_value_ptr 
+0x4c0c 017487 call keyboard_keyscan_get_exmcu_value 
+0x4c0d 017488 call keyboard_keyscan_get_mcu_value 
+0x4c0e 017489 call keyboard_stb_state_high 
+:      017490 keyboard_keyscan_copy_value:
+0x4c0f 017491 fetch 2 ,mem_kb_excol_ptr 
+0x4c10 017492 copy pdata ,regb 
+0x4c11 017493 jam 0 ,mem_keyscan_col_loop_count 
+:      017494 keyboard_compare_col_excol_gpio_loop:
+0x4c12 017495 ifetcht 1 ,regb 
+0x4c13 017496 fetch 2 ,mem_kb_col_ptr 
+0x4c14 017497 copy pdata ,rega 
+0x4c15 017498 copy rega ,regc 
+0x4c16 017499 arg 20 ,loopcnt 
+:      017500 keyboard_compare_col_gpio_loop:
+0x4c17 017501 ifetch 1 ,rega 
+0x4c18 017502 isub temp ,null 
+0x4c19 017503 branch keyboard_copy_value_exmcu_to_mcu ,zero 
+0x4c1a 017504 increase 1 ,rega 
+0x4c1b 017505 loop keyboard_compare_col_gpio_loop 
+:      017506 keyboard_compare_col_excol_gpio_loop_next:
+0x4c1c 017507 increase 1 ,regb 
+0x4c1d 017508 fetch 1 ,mem_keyscan_col_loop_count 
+0x4c1e 017509 increase 1 ,pdata 
+0x4c1f 017510 store 1 ,mem_keyscan_col_loop_count 
+0x4c20 017511 sub pdata ,10 ,null 
+0x4c21 017512 branch keyboard_compare_col_excol_gpio_loop ,positive 
+0x4c22 017514 rtn 
+:      017516 keyboard_copy_value_exmcu_to_mcu:
+0x4c23 017517 fetch 2 ,mem_keyscan_value_ptr 
+0x4c24 017518 copy pdata ,contw 
+0x4c25 017519 copy rega ,pdata 
+0x4c26 017520 isub regc ,pdata 
+0x4c27 017521 iadd contw ,contw 
+0x4c28 017522 fetch 2 ,mem_keyscan_exmcu_value_ptr 
+0x4c29 017523 copy pdata ,regc 
+0x4c2a 017524 fetch 1 ,mem_keyscan_col_loop_count 
+0x4c2b 017525 iadd regc ,regc 
+0x4c2c 017526 ifetch 1 ,regc 
+0x4c2d 017527 istore 1 ,contw 
+0x4c2e 017528 branch keyboard_compare_col_excol_gpio_loop_next 
+:      017530 keyboard_keyscan_get_exmcu_value:
+0x4c2f 017531 bpatch patch09_7 ,mem_patch09 
+0x4c30 017532 call keyboard_stb_state_high 
+0x4c31 017533 call keyboard_clk_input 
+:      017534 keyboard_keyscan_exmcu_start:
+0x4c32 017535 fetch 2 ,mem_keyscan_exmcu_wait_wake_count 
+0x4c33 017536 increase 1 ,pdata 
+0x4c34 017537 store 2 ,mem_keyscan_exmcu_wait_wake_count 
+0x4c35 017538 bbit1 9 ,keyboard_keyscan_reset_exmcu 
+0x4c36 017539 fetcht 1 ,mem_mcu_clk_gpio 
+0x4c37 017540 call gpio_get_bit 
+0x4c38 017541 nbranch keyboard_keyscan_exmcu_start ,true 
+0x4c39 017542 nop 20 
+0x4c3a 017543 call keyboard_clk_state_high 
+0x4c3b 017544 call keyboard_stb_state_low 
+0x4c3c 017545 jam 0 ,mem_keyscan_col_loop_count 
+:      017546 keyboard_keyscan_exmcu_start_loop:
+0x4c3d 017547 call keyboard_clk_state_low 
+0x4c3e 017548 call keyboard_keyscan_exmcu_get_col_value 
+0x4c3f 017549 call keyboard_clk_state_high 
+0x4c40 017550 call keyboard_keyscan_exmcu_get_col_value 
+0x4c41 017551 sub pdata ,9 ,null 
+0x4c42 017552 branch keyboard_keyscan_exmcu_start_loop ,positive 
+0x4c43 017553 call keyboard_clk_state_low 
+0x4c44 017554 call keyboard_keyscan_exmcu_get_col_value 
+0x4c45 017555 branch keyboard_clk_state_high 
+:      017557 keyboard_keyscan_exmcu_get_col_value:
+0x4c46 017558 jam 0 ,mem_keyscan_value_temp 
+0x4c47 017559 nop 50 
+0x4c48 017560 call keyboard_keyscan_get_col_value 
+0x4c49 017561 fetch 2 ,mem_keyscan_exmcu_value_ptr 
+:      017562 keyboard_keyscan_value_store:
+0x4c4a 017563 copy pdata ,contw 
+0x4c4b 017564 fetch 1 ,mem_keyscan_col_loop_count 
+0x4c4c 017565 iadd contw ,contw 
+0x4c4d 017566 fetch 1 ,mem_keyscan_value_temp 
+0x4c4e 017567 istore 1 ,contw 
+0x4c4f 017568 fetch 1 ,mem_keyscan_col_loop_count 
+0x4c50 017569 increase 1 ,pdata 
+0x4c51 017570 store 1 ,mem_keyscan_col_loop_count 
+0x4c52 017571 rtn 
+:      017574 keyboard_keyscan_get_mcu_value:
+0x4c53 017575 nop 20 
+0x4c54 017576 fetch 2 ,mem_kb_col_ptr 
+0x4c55 017577 copy pdata ,regb 
+0x4c56 017578 jam 0 ,mem_keyscan_col_loop_count 
+:      017579 keyboard_keyscan_mcu_start:
+0x4c57 017580 jam 0 ,mem_keyscan_value_temp 
+0x4c58 017581 ifetcht 1 ,regb 
+0x4c59 017582 isolate1 7 ,temp 
+0x4c5a 017583 branch keyboard_keyscan_mcu_start_loop ,true 
+0x4c5b 017584 call gpio_out_active 
+0x4c5c 017585 call keyboard_keyscan_get_col_value 
+0x4c5d 017586 ifetcht 1 ,regb 
+0x4c5e 017587 call gpio_set_high_impedance 
+:      017588 keyboard_keyscan_mcu_start_loop:
+0x4c5f 017589 increase 1 ,regb 
+0x4c60 017590 fetch 2 ,mem_keyscan_value_ptr 
+0x4c61 017591 call keyboard_keyscan_value_store 
+0x4c62 017592 sub pdata ,19 ,null 
+0x4c63 017593 branch keyboard_keyscan_mcu_start ,positive 
+0x4c64 017594 rtn 
+:      017597 keyboard_keyscan_get_col_value:
+0x4c65 017598 fetch 2 ,mem_kb_row_ptr 
+0x4c66 017599 copy pdata ,regc 
+0x4c67 017600 arg 8 ,loopcnt 
+:      017602 keyboard_keyscan_get_col_value_loop:
+0x4c68 017603 ifetcht 1 ,regc 
+0x4c69 017604 call gpio_get_bit 
+0x4c6a 017605 fetch 1 ,mem_keyscan_value_temp 
+0x4c6b 017606 rshift pdata ,pdata 
+0x4c6c 017607 setflag true ,7 ,pdata 
+0x4c6d 017608 store 1 ,mem_keyscan_value_temp 
+0x4c6e 017609 increase 1 ,regc 
+0x4c6f 017610 loop keyboard_keyscan_get_col_value_loop 
+0x4c70 017611 rtn 
+:      017612 keyboard_keyscan_reset_exmcu:
+0x4c71 017613 fetcht 1 ,mem_mcu_rstb_gpio 
+0x4c72 017614 call gpio_out_active 
+0x4c73 017615 nop 20 
+0x4c74 017616 fetcht 1 ,mem_mcu_rstb_gpio 
+0x4c75 017617 call gpio_out_inactive 
+0x4c76 017618 nop 6000 
+0x4c77 017619 rtn 
+0x4c78 017620 branch keyboard_keyscan 
+:      017621 keyboard_clk_state_high:
+0x4c79 017622 fetcht 1 ,mem_mcu_clk_gpio 
+0x4c7a 017623 branch gpio_out_inactive 
+:      017625 keyboard_clk_state_low:
+0x4c7b 017626 fetcht 1 ,mem_mcu_clk_gpio 
+0x4c7c 017627 branch gpio_out_active 
+:      017628 keyboard_gpio_config_input_pu:
+0x4c7d 017629 sub temp ,ui_button_gpio_disable ,null 
+0x4c7e 017630 rtn zero 
+0x4c7f 017631 set0 gpio_active_bit ,temp 
+0x4c80 017632 branch gpio_config_input 
+:      017633 keyboard_clk_input:
+0x4c81 017634 fetcht 1 ,mem_mcu_clk_gpio 
+0x4c82 017635 branch gpio_config_input 
+:      017637 keyboard_stb_state_high:
+0x4c83 017638 fetcht 1 ,mem_mcu_stb_gpio 
+0x4c84 017639 branch gpio_out_inactive 
+:      017641 keyboard_stb_state_low:
+0x4c85 017642 fetcht 1 ,mem_mcu_stb_gpio 
+0x4c86 017643 branch gpio_out_active 
+:      017654 keyboard_press_change_or_no_key:
+0x4c87 017655 jam 0 ,mem_same_keyvalue_timerout_flag 
+0x4c88 017656 fetch 2 ,mem_same_keyvalue_timer_init 
+0x4c89 017657 store 2 ,mem_same_keyvalue_timer 
+0x4c8a 017658 rtn 
+:      017660 keyboard_key_process:
+0x4c8b 017662 bpatch patch0a_0 ,mem_patch0a 
+0x4c8c 017663 arg mem_keyscan_value_current ,rega 
+0x4c8d 017664 arg mem_keyscan_value_check ,regb 
+0x4c8e 017665 arg 20 ,loopcnt 
+0x4c8f 017666 call string_compare 
+0x4c90 017667 nbranch keyboard_press_change_or_no_key ,zero 
+0x4c91 017668 call keyboard_keyscan_value_current_zero_check 
+0x4c92 017669 call keyboard_press_change_or_no_key ,blank 
+0x4c93 017671 call keyboard_ghost_key_check 
+0x4c94 017672 fetch 1 ,mem_mouse_ghost_flag 
+0x4c95 017673 nrtn blank 
+0x4c96 017674 fetch 1 ,mem_keyboard_commbination_key_step 
+0x4c97 017675 rtneq cammbination_key_press 
+0x4c98 017676 rtneq cammbination_key_hold 
+0x4c99 017677 rtneq cammbination_key_wait_release 
+0x4c9a 017680 jam 0 ,mem_keyscan_col_loop_count 
+0x4c9b 017681 arg mem_keyscan_value_current ,rega 
+0x4c9c 017682 arg mem_keyscan_value_old ,regb 
+:      017683 keyboard_keyvalue_process:
+0x4c9d 017684 ifetcht 1 ,rega 
+0x4c9e 017685 ifetch 1 ,regb 
+0x4c9f 017686 ixor temp ,pdata 
+0x4ca0 017687 branch keyboard_keyvalue_process_loop ,blank 
+0x4ca1 017688 store 1 ,mem_keyscan_value_temp 
+0x4ca2 017689 storet 1 ,mem_keyboard_press_flag_temp 
+0x4ca3 017690 istoret 1 ,regb 
+0x4ca4 017691 jam 1 ,mem_keyboard_data_change_flag 
+0x4ca5 017692 jam 0 ,mem_keyboard_keyvalue_bit_loop_count 
+:      017693 keyboard_keyvalue_change:
+0x4ca6 017694 fetch 1 ,mem_keyscan_value_temp 
+0x4ca7 017695 bbit0 0 ,keyboard_keyvalue_change_loop 
+0x4ca8 017696 fetch 1 ,mem_keyscan_col_loop_count 
+0x4ca9 017697 mul32 pdata ,8 ,pdata 
+0x4caa 017698 fetcht 1 ,mem_keyboard_keyvalue_bit_loop_count 
+0x4cab 017699 iadd temp ,pdata 
+0x4cac 017700 arg mem_keyboard_keyvalue_map ,contr 
+0x4cad 017701 iadd contr ,contr 
+0x4cae 017702 ifetch 1 ,contr 
+0x4caf 017703 store 1 ,mem_keyboard_keyvalue_temp 
+0x4cb0 017704 call keyboard_keyvalue_fn_replace 
+0x4cb1 017705 call keyboard_keyvalue_commbination_replace 
+0x4cb2 017706 call keyboard_keyvalue_in_out 
+:      017707 keyboard_keyvalue_change_loop:
+0x4cb3 017708 fetch 1 ,mem_keyscan_value_temp 
+0x4cb4 017709 rshift pdata ,pdata 
+0x4cb5 017710 store 1 ,mem_keyscan_value_temp 
+0x4cb6 017711 fetch 1 ,mem_keyboard_press_flag_temp 
+0x4cb7 017712 rshift pdata ,pdata 
+0x4cb8 017713 store 1 ,mem_keyboard_press_flag_temp 
+0x4cb9 017714 fetch 1 ,mem_keyboard_keyvalue_bit_loop_count 
+0x4cba 017715 increase 1 ,pdata 
+0x4cbb 017716 store 1 ,mem_keyboard_keyvalue_bit_loop_count 
+0x4cbc 017717 loop keyboard_keyvalue_change 
+:      017718 keyboard_keyvalue_process_loop:
+0x4cbd 017719 increase 1 ,rega 
+0x4cbe 017720 increase 1 ,regb 
+0x4cbf 017721 fetch 1 ,mem_keyscan_col_loop_count 
+0x4cc0 017722 increase 1 ,pdata 
+0x4cc1 017723 store 1 ,mem_keyscan_col_loop_count 
+0x4cc2 017724 sub pdata ,19 ,null 
+0x4cc3 017725 branch keyboard_keyvalue_process ,positive 
+0x4cc4 017726 rtn 
+:      017728 keyboard_keyscan_value_current_zero_check:
+0x4cc5 017729 fetch 8 ,mem_keyscan_value_current 
+0x4cc6 017730 nrtn blank 
+0x4cc7 017731 fetch 8 ,mem_keyscan_value_current + 8 
+0x4cc8 017732 nrtn blank 
+0x4cc9 017733 fetch 4 ,mem_keyscan_value_current + 16 
+0x4cca 017734 nrtn blank 
+0x4ccb 017735 jam cammbination_key_free ,mem_keyboard_commbination_key_step 
+0x4ccc 017736 rtn 
+:      017740 keyboard_ghost_key_check:
+0x4ccd 017741 bpatch patch0a_1 ,mem_patch0a 
+0x4cce 017742 jam 0 ,mem_mouse_ghost_flag 
+0x4ccf 017743 jam 0 ,mem_keyboard_all_press_key_count 
+0x4cd0 017744 arg mem_keyscan_value_current ,rega 
+0x4cd1 017745 arg 20 ,loopcnt 
+:      017746 keyboard_ghost_key_check_loop:
+0x4cd2 017747 jam 0 ,mem_keyboard_current_col_press_key_count 
+0x4cd3 017748 ifetch 1 ,rega 
+0x4cd4 017749 branch keyboard_ghost_key_check_next_loop ,blank 
+:      017750 keyboard_current_col_press_key_count_check:
+0x4cd5 017751 fetcht 1 ,mem_keyboard_current_col_press_key_count 
+0x4cd6 017752 increase 1 ,temp 
+0x4cd7 017753 storet 1 ,mem_keyboard_current_col_press_key_count 
+0x4cd8 017754 copy pdata ,temp 
+0x4cd9 017755 increase -1 ,pdata 
+0x4cda 017756 iand temp ,pdata 
+0x4cdb 017757 nbranch keyboard_current_col_press_key_count_check ,zero 
+0x4cdc 017758 fetch 1 ,mem_keyboard_current_col_press_key_count 
+0x4cdd 017759 fetcht 1 ,mem_keyboard_all_press_key_count 
+0x4cde 017760 iadd temp ,temp 
+0x4cdf 017761 storet 1 ,mem_keyboard_all_press_key_count 
+0x4ce0 017762 sub pdata ,1 ,null 
+0x4ce1 017763 branch keyboard_ghost_key_check_next_loop ,positive 
+0x4ce2 017764 sub temp ,2 ,null 
+0x4ce3 017765 branch keyboard_ghost_key_check_next_loop ,positive 
+0x4ce4 017766 jam 0 ,mem_keyscan_col_loop_count 
+0x4ce5 017767 jam 0 ,mem_keyboard_same_row_press_key_count 
+0x4ce6 017768 ifetcht 1 ,rega 
+0x4ce7 017769 arg mem_keyscan_value_current ,regb 
+:      017770 keyboard_same_row_key_check:
+0x4ce8 017771 fetch 1 ,mem_keyscan_col_loop_count 
+0x4ce9 017772 increase 1 ,pdata 
+0x4cea 017773 store 1 ,mem_keyscan_col_loop_count 
+0x4ceb 017774 sub pdata ,19 ,null 
+0x4cec 017775 nbranch keyboard_ghost_key_check_next_loop ,positive 
+0x4ced 017776 ifetch 1 ,regb 
+0x4cee 017777 iand temp ,null 
+0x4cef 017778 branch keyboard_same_row_key_check_loop ,zero 
+0x4cf0 017779 fetch 1 ,mem_keyboard_same_row_press_key_count 
+0x4cf1 017780 increase 1 ,pdata 
+0x4cf2 017781 store 1 ,mem_keyboard_same_row_press_key_count 
+0x4cf3 017782 sub pdata ,1 ,null 
+0x4cf4 017783 branch keyboard_same_row_key_check_loop ,positive 
+0x4cf5 017784 jam 1 ,mem_mouse_ghost_flag 
+0x4cf6 017785 rtn 
+:      017787 keyboard_ghost_key_check_next_loop:
+0x4cf7 017788 increase 1 ,rega 
+0x4cf8 017789 loop keyboard_ghost_key_check_loop 
+0x4cf9 017790 rtn 
+:      017792 keyboard_same_row_key_check_loop:
+0x4cfa 017793 increase 1 ,regb 
+0x4cfb 017794 branch keyboard_same_row_key_check 
+:      017802 keyboard_keyvalue_fn_replace:
+0x4cfc 017803 bpatch patch0a_2 ,mem_patch0a 
+0x4cfd 017804 fetch 1 ,mem_keyboard_press_flag_temp 
+0x4cfe 017805 ncall keyboard_commbination_delay_release_clear ,blank 
+0x4cff 017806 fetch 1 ,mem_keyboard_fn_flag 
+0x4d00 017807 ncall keyboard_keyvalue_fn_replace_press ,blank 
+0x4d01 017808 fetch 1 ,mem_keyboard_fn_first 
+0x4d02 017809 fetcht 1 ,mem_keyboard_fn_flag 
+0x4d03 017810 ixor temp ,pdata 
+0x4d04 017811 rtn zero 
+0x4d05 017812 fetch 1 ,mem_keyboard_keyvalue_temp 
+0x4d06 017813 beq hid_key_esc ,keyboard_keyvalue_fn_esc 
+0x4d07 017814 beq hid_key_delete ,keyboard_keyvalue_fn_delete 
+0x4d08 017815 sub pdata ,hid_key_f12 ,null 
+0x4d09 017816 nrtn positive 
+0x4d0a 017817 arg hid_key_f1 ,temp 
+0x4d0b 017818 isub temp ,pdata 
+0x4d0c 017819 nrtn positive 
+0x4d0d 017820 arg mem_keyboard_fn_f1 ,contr 
+0x4d0e 017821 iadd contr ,contr 
+0x4d0f 017822 ifetch 1 ,contr 
+0x4d10 017823 branch keyboard_keyvalue_store_temp 
+:      017825 keyboard_keyvalue_fn_replace_press:
+0x4d11 017826 fetch 1 ,mem_keyboard_keyvalue_temp 
+0x4d12 017827 beq hid_key_up_arrow ,keyboard_keyvalue_fn_up_arrow 
+0x4d13 017828 beq hid_key_down_arrow ,keyboard_keyvalue_fn_down_arrow 
+0x4d14 017829 beq hid_key_left_arrow ,keyboard_keyvalue_fn_left_arrow 
+0x4d15 017830 beq hid_key_right_arrow ,keyboard_keyvalue_fn_right_arrow 
+0x4d16 017831 beq hid_key_left_ctrl ,keyboard_keyvalue_fn_left_ctrl 
+0x4d17 017832 beq hid_key_space ,keyboard_keyvalue_fn_space 
+0x4d18 017833 rtn 
+:      017835 keyboard_keyvalue_fn_esc:
+0x4d19 017836 fetch 1 ,mem_keyboard_fn_esc 
+0x4d1a 017837 branch keyboard_keyvalue_store_temp 
+:      017839 keyboard_keyvalue_fn_delete:
+0x4d1b 017840 fetch 1 ,mem_keyboard_fn_del 
+0x4d1c 017841 branch keyboard_keyvalue_store_temp 
+:      017843 keyboard_keyvalue_fn_up_arrow:
+0x4d1d 017844 fetch 1 ,mem_keyboard_fn_arrow_enable_flag 
+0x4d1e 017845 rtn blank 
+0x4d1f 017846 setarg hid_key_page_up 
+0x4d20 017847 branch keyboard_keyvalue_store_temp 
+:      017849 keyboard_keyvalue_fn_down_arrow:
+0x4d21 017850 fetch 1 ,mem_keyboard_fn_arrow_enable_flag 
+0x4d22 017851 rtn blank 
+0x4d23 017852 setarg hid_key_page_down 
+0x4d24 017853 branch keyboard_keyvalue_store_temp 
+:      017855 keyboard_keyvalue_fn_left_arrow:
+0x4d25 017856 fetch 1 ,mem_keyboard_fn_arrow_enable_flag 
+0x4d26 017857 rtn blank 
+0x4d27 017858 setarg hid_key_home 
+0x4d28 017859 branch keyboard_keyvalue_store_temp 
+:      017861 keyboard_keyvalue_fn_right_arrow:
+0x4d29 017862 fetch 1 ,mem_keyboard_fn_arrow_enable_flag 
+0x4d2a 017863 rtn blank 
+0x4d2b 017864 setarg hid_key_end 
+0x4d2c 017865 branch keyboard_keyvalue_store_temp 
+:      017867 keyboard_keyvalue_fn_left_ctrl:
+0x4d2d 017868 fetch 1 ,mem_keyboard_fn_left_ctrl_enable_flag 
+0x4d2e 017869 rtn blank 
+0x4d2f 017870 fetch 1 ,mem_kb_computer_system 
+0x4d30 017871 beq system_os_windows ,keyboard_keyvalue_windows_osk 
+0x4d31 017872 setarg hid_key_os_soft_kb 
+0x4d32 017873 branch keyboard_keyvalue_store_temp 
+:      017874 keyboard_keyvalue_windows_osk:
+0x4d33 017875 setarg hid_key_osk 
+0x4d34 017876 branch keyboard_keyvalue_store_temp 
+:      017878 keyboard_keyvalue_fn_space:
+0x4d35 017879 fetch 1 ,mem_keyboard_fn_space_enable_flag 
+0x4d36 017880 rtn blank 
+0x4d37 017881 setarg hid_key_language 
+:      017882 keyboard_keyvalue_store_temp:
+0x4d38 017883 store 1 ,mem_keyboard_keyvalue_temp 
+0x4d39 017884 rtn 
+:      017890 keyboard_keyvalue_commbination_replace:
+0x4d3a 017891 bpatch patch0a_3 ,mem_patch0a 
+0x4d3b 017892 fetch 1 ,mem_keyboard_keyvalue_temp 
+0x4d3c 017893 beq hid_key_print_screen ,keyboard_commination_screen_shot_replace 
+0x4d3d 017894 beq hid_key_page_up ,keyboard_commination_pageup_replace 
+0x4d3e 017895 beq hid_key_page_down ,keyboard_commination_pagedown_replace 
+0x4d3f 017896 beq hid_key_home ,keyboard_commination_home_replace 
+0x4d40 017897 beq hid_key_end ,keyboard_commination_end_replace 
+0x4d41 017898 beq hid_key_select_all ,keyboard_commination_select_all 
+0x4d42 017899 beq hid_key_copy ,keyboard_commbination_copy 
+0x4d43 017900 beq hid_key_paste ,keyboard_commbination_paste 
+0x4d44 017901 beq hid_key_cut ,keyboard_commbination_cut 
+0x4d45 017902 beq hid_key_all_os_lock ,keyboard_commination_os_lock 
+0x4d46 017903 beq hid_key_osk ,keyboard_commbination_osk 
+0x4d47 017904 beq hid_key_language ,keyboard_commbination_language 
+0x4d48 017905 beq hid_key_app_tiling ,keyboard_commbination_app_tiling 
+0x4d49 017906 rtn 
+:      017908 keyboard_commbination_delay_release_set:
+0x4d4a 017909 fetch 1 ,mem_keyboard_press_flag_temp 
+0x4d4b 017910 nrtn blank 
+0x4d4c 017911 jam 10 ,mem_keyboard_commbination_control_key_delay_release_timer 
+0x4d4d 017912 rtn 
+:      017914 keyboard_commbination_delay_release_clear:
+0x4d4e 017915 jam 0 ,mem_keyboard_commbination_control_key_delay_release_timer 
+0x4d4f 017916 rtn 
+:      017918 keyboard_commination_screen_shot_replace:
+0x4d50 017919 fetch 1 ,mem_kb_computer_system 
+0x4d51 017920 rtneq system_os_windows 
+0x4d52 017921 rtneq system_os_andriod 
+0x4d53 017922 jam left_shift_gui ,mem_keyboard_commbination_control_key_value 
+0x4d54 017923 jam hid_key_3 ,mem_keyboard_commbination_standard_key_value 
+0x4d55 017924 branch keyboard_commbination_keypress 
+:      017926 keyboard_commination_pageup_replace:
+0x4d56 017927 jam hid_key_up_arrow ,mem_keyboard_commbination_standard_key_value 
+:      017928 keyboard_commination_ios_mac_command_commiation:
+0x4d57 017929 fetch 1 ,mem_kb_computer_system 
+0x4d58 017930 rtneq system_os_windows 
+0x4d59 017931 rtneq system_os_andriod 
+0x4d5a 017932 jam left_gui ,mem_keyboard_commbination_control_key_value 
+0x4d5b 017933 branch keyboard_commbination_keypress 
+:      017935 keyboard_commination_pagedown_replace:
+0x4d5c 017936 jam hid_key_down_arrow ,mem_keyboard_commbination_standard_key_value 
+0x4d5d 017937 branch keyboard_commination_ios_mac_command_commiation 
+:      017939 keyboard_commination_home_replace:
+0x4d5e 017940 jam hid_key_left_arrow ,mem_keyboard_commbination_standard_key_value 
+0x4d5f 017941 branch keyboard_commination_ios_mac_command_commiation 
+:      017943 keyboard_commination_end_replace:
+0x4d60 017944 jam hid_key_right_arrow ,mem_keyboard_commbination_standard_key_value 
+0x4d61 017945 branch keyboard_commination_ios_mac_command_commiation 
+:      017947 keyboard_commination_select_all:
+0x4d62 017948 jam hid_key_a ,mem_keyboard_commbination_standard_key_value 
+:      017949 keyboard_commbination_text_edit:
+0x4d63 017950 jam left_control ,mem_keyboard_commbination_control_key_value 
+0x4d64 017951 fetch 1 ,mem_kb_computer_system 
+0x4d65 017952 beq system_os_windows ,keyboard_commbination_keypress 
+0x4d66 017953 beq system_os_andriod ,keyboard_commbination_keypress 
+0x4d67 017954 jam left_gui ,mem_keyboard_commbination_control_key_value 
+0x4d68 017955 branch keyboard_commbination_keypress 
+:      017957 keyboard_commbination_copy:
+0x4d69 017958 jam hid_key_c ,mem_keyboard_commbination_standard_key_value 
+0x4d6a 017959 branch keyboard_commbination_text_edit 
+:      017961 keyboard_commbination_paste:
+0x4d6b 017962 jam hid_key_v ,mem_keyboard_commbination_standard_key_value 
+0x4d6c 017963 branch keyboard_commbination_text_edit 
+:      017965 keyboard_commbination_cut:
+0x4d6d 017966 jam hid_key_x ,mem_keyboard_commbination_standard_key_value 
+0x4d6e 017967 branch keyboard_commbination_text_edit 
+:      017969 keyboard_commination_os_lock:
+0x4d6f 017970 fetch 1 ,mem_kb_computer_system 
+0x4d70 017971 beq system_os_windows ,keyboard_commination_windows_lock 
+0x4d71 017972 beq system_os_mac ,keyboard_commination_mac_lock 
+0x4d72 017973 setarg hid_key_ios_android_os_lock 
+0x4d73 017974 branch keyboard_keyvalue_store_temp 
+:      017975 keyboard_commination_windows_lock:
+0x4d74 017976 jam left_gui ,mem_keyboard_commbination_control_key_value 
+0x4d75 017977 jam hid_key_l ,mem_keyboard_commbination_standard_key_value 
+0x4d76 017978 branch keyboard_commbination_keypress 
+:      017979 keyboard_commination_mac_lock:
+0x4d77 017980 jam left_gui_control ,mem_keyboard_commbination_control_key_value 
+0x4d78 017981 jam hid_key_q ,mem_keyboard_commbination_standard_key_value 
+0x4d79 017982 branch keyboard_commbination_keypress 
+:      017984 keyboard_commbination_osk:
+0x4d7a 017985 fetch 1 ,mem_kb_computer_system 
+0x4d7b 017986 beq system_os_windows ,keyboard_commbination_windows_osk 
+0x4d7c 017987 setarg hid_key_os_soft_kb 
+0x4d7d 017988 branch keyboard_keyvalue_store_temp 
+:      017989 keyboard_commbination_windows_osk:
+0x4d7e 017990 jam left_gui_control ,mem_keyboard_commbination_control_key_value 
+0x4d7f 017991 jam hid_key_o ,mem_keyboard_commbination_standard_key_value 
+0x4d80 017992 branch keyboard_commbination_keypress 
+:      017994 keyboard_commbination_language:
+0x4d81 017995 fetch 1 ,mem_kb_computer_system 
+0x4d82 017996 beq system_os_windows ,keyboard_commbination_language_windows 
+0x4d83 017997 beq system_os_andriod ,keyboard_commbination_language_andriod 
+0x4d84 017998 jam left_control ,mem_keyboard_commbination_control_key_value 
+:      017999 keyboard_commbination_language_next:
+0x4d85 018000 jam hid_key_space ,mem_keyboard_commbination_standard_key_value 
+0x4d86 018001 call keyboard_commbination_delay_release_set 
+0x4d87 018002 branch keyboard_commbination_keypress 
+:      018003 keyboard_commbination_language_windows:
+0x4d88 018004 jam left_gui ,mem_keyboard_commbination_control_key_value 
+0x4d89 018005 branch keyboard_commbination_language_next 
+:      018006 keyboard_commbination_language_andriod:
+0x4d8a 018007 jam left_shift ,mem_keyboard_commbination_control_key_value 
+0x4d8b 018008 branch keyboard_commbination_language_next 
+:      018010 keyboard_commbination_app_tiling:
+0x4d8c 018011 fetch 1 ,mem_kb_computer_system 
+0x4d8d 018012 beq system_os_windows ,keyboard_commbination_app_tiling_windows_android 
+0x4d8e 018013 beq system_os_andriod ,keyboard_commbination_app_tiling_windows_android 
+0x4d8f 018014 jam left_control ,mem_keyboard_commbination_control_key_value 
+0x4d90 018015 jam hid_key_up_arrow ,mem_keyboard_commbination_standard_key_value 
+0x4d91 018016 branch keyboard_commbination_keypress 
+:      018017 keyboard_commbination_app_tiling_windows_android:
+0x4d92 018018 jam left_gui ,mem_keyboard_commbination_control_key_value 
+0x4d93 018019 jam hid_key_tab ,mem_keyboard_commbination_standard_key_value 
+0x4d94 018020 branch keyboard_commbination_keypress 
+:      018022 keyboard_commbination_keypress:
+0x4d95 018023 jam 0 ,mem_keyboard_keyvalue_temp 
+0x4d96 018024 fetch 1 ,mem_keyboard_press_flag_temp 
+0x4d97 018025 bbit0 0 ,keyboard_commbination_key_wait_release_set 
+0x4d98 018026 fetch 1 ,mem_keyboard_commbination_key_step 
+0x4d99 018027 beq cammbination_key_complete ,keyboard_commbination_key_hold_set 
+:      018028 keyboard_commbination_key_press_set:
+0x4d9a 018029 jam cammbination_key_press ,mem_keyboard_commbination_key_step 
+0x4d9b 018030 rtn 
+:      018032 keyboard_commbination_key_wait_release_set:
+0x4d9c 018033 jam cammbination_key_wait_release ,mem_keyboard_commbination_key_step 
+0x4d9d 018034 rtn 
+:      018036 keyboard_commbination_key_null_set:
+0x4d9e 018037 jam cammbination_key_null ,mem_keyboard_commbination_key_step 
+0x4d9f 018038 rtn 
+:      018041 keyboard_commbination_key_value_store:
+0x4da0 018042 store 1 ,mem_keyboard_tx_data + 1 
+0x4da1 018043 storet 1 ,mem_keyboard_tx_data + 3 
+0x4da2 018044 call enable_user 
+0x4da3 018045 jam hid_reportid_key_standard ,mem_keyboard_tx_data 
+0x4da4 018046 branch keyboard_motion_data_check_next 
+:      018048 keyboard_commbination_key_press_process:
+0x4da5 018049 fetch 1 ,mem_keyboard_commbination_control_key_value 
+0x4da6 018050 arg 0 ,temp 
+0x4da7 018051 call keyboard_commbination_key_value_store 
+:      018052 keyboard_commbination_key_hold_set:
+0x4da8 018053 jam cammbination_key_hold ,mem_keyboard_commbination_key_step 
+0x4da9 018054 rtn 
+:      018056 keyboard_commbination_key_hold_process:
+0x4daa 018057 jam cammbination_key_complete ,mem_keyboard_commbination_key_step 
+0x4dab 018058 fetch 1 ,mem_keyboard_commbination_control_key_value 
+0x4dac 018059 fetcht 1 ,mem_keyboard_commbination_standard_key_value 
+0x4dad 018060 branch keyboard_commbination_key_value_store 
+:      018062 keyboard_commbination_key_wait_release_process:
+0x4dae 018063 jam hid_reportid_key_standard ,mem_keyboard_tx_data 
+0x4daf 018064 fetch 1 ,mem_keyboard_commbination_control_key_value 
+0x4db0 018065 arg 0 ,temp 
+0x4db1 018066 call keyboard_commbination_key_value_store 
+0x4db2 018067 fetch 1 ,mem_keyboard_commbination_control_key_delay_release_timer 
+0x4db3 018068 branch keyboard_commbination_key_null_set ,blank 
+:      018069 keyboard_commbination_key_release_set:
+0x4db4 018070 jam cammbination_key_release ,mem_keyboard_commbination_key_step 
+0x4db5 018071 rtn 
+:      018073 keyboard_commbination_key_release_process:
+0x4db6 018074 branch keyboard_commbination_key_value_store + 2 
+:      018076 keyboard_commbination_key_null_process:
+0x4db7 018077 jam cammbination_key_free ,mem_keyboard_commbination_key_step 
+0x4db8 018078 arg 0 ,pdata 
+0x4db9 018079 arg 0 ,temp 
+0x4dba 018080 branch keyboard_commbination_key_value_store 
+:      018084 keyboard_keyvalue_in_out:
+0x4dbb 018085 bpatch patch0a_4 ,mem_patch0a 
+0x4dbc 018086 fetch 1 ,mem_keyboard_keyvalue_temp 
+0x4dbd 018087 sub pdata ,hid_key_right_gui ,null 
+0x4dbe 018088 branch keyboard_keyvalue_standard ,positive 
+0x4dbf 018089 jam keyboard_consumer_key_press ,mem_keyboard_consumer_key_status 
+0x4dc0 018090 fetch 1 ,mem_keyboard_press_flag_temp 
+0x4dc1 018091 bbit1 0 ,keyboard_keyvalue_standard 
+0x4dc2 018092 jam keyboard_consumer_key_release ,mem_keyboard_consumer_key_status 
+:      018093 keyboard_keyvalue_standard:
+0x4dc3 018094 jam 0 ,mem_keyboard_keyvalue_buffer + 8 
+0x4dc4 018095 fetch 1 ,mem_keyboard_press_flag_temp 
+0x4dc5 018096 bbit1 0 ,keyboard_keyvalue_standard_in 
+:      018097 keyboard_keyvalue_standard_out:
+0x4dc6 018098 fetcht 1 ,mem_keyboard_keyvalue_temp 
+0x4dc7 018099 arg 6 ,loopcnt 
+0x4dc8 018100 arg mem_keyboard_keyvalue_buffer + 2 ,contr 
+:      018101 keyboard_keyvalue_standard_out_loop:
+0x4dc9 018102 ifetch 1 ,contr 
+0x4dca 018103 branch keyboard_keyvalue_standard_out_next + 1 ,blank 
+0x4dcb 018104 isub temp ,null 
+0x4dcc 018105 nbranch keyboard_keyvalue_standard_out_next ,zero 
+0x4dcd 018106 ifetch 1 ,contr 
+0x4dce 018107 increase -2 ,contr 
+0x4dcf 018108 istore 1 ,contr 
+0x4dd0 018109 rtn blank 
+0x4dd1 018110 increase 1 ,contr 
+0x4dd2 018111 istoret 1 ,contr 
+:      018112 keyboard_keyvalue_standard_out_next:
+0x4dd3 018113 loop keyboard_keyvalue_standard_out_loop 
+0x4dd4 018114 sub temp ,hid_key_right_gui ,null 
+0x4dd5 018115 nrtn positive 
+0x4dd6 018116 sub temp ,0xbf ,null 
+0x4dd7 018117 rtn positive 
+:      018118 keyboard_keyvalue_control_key_out:
+0x4dd8 018119 and temp ,0x07 ,queue 
+0x4dd9 018120 fetch 1 ,mem_keyboard_keyvalue_buffer 
+0x4dda 018121 qset0 pdata 
+0x4ddb 018122 store 1 ,mem_keyboard_keyvalue_buffer 
+0x4ddc 018123 rtn 
+:      018125 keyboard_keyvalue_standard_in:
+0x4ddd 018126 fetcht 1 ,mem_keyboard_keyvalue_temp 
+0x4dde 018127 arg 6 ,loopcnt 
+0x4ddf 018128 arg mem_keyboard_keyvalue_buffer + 2 ,contr 
+:      018129 keyboard_keyvalue_standard_in_loop:
+0x4de0 018130 ifetch 1 ,contr 
+0x4de1 018131 branch keyboard_keyvalue_standard_in_data ,blank 
+0x4de2 018132 isub temp ,null 
+0x4de3 018133 rtn zero 
+0x4de4 018134 loop keyboard_keyvalue_standard_in_loop 
+0x4de5 018135 sub temp ,hid_key_right_gui ,null 
+0x4de6 018136 nrtn positive 
+0x4de7 018137 sub temp ,0xbf ,null 
+0x4de8 018138 rtn positive 
+:      018139 keyboard_keyvalue_control_key_in:
+0x4de9 018140 and temp ,0x07 ,queue 
+0x4dea 018141 fetch 1 ,mem_keyboard_keyvalue_buffer 
+0x4deb 018142 qset1 pdata 
+0x4dec 018143 store 1 ,mem_keyboard_keyvalue_buffer 
+0x4ded 018144 rtn 
+:      018146 keyboard_keyvalue_standard_in_data:
+0x4dee 018147 sub temp ,hid_key_right_gui ,null 
+0x4def 018148 nbranch keyboard_keyvalue_standard_in_data_next ,positive 
+0x4df0 018149 sub temp ,0xbf ,null 
+0x4df1 018150 nbranch keyboard_keyvalue_control_key_in ,positive 
+:      018151 keyboard_keyvalue_standard_in_data_next:
+0x4df2 018152 increase -1 ,contr 
+0x4df3 018153 istoret 1 ,contr 
+0x4df4 018154 rtn 
+:      018158 keyboard_special_key_check:
+0x4df5 018159 bpatch patch0a_5 ,mem_patch0a 
+0x4df6 018160 call keyboard_pairing_button_check 
+0x4df7 018161 jam 0 ,mem_keyboard_fn_flag 
+0x4df8 018162 jam 0 ,mem_keyboard_control_key_flag 
+0x4df9 018163 jam 0 ,mem_keyboard_bt_button_flag 
+0x4dfa 018164 fetch 1 ,mem_keyboard_keyvalue_buffer 
+0x4dfb 018165 ncall keyborad_control_key_set ,blank 
+0x4dfc 018166 arg mem_keyboard_keyvalue_buffer + 2 ,contr 
+0x4dfd 018167 arg 6 ,loopcnt 
+:      018168 keyboard_special_key_check_loop:
+0x4dfe 018169 ifetch 1 ,contr 
+0x4dff 018170 sub pdata ,hid_key_fn ,null 
+0x4e00 018171 call keyboard_fn_set ,zero 
+0x4e01 018172 sub pdata ,hid_key_pb ,null 
+0x4e02 018173 call keyboard_pb_set ,zero 
+0x4e03 018174 loop keyboard_special_key_check_loop 
+0x4e04 018175 fetch 1 ,mem_device_flag 
+0x4e05 018176 beq mode_24g_device ,keyboard_special_key_check_24g 
+:      018177 keyboard_special_key_check_bluetooth:
+0x4e06 018178 call keyboard_commbination_fast_conn_bt_check 
+0x4e07 018179 fetch 1 ,mem_keyboard_pairing_type 
+0x4e08 018180 branch keyboard_enable_bt_button_pairing ,blank 
+0x4e09 018181 fetch 2 ,mem_keyboard_keyvalue_buffer + 2 
+0x4e0a 018182 fetcht 2 ,mem_keyboard_commbination_key_bt 
+0x4e0b 018183 isub temp ,null 
+0x4e0c 018184 branch keyboard_long_button_bt_discovery ,zero 
+0x4e0d 018185 byteswap temp ,temp 
+0x4e0e 018186 isub temp ,null 
+0x4e0f 018187 branch keyboard_long_button_bt_discovery ,zero 
+0x4e10 018188 rtn 
+:      018189 keyboard_special_key_check_24g:
+0x4e11 018190 fetch 1 ,mem_keyboard_pairing_type 
+0x4e12 018191 branch keyboard_enable_bt_button_pairing ,blank 
+0x4e13 018192 branch keyboard_commbination_pairing_24g_check 
+:      018194 keyboard_pairing_button_check:
+0x4e14 018195 fetch 1 ,mem_keyboard_pairing_type 
+0x4e15 018196 nrtn blank 
+0x4e16 018197 fetcht 1 ,mem_config_select_device_button_gpio 
+0x4e17 018198 sub temp ,ui_button_gpio_disable ,null 
+0x4e18 018199 rtn zero 
+0x4e19 018200 call gpio_get_bit 
+0x4e1a 018201 nbranch keyboard_pairing_button_release ,true 
+0x4e1b 018202 arg 8 ,loopcnt 
+0x4e1c 018203 arg mem_keyboard_keyvalue_buffer ,contw 
+0x4e1d 018204 call clear_mem 
+0x4e1e 018205 jam hid_key_pb ,mem_keyboard_keyvalue_buffer + 2 
+0x4e1f 018206 rtn 
+:      018208 keyboard_pairing_button_release:
+0x4e20 018209 fetch 1 ,mem_keyboard_keyvalue_buffer + 2 
+0x4e21 018210 rtnne hid_key_pb 
+0x4e22 018211 jam hid_key_null ,mem_keyboard_keyvalue_buffer + 2 
+0x4e23 018212 rtn 
+:      018214 keyboard_enable_bt_button_pairing:
+0x4e24 018215 bpatch patch0a_6 ,mem_patch0a 
+0x4e25 018216 fetch 1 ,mem_keyboard_bt_button_flag 
+0x4e26 018217 rtn blank 
+0x4e27 018218 fetch 1 ,mem_device_flag 
+0x4e28 018219 beq mode_24g_device ,keyboard_24g_start_pair_mode 
+:      018220 keyboard_long_button_bt_discovery:
+0x4e29 018222 jam 0 ,mem_keyboard_data_change_flag 
+0x4e2a 018223 fetch 1 ,mem_device_flag 
+0x4e2b 018224 rtneq mode_24g_device 
+0x4e2c 018225 fetch mouse_flag_len ,mem_mouse_flag 
+0x4e2d 018226 rtnbit1 mouse_bt_discovery_button_long_down_flag 
+0x4e2e 018227 arg mouse_bt_discovery_button_long_down_flag ,queue 
+0x4e2f 018228 call mouse_enable_function_flag 
+0x4e30 018229 call app_evt_button_long_pressed 
+0x4e31 018230 branch keyboard_bb_event_discovery_btn 
+:      018234 keyboard_commbination_pairing_24g_check:
+0x4e32 018235 fetch 2 ,mem_keyboard_keyvalue_buffer + 2 
+0x4e33 018236 fetcht 2 ,mem_keyboard_commbination_key_24g 
+0x4e34 018237 isub temp ,null 
+0x4e35 018238 branch keyboard_24g_start_pair_mode ,zero 
+0x4e36 018239 byteswap temp ,temp 
+0x4e37 018240 isub temp ,null 
+0x4e38 018241 nrtn zero 
+:      018242 keyboard_24g_start_pair_mode:
+0x4e39 018243 call keyboard_pairing_check_otp_offset 
+0x4e3a 018244 jam 0 ,mem_keyboard_data_change_flag 
+0x4e3b 018245 fetch 2 ,mem_24g_pair_timeout 
+0x4e3c 018246 nrtn blank 
+0x4e3d 018247 setarg 0 
+0x4e3e 018248 store 2 ,mem_mouse_no_data_timer 
+0x4e3f 018249 call keyboard_capslock_led_off 
+0x4e40 018250 branch mouse_24g_start_pair_mode 
+:      018253 keyborad_control_key_set:
+0x4e41 018254 jam 1 ,mem_keyboard_control_key_flag 
+0x4e42 018255 rtn 
+:      018257 keyboard_fn_set:
+0x4e43 018258 jam 1 ,mem_keyboard_fn_flag 
+0x4e44 018259 rtn 
+:      018261 keyboard_pb_set:
+0x4e45 018262 jam 1 ,mem_keyboard_bt_button_flag 
+0x4e46 018263 rtn 
+:      018268 keyboard_motion:
+0x4e47 018269 bpatch patch0a_7 ,mem_patch0a 
+0x4e48 018270 disable user 
+0x4e49 018271 jam 0 ,mem_customer_key 
+0x4e4a 018272 jam 0 ,mem_customer_data_trigger 
+0x4e4b 018273 jam 0 ,mem_customer_data_trigger_last 
+0x4e4c 018274 fetch 1 ,mem_keyboard_commbination_key_step 
+0x4e4d 018275 beq cammbination_key_press ,keyboard_commbination_key_press_process 
+0x4e4e 018276 beq cammbination_key_hold ,keyboard_commbination_key_hold_process 
+0x4e4f 018277 beq cammbination_key_complete ,keyboard_commbination_key_hold_process 
+0x4e50 018278 beq cammbination_key_wait_release ,keyboard_commbination_key_wait_release_process 
+0x4e51 018279 beq cammbination_key_null ,keyboard_commbination_key_null_process 
+0x4e52 018280 fetch 1 ,mem_keyboard_data_change_flag 
+0x4e53 018281 branch keyboard_no_key_press ,blank 
+0x4e54 018282 increase -1 ,pdata 
+0x4e55 018283 store 1 ,mem_keyboard_data_change_flag 
+0x4e56 018284 call keyboard_current_mult_update 
+0x4e57 018285 jam 10 ,mem_keyboard_led_status_get_timer 
+0x4e58 018286 call mouse_no_data_timer_init 
+0x4e59 018287 fetch 1 ,mem_keyboard_commbination_key_step 
+0x4e5a 018288 beq cammbination_key_release ,keyboard_commbination_key_release_process 
+0x4e5b 018289 arg mem_keyboard_tx_data ,contw 
+0x4e5c 018290 arg 10 ,loopcnt 
+0x4e5d 018291 call clear_mem 
+0x4e5e 018292 call keyboard_motion_data_check 
+0x4e5f 018293 jam 0 ,mem_keyboard_data_send_flag 
+0x4e60 018294 rtn 
+:      018296 keyboard_current_mult_update:
+0x4e61 018297 jam 3 ,mem_lpm_mult 
+0x4e62 018298 jam 10 ,mem_mouse_current_mult_timer 
+0x4e63 018299 rtn 
+:      018303 keyboard_no_key_press:
+0x4e64 018304 fetch 1 ,mem_device_flag 
+0x4e65 018305 rtneq mode_bt_device1 
+0x4e66 018306 fetch 1 ,mem_keyboard_led_status_get 
+0x4e67 018307 rtn blank 
+0x4e68 018308 fetch 1 ,mem_24g_repeat_send_flag 
+0x4e69 018309 nrtn blank 
+0x4e6a 018310 fetcht 1 ,mem_keyboard_led_status_get_timer_last 
+0x4e6b 018311 fetch 1 ,mem_keyboard_led_status_get_timer 
+0x4e6c 018312 isub temp ,null 
+0x4e6d 018313 store 1 ,mem_keyboard_led_status_get_timer_last 
+0x4e6e 018314 rtn zero 
+0x4e6f 018315 arg mem_keyboard_tx_data ,contw 
+0x4e70 018316 arg 10 ,loopcnt 
+0x4e71 018317 call clear_mem 
+0x4e72 018318 call enable_user 
+0x4e73 018319 branch keyboard_motion_data_check_next 
+:      018323 keyboard_motion_data_check:
+0x4e74 018324 fetch 1 ,mem_keyboard_consumer_key_status 
+0x4e75 018325 beq keyboard_consumer_key_release ,keyboard_value_consumer_release 
+0x4e76 018326 arg mem_keyboard_keyvalue_buffer + 2 ,contr 
+0x4e77 018327 arg 6 ,loopcnt 
+:      018328 keyboard_value_tpye_check:
+0x4e78 018329 ifetch 1 ,contr 
+0x4e79 018330 sub pdata ,hid_key_right_gui ,null 
+0x4e7a 018331 nbranch keyboard_value_tpye_consumer_set ,positive 
+:      018332 keyboard_value_tpye_check_loop:
+0x4e7b 018333 loop keyboard_value_tpye_check 
+0x4e7c 018335 fetch 1 ,mem_keyboard_all_press_key_count 
+0x4e7d 018336 call keyboard_value_release_all_key ,blank 
+0x4e7e 018337 jam hid_reportid_key_standard ,mem_keyboard_tx_data 
+0x4e7f 018338 fetch 1 ,mem_keyboard_keyvalue_buffer + 2 
+0x4e80 018339 sub pdata ,hid_key_fn ,null 
+0x4e81 018340 branch keyboard_tx_data_skip_fn ,zero 
+0x4e82 018341 arg mem_keyboard_keyvalue_buffer ,contr 
+0x4e83 018342 arg mem_keyboard_tx_data + 1 ,contw 
+0x4e84 018343 arg 8 ,loopcnt 
+:      018344 keyboard_tx_data_store:
+0x4e85 018345 ifetch 1 ,contr 
+0x4e86 018346 beq hid_key_fn ,keyboard_tx_data_clear_fn 
+:      018347 keyboard_tx_data_store_loop:
+0x4e87 018348 istore 1 ,contw 
+0x4e88 018349 loop keyboard_tx_data_store 
+:      018351 keyboard_motion_data_check_next:
+0x4e89 018352 call keyboard_device_data_tpye_check 
+0x4e8a 018354 fetch 1 ,mem_keyboard_data_send_flag 
+0x4e8b 018355 beq device_data_tpye_mouse ,enable_user 
+0x4e8c 018356 beq device_data_tpye_standard_keyboard ,device_send_keyboard_data 
+0x4e8d 018357 beq device_data_tpye_nonstarndard_keyboard ,device_send_keyboard_data 
+0x4e8e 018358 beq device_data_tpye_consumer ,device_send_keyboard_data 
+0x4e8f 018359 beq device_data_tpye_system_conctol ,device_send_keyboard_data 
+:      018360 device_send_keyboard_data:
+0x4e90 018361 call mouse_customerkey_press 
+0x4e91 018362 branch enable_user 
+:      018364 keyboard_value_release_all_key:
+0x4e92 018365 arg mem_keyboard_keyvalue_buffer ,contw 
+0x4e93 018366 arg 9 ,loopcnt 
+0x4e94 018367 branch clear_mem 
+:      018370 keyboard_tx_data_skip_fn:
+0x4e95 018371 fetch 2 ,mem_keyboard_keyvalue_buffer 
+0x4e96 018372 store 2 ,mem_keyboard_tx_data + 1 
+0x4e97 018373 fetch 6 ,mem_keyboard_keyvalue_buffer + 3 
+0x4e98 018374 store 6 ,mem_keyboard_tx_data + 3 
+0x4e99 018375 branch keyboard_motion_data_check_next 
+:      018377 keyboard_tx_data_clear_fn:
+0x4e9a 018378 setarg 0 
+0x4e9b 018379 branch keyboard_tx_data_store_loop 
+:      018382 keyboard_value_tpye_consumer_set:
+0x4e9c 018383 copy pdata ,temp 
+0x4e9d 018384 bpatch patch0b_0 ,mem_patch0b 
+0x4e9e 018385 copy temp ,pdata 
+0x4e9f 018386 jam hid_reportid_consumer_key ,mem_keyboard_tx_data 
+0x4ea0 018387 fetcht 1 ,mem_keyboard_all_press_key_count 
+0x4ea1 018388 sub temp ,hid_key_null ,null 
+0x4ea2 018389 branch keyboard_value_consumer_all_key_release ,zero 
+0x4ea3 018390 beq hid_key_multikey_media ,keyboard_value_media 
+0x4ea4 018391 beq hid_key_multikey_paly ,keyboard_value_play 
+0x4ea5 018392 beq hid_key_multikey_stop ,keyboard_value_stop 
+0x4ea6 018393 beq hid_key_multikey_pre_track ,keyboard_value_pre_track 
+0x4ea7 018394 beq hid_key_multikey_next_track ,keyboard_value_next_track 
+0x4ea8 018395 beq hid_key_multikey_vol_down ,keyboard_value_vol_down 
+0x4ea9 018396 beq hid_key_multikey_vol_up ,keyboard_value_vol_up 
+0x4eaa 018397 beq hid_key_multikey_mute ,keyboard_value_mute 
+0x4eab 018398 beq hid_key_my_computer ,keyboard_value_my_computer 
+0x4eac 018399 beq hid_key_mail ,keyboard_value_mail 
+0x4ead 018400 beq hid_key_calculator ,keyboard_value_calculator 
+0x4eae 018401 beq hid_key_light_down ,keyboard_value_light_down 
+0x4eaf 018402 beq hid_key_light_up ,keyboard_value_light_up 
+0x4eb0 018403 beq hid_key_ac_favorites ,keyboard_value_ac_favorites 
+0x4eb1 018404 beq hid_key_ac_forward ,keyboard_value_ac_forward 
+0x4eb2 018405 beq hid_key_ac_back ,keyboard_value_ac_back 
+0x4eb3 018406 beq hid_key_ac_stop ,keyboard_value_ac_stop 
+0x4eb4 018407 beq hid_key_ac_refresh ,keyboard_value_ac_refresh 
+0x4eb5 018408 beq hid_key_ac_search ,keyboard_value_ac_search 
+0x4eb6 018409 beq hid_key_ac_home ,keyboard_value_ac_home 
+0x4eb7 018410 beq hid_key_ios_android_os_lock ,keyboard_value_os_lock 
+0x4eb8 018411 beq hid_key_os_soft_kb ,keyboard_value_os_soft_kb 
+0x4eb9 018412 beq hid_key_system_sleep ,keyboard_value_system_sleep 
+0x4eba 018413 branch keyboard_motion_data_check_next 
+:      018415 keyboard_value_media:
+0x4ebb 018416 setarg 0x0183 
+0x4ebc 018417 store 2 ,mem_keyboard_tx_data + 1 
+0x4ebd 018418 branch keyboard_motion_data_check_next 
+:      018419 keyboard_value_play:
+0x4ebe 018420 setarg 0x00cd 
+0x4ebf 018421 store 2 ,mem_keyboard_tx_data + 1 
+0x4ec0 018422 branch keyboard_motion_data_check_next 
+:      018423 keyboard_value_stop:
+0x4ec1 018424 setarg 0x00b7 
+0x4ec2 018425 store 2 ,mem_keyboard_tx_data + 1 
+0x4ec3 018426 branch keyboard_motion_data_check_next 
+:      018427 keyboard_value_pre_track:
+0x4ec4 018428 setarg 0x00b6 
+0x4ec5 018429 store 2 ,mem_keyboard_tx_data + 1 
+0x4ec6 018430 branch keyboard_motion_data_check_next 
+:      018431 keyboard_value_next_track:
+0x4ec7 018432 setarg 0x00b5 
+0x4ec8 018433 store 2 ,mem_keyboard_tx_data + 1 
+0x4ec9 018434 branch keyboard_motion_data_check_next 
+:      018435 keyboard_value_vol_down:
+0x4eca 018436 setarg 0x00ea 
+0x4ecb 018437 store 2 ,mem_keyboard_tx_data + 1 
+0x4ecc 018438 branch keyboard_motion_data_check_next 
+:      018439 keyboard_value_vol_up:
+0x4ecd 018440 setarg 0x00e9 
+0x4ece 018441 store 2 ,mem_keyboard_tx_data + 1 
+0x4ecf 018442 branch keyboard_motion_data_check_next 
+:      018443 keyboard_value_mute:
+0x4ed0 018444 setarg 0x00e2 
+0x4ed1 018445 store 2 ,mem_keyboard_tx_data + 1 
+0x4ed2 018446 branch keyboard_motion_data_check_next 
+:      018447 keyboard_value_my_computer:
+0x4ed3 018448 setarg 0x0194 
+0x4ed4 018449 store 2 ,mem_keyboard_tx_data + 1 
+0x4ed5 018450 branch keyboard_motion_data_check_next 
+:      018451 keyboard_value_mail:
+0x4ed6 018452 setarg 0x018a 
+0x4ed7 018453 store 2 ,mem_keyboard_tx_data + 1 
+0x4ed8 018454 branch keyboard_motion_data_check_next 
+:      018455 keyboard_value_calculator:
+0x4ed9 018456 setarg 0x0192 
+0x4eda 018457 store 2 ,mem_keyboard_tx_data + 1 
+0x4edb 018458 branch keyboard_motion_data_check_next 
+:      018459 keyboard_value_light_down:
+0x4edc 018460 setarg 0x0070 
+0x4edd 018461 store 2 ,mem_keyboard_tx_data + 1 
+0x4ede 018462 branch keyboard_motion_data_check_next 
+:      018463 keyboard_value_light_up:
+0x4edf 018464 setarg 0x006f 
+0x4ee0 018465 store 2 ,mem_keyboard_tx_data + 1 
+0x4ee1 018466 branch keyboard_motion_data_check_next 
+:      018467 keyboard_value_ac_favorites:
+0x4ee2 018468 setarg 0x022a 
+0x4ee3 018469 store 2 ,mem_keyboard_tx_data + 1 
+0x4ee4 018470 branch keyboard_motion_data_check_next 
+:      018471 keyboard_value_ac_forward:
+0x4ee5 018472 setarg 0x0225 
+0x4ee6 018473 store 2 ,mem_keyboard_tx_data + 1 
+0x4ee7 018474 branch keyboard_motion_data_check_next 
+:      018475 keyboard_value_ac_back:
+0x4ee8 018476 setarg 0x0224 
+0x4ee9 018477 store 2 ,mem_keyboard_tx_data + 1 
+0x4eea 018478 branch keyboard_motion_data_check_next 
+:      018479 keyboard_value_ac_stop:
+0x4eeb 018480 setarg 0x0226 
+0x4eec 018481 store 2 ,mem_keyboard_tx_data + 1 
+0x4eed 018482 branch keyboard_motion_data_check_next 
+:      018483 keyboard_value_ac_refresh:
+0x4eee 018484 setarg 0x0227 
+0x4eef 018485 store 2 ,mem_keyboard_tx_data + 1 
+0x4ef0 018486 branch keyboard_motion_data_check_next 
+:      018487 keyboard_value_ac_search:
+0x4ef1 018488 fetch 1 ,mem_kb_computer_system 
+0x4ef2 018489 beq system_os_ios ,keyboard_value_ac_home 
+0x4ef3 018490 beq system_os_mac ,keyboard_value_ac_home 
+0x4ef4 018491 setarg 0x0221 
+0x4ef5 018492 store 2 ,mem_keyboard_tx_data + 1 
+0x4ef6 018493 branch keyboard_motion_data_check_next 
+:      018494 keyboard_value_ac_home:
+0x4ef7 018495 setarg 0x0223 
+0x4ef8 018496 store 2 ,mem_keyboard_tx_data + 1 
+0x4ef9 018497 branch keyboard_motion_data_check_next 
+:      018498 keyboard_value_os_lock:
+0x4efa 018499 setarg 0x0030 
+0x4efb 018500 store 2 ,mem_keyboard_tx_data + 1 
+0x4efc 018501 branch keyboard_motion_data_check_next 
+:      018502 keyboard_value_os_soft_kb:
+0x4efd 018503 fetch 1 ,mem_kb_computer_system 
+0x4efe 018504 beq system_os_andriod ,keyboard_value_os_soft_kb_andriod 
+0x4eff 018505 setarg 0x01ae 
+0x4f00 018506 store 2 ,mem_keyboard_tx_data + 1 
+0x4f01 018507 branch keyboard_motion_data_check_next 
+:      018508 keyboard_value_os_soft_kb_andriod:
+0x4f02 018509 setarg 0x0307 
+0x4f03 018510 store 2 ,mem_keyboard_tx_data + 1 
+0x4f04 018511 branch keyboard_motion_data_check_next 
+:      018513 keyboard_value_consumer_all_key_release:
+:      018514 keyboard_value_consumer_release:
+0x4f05 018515 jam 2 ,mem_keyboard_data_change_flag 
+0x4f06 018516 fetch 1 ,mem_keyboard_all_press_key_count 
+0x4f07 018517 call keyboard_value_release_all_key ,blank 
+0x4f08 018518 jam keyboard_consumer_key_standby ,mem_keyboard_consumer_key_status 
+0x4f09 018519 setarg 0x03 
+0x4f0a 018520 store 3 ,mem_keyboard_tx_data 
+0x4f0b 018521 branch keyboard_motion_data_check_next 
+:      018522 keyboard_value_system_sleep:
+0x4f0c 018523 jam hid_reportid_system_ctrl ,mem_keyboard_tx_data 
+0x4f0d 018524 setarg 0x02 
+0x4f0e 018525 store 1 ,mem_keyboard_tx_data + 1 
+0x4f0f 018526 branch keyboard_motion_data_check_next 
+:      018533 keyboard_device_data_tpye_check:
+0x4f10 018534 bpatch patch0b_1 ,mem_patch0b 
+0x4f11 018535 fetch 1 ,mem_device_flag 
+0x4f12 018536 bne mode_24g_device ,keyboard_device_data_tpye_check_next 
+0x4f13 018537 jam 0 ,mem_24g_repeat_send_flag 
+0x4f14 018538 fetch 2 ,mem_keyboard_tx_data 
+0x4f15 018539 ncall keyboard_set_repeat_send_flag ,blank 
+0x4f16 018540 fetch 6 ,mem_keyboard_tx_data + 3 
+0x4f17 018541 ncall keyboard_set_repeat_send_flag ,blank 
+:      018543 keyboard_device_data_tpye_check_next:
+0x4f18 018544 fetch 1 ,mem_keyboard_tx_data 
+0x4f19 018545 beq hid_reportid_key_standard ,keyboard_standard_data_send 
+0x4f1a 018546 beq hid_reportid_mouse ,keyboard_mouse_data_send 
+0x4f1b 018547 beq hid_reportid_consumer_key ,keyboard_consumer_data_send 
+0x4f1c 018548 beq hid_reportid_system_ctrl ,keyboard_system_control_data_send 
+0x4f1d 018549 rtn 
+:      018551 keyboard_mouse_data_send:
+0x4f1e 018552 jam device_data_tpye_mouse ,mem_keyboard_data_send_flag 
+0x4f1f 018553 arg mem_keyboard_tx_data ,contr 
+0x4f20 018554 arg mem_mouse_key ,contw 
+0x4f21 018555 arg 7 ,loopcnt 
+0x4f22 018556 branch memcpy 
+:      018558 keyboard_standard_data_send:
+0x4f23 018559 jam device_data_tpye_standard_keyboard ,mem_keyboard_data_send_flag 
+0x4f24 018560 call keyboard_clear_key_data 
+0x4f25 018561 fetch 1 ,mem_device_flag 
+0x4f26 018562 beq mode_bt_device1 ,keyboard_standard_data_send_end 
+0x4f27 018563 call keyboard_24g_led_get_status_check 
+0x4f28 018564 fetch 1 ,mem_keyboard_led_status_get 
+0x4f29 018565 store 1 ,mem_keyboard_tx_data + 2 
+:      018566 keyboard_standard_data_send_end:
+0x4f2a 018567 arg mem_keyboard_tx_data ,contr 
+0x4f2b 018568 arg mem_customer_key_press ,contw 
+0x4f2c 018569 arg 9 ,loopcnt 
+0x4f2d 018570 branch memcpy 
+:      018572 keyboard_consumer_data_send:
+0x4f2e 018573 jam device_data_tpye_consumer ,mem_keyboard_data_send_flag 
+0x4f2f 018574 call keyboard_clear_key_data 
+0x4f30 018575 setarg 0x03 
+0x4f31 018576 call mouse_customer_media_key_set 
+0x4f32 018577 arg mem_keyboard_tx_data + 1 ,contr 
+0x4f33 018578 arg mem_customer_key_press + 1 ,contw 
+0x4f34 018579 arg 2 ,loopcnt 
+0x4f35 018580 branch memcpy 
+:      018582 keyboard_system_control_data_send:
+0x4f36 018583 jam device_data_tpye_system_conctol ,mem_keyboard_data_send_flag 
+0x4f37 018584 call keyboard_clear_key_data 
+0x4f38 018585 setarg 0x02 
+0x4f39 018586 store 8 ,mem_customer_key_press 
+0x4f3a 018587 store 8 ,mem_customer_key_release 
+0x4f3b 018588 fetch 1 ,mem_keyboard_tx_data + 1 
+0x4f3c 018589 store 1 ,mem_customer_key_press + 1 
+0x4f3d 018590 rtn 
+:      018593 keyboard_clear_key_data:
+0x4f3e 018594 arg 18 ,loopcnt 
+0x4f3f 018595 arg mem_customer_key_press ,contw 
+0x4f40 018596 branch clear_mem 
+:      018601 keyboard_lpm_before_common:
+0x4f41 018602 call clear_wake 
+0x4f42 018603 call mouse_wheel_check 
+0x4f43 018604 fetcht 1 ,mem_whee_a_data_gpio 
+0x4f44 018605 call gpio_set_wake_by_current_state 
+0x4f45 018606 fetcht 1 ,mem_whee_b_data_gpio 
+0x4f46 018607 call gpio_set_wake_by_current_state 
+0x4f47 018609 fetcht 1 ,mem_config_select_device_button_gpio 
+0x4f48 018610 call gpio_set_wake 
+0x4f49 018612 fetch 2 ,mem_kb_col_ptr 
+0x4f4a 018613 copy pdata ,regb 
+0x4f4b 018614 arg 20 ,loopcnt 
+:      018615 keyboard_key_col_wake_init:
+0x4f4c 018616 ifetcht 1 ,regb 
+0x4f4d 018617 isolate1 7 ,temp 
+0x4f4e 018618 ncall gpio_out_active ,true 
+0x4f4f 018619 increase 1 ,regb 
+0x4f50 018620 loop keyboard_key_col_wake_init 
+0x4f51 018622 fetch 2 ,mem_kb_row_ptr 
+0x4f52 018623 copy pdata ,regb 
+0x4f53 018624 arg 8 ,loopcnt 
+:      018625 keyboard_key_row_wake_init:
+0x4f54 018626 ifetcht 1 ,regb 
+0x4f55 018627 sub temp ,ui_button_gpio_disable ,null 
+0x4f56 018628 ncall gpio_set_wake_by_current_state ,zero 
+0x4f57 018629 increase 1 ,regb 
+0x4f58 018630 loop keyboard_key_row_wake_init 
+0x4f59 018631 rtn 
+:      018633 keyboard_key_row_wake_set:
+0x4f5a 018634 fetch 1 ,mem_same_keyvalue_timerout_flag 
+0x4f5b 018635 branch gpio_set_wake ,blank 
+0x4f5c 018636 branch gpio_set_wake_by_current_state 
+:      018637 keyboard_process_lpm_before:
+0x4f5d 018638 rtnmark1 mark_24g 
+0x4f5e 018639 call keyboard_lpm_before_common 
+0x4f5f 018640 fetch 1 ,mem_lpm_current_mult 
+0x4f60 018641 nrtn blank 
+0x4f61 018642 branch gpio_clr_wake 
+:      018643 keyboard_before_hibernate:
+0x4f62 018644 bpatch patch0b_2 ,mem_patch0b 
+0x4f63 018645 jam 0xff ,mem_sensor_motion_gpio 
+0x4f64 018646 call disable_authrom 
+0x4f65 018647 call keyboard_device_led_all_off 
+0x4f66 018648 call mouse_before_hibernate_wheel_gpio_set 
+0x4f67 018649 call mouse_setgpio_hibernate 
+0x4f68 018650 call mouse_flash_power_down 
+0x4f69 018651 fetcht 1 ,mem_sensor_motion_gpio 
+0x4f6a 018652 branch gpio_clr_wake 
+:      018654 keyboard_power_down:
+0x4f6b 018655 call keyboard_device_led_all_off 
+:      018656 keyboard_app_enter_hibernate:
+0x4f6c 018657 bpatch patch0b_3 ,mem_patch0b 
+0x4f6d 018658 call keyboard_setgpio_hibernate 
+0x4f6e 018659 call ice_break 
+0x4f6f 018660 branch app_enter_hibernate 
+:      018662 keyboard_device_led_all_off:
+0x4f70 018663 bpatch patch0b_4 ,mem_patch0b 
+0x4f71 018664 call keyboard_device_led_off 
+0x4f72 018665 call keyboard_numlock_led_off 
+0x4f73 018666 call keyboard_capslock_led_off 
+0x4f74 018667 branch keyboard_power_led_off 
+:      018674 keyboard_setgpio_hibernate:
+0x4f75 018675 bpatch patch0b_5 ,mem_patch0b 
+0x4f76 018676 call clear_wake 
+0x4f77 018677 call keyboard_device_led_all_off 
+0x4f78 018678 call mouse_set_sdio_high 
+0x4f79 018679 call keyboard_lpm_before_common 
+0x4f7a 018680 call mouse_gpio_pd_idle 
+0x4f7b 018681 fetcht 1 ,mem_mouse_reuse_2ice_gpio 
+0x4f7c 018682 call mouse_gpio_config_input_pu 
+0x4f7d 018683 call mouse_gpio_set_high_impedance 
+0x4f7e 018684 branch mouse_adc_gpio_set_before_hibernate 
+:      018696 keyboard_g24_reconn_dispatch:
+0x4f7f 018697 fetch 2 ,mem_24g_reconn_count 
+0x4f80 018698 and_into 0xe0 ,pdata 
+0x4f81 018699 branch keyboard_g24_reconn_dispatch_next ,blank 
+0x4f82 018700 fetch 2 ,mem_24g_reconn_count 
+0x4f83 018701 increase 1 ,pdata 
+0x4f84 018702 store 2 ,mem_24g_reconn_count 
+0x4f85 018703 rtn 
+:      018704 keyboard_g24_reconn_dispatch_next:
+0x4f86 018705 call g24_reconn_data_prep 
+0x4f87 018706 call g24_transmit_receive_ack 
+0x4f88 018707 nbranch g24_reconn_device_fail ,sync 
+0x4f89 018708 nbranch g24_reconn_device_fail ,user3 
+0x4f8a 018709 call keyboard_g24_ackpayload_parse 
+0x4f8b 018710 branch g24_reconn_dispatch_next + 5 
+:      018714 keyboard_g24_transmit_no_interrupt:
+0x4f8c 018716 call g24_txdata_prep 
+0x4f8d 018717 nbranch keyboard_g24_nodata_transmit ,user 
+:      018718 keyboard_g24_transmit_start:
+0x4f8e 018719 call keyboard_g24_transmit_process 
+0x4f8f 018720 call keyboard_power_ctrl_start 
+0x4f90 018721 branch keyboard_g24_transmit_start_next 
+:      018723 keyboard_g24_nodata_transmit:
+0x4f91 018724 fetch 8 ,mem_keyscan_value_current 
+0x4f92 018725 nbranch keyboard_g24_transmit_start ,blank 
+0x4f93 018726 fetch 8 ,mem_keyscan_value_current + 8 
+0x4f94 018727 nbranch keyboard_g24_transmit_start ,blank 
+0x4f95 018728 fetch 4 ,mem_keyscan_value_current + 16 
+0x4f96 018729 nbranch keyboard_g24_transmit_start ,blank 
+0x4f97 018731 fetch 1 ,mem_24g_transmit_by_interrupt 
+0x4f98 018732 rtneq g24_tx_timer_int_enable 
+0x4f99 018733 call g24_search_receiver 
+:      018734 keyboard_g24_long_sleep:
+0x4f9a 018735 call keyboard_g24_lpm_wait 
+0x4f9b 018736 nrtn user 
+0x4f9c 018737 fetch 1 ,mem_sensor_shutdown_flag 
+0x4f9d 018738 ncall keyboard_setgpio_hibernate ,blank 
+0x4f9e 018739 fetch 4 ,mem_24g_enter_hibernate 
+0x4f9f 018740 branch g24_long_seep2 
+:      018742 keyboard_g24_transmit_process:
+0x4fa0 018743 bpatch patch0b_6 ,mem_patch0b 
+0x4fa1 018744 jam 0 ,mem_24g_retry 
+:      018745 keyboard_g24_transmit_loop:
+0x4fa2 018746 fetchr timeup ,2 ,mem_param_rx_setup 
+0x4fa3 018747 until clkn_rt ,meet 
+0x4fa4 018748 call keyboard_special_key_check 
+0x4fa5 018749 fetch 1 ,mem_keyboard_bt_button_flag 
+0x4fa6 018750 nbranch mouse_soft_reset ,blank 
+0x4fa7 018751 call g24_transmit_receive_ack 
+0x4fa8 018752 fetch 1 ,mem_24g_no_ack 
+0x4fa9 018753 beq no_ack_24g ,g24_transmit_no_ack 
+0x4faa 018754 nbranch keyboard_g24_retransmit ,sync 
+0x4fab 018755 nbranch keyboard_g24_retransmit ,user3 
+0x4fac 018756 call keyboard_g24_ackpayload_parse 
+0x4fad 018757 jam 0 ,mem_sensor_shutdown_flag 
+0x4fae 018758 branch g24_transmit_no_ack 
+:      018761 keyboard_g24_retransmit:
+0x4faf 018762 fetch 1 ,mem_24g_abort_pac 
+0x4fb0 018763 nrtn blank 
+0x4fb1 018764 fetch 2 ,mem_24g_txfail_cnt 
+0x4fb2 018765 increase 1 ,pdata 
+0x4fb3 018766 store 2 ,mem_24g_txfail_cnt 
+0x4fb4 018767 fetch 1 ,mem_24g_txfail_cnt 
+0x4fb5 018768 beq 0xff ,g24_tx_attempt_fail 
+0x4fb6 018769 call keyboard_g24_transmit_hop_process 
+0x4fb7 018770 branch keyboard_g24_transmit_loop 
+:      018773 keyboard_g24_transmit_hop_process:
+0x4fb8 018774 fetcht 1 ,mem_24g_retry 
+0x4fb9 018775 sub temp ,20 ,null 
+0x4fba 018776 branch keyboard_g24_tx_fast_hop ,positive 
+0x4fbb 018777 arg 25 ,loopcnt 
+0x4fbc 018778 call delay_ms_wait 
+0x4fbd 018779 branch g24_hop_ch_disable 
+:      018781 keyboard_g24_tx_fast_hop:
+0x4fbe 018782 increase 1 ,temp 
+0x4fbf 018783 storet 1 ,mem_24g_retry 
+0x4fc0 018784 fetch 4 ,mem_24g_addr 
+0x4fc1 018785 fetcht 4 ,mem_24g_fast_conn_addr 
+0x4fc2 018786 isub temp ,null 
+0x4fc3 018787 branch g24_ch ,zero 
+0x4fc4 018788 fetch 1 ,mem_24g_retry 
+0x4fc5 018789 sub pdata ,3 ,null 
+0x4fc6 018790 rtn positive 
+0x4fc7 018791 branch g24_tx_fast_hop 
+:      018794 keyboard_g24_lpm_wait:
+0x4fc8 018795 enable user 
+0x4fc9 018796 call lpo_calibration 
+0x4fca 018797 fetch 3 ,mem_clks_per_lpo 
+0x4fcb 018798 branch disable_user ,blank 
+0x4fcc 018799 fetch 1 ,mem_keyboard_fn_flag 
+0x4fcd 018800 nbranch disable_user ,blank 
+0x4fce 018801 fetch 1 ,mem_keyboard_control_key_flag 
+0x4fcf 018802 nbranch disable_user ,blank 
+0x4fd0 018803 fetch 1 ,mem_keyboard_commbination_control_key_delay_release_timer 
+0x4fd1 018804 nbranch disable_user ,blank 
+0x4fd2 018805 fetch 1 ,mem_24g_transmit_by_interrupt 
+0x4fd3 018806 beq g24_tx_timer_int_enable ,disable_user 
+0x4fd4 018807 branch g24_lpm_wait + 5 
+:      018809 keyboard_power_ctrl_start:
+0x4fd5 018810 fetch 4 ,mem_24g_addr 
+0x4fd6 018811 fetcht 4 ,mem_24g_fast_conn_addr 
+0x4fd7 018812 isub temp ,null 
+0x4fd8 018813 nbranch power_ctrl_start + 1 ,zero 
+0x4fd9 018814 jam tx_power_f30db ,mem_tx_power 
+0x4fda 018815 rtn 
+:      018816 keyboard_g24_transmit_start_next:
+0x4fdb 018817 fetch 8 ,mem_24g_long_sleep_set 
+0x4fdc 018818 store 8 ,mem_24g_enter_hibernate 
+0x4fdd 018819 fetch 2 ,mem_24g_long_sleep_param_update_timer_init 
+0x4fde 018820 store 2 ,mem_24g_long_sleep_param_update_timer 
+:      018821 keyboard_g24_short_sleep:
+0x4fdf 018822 bpatch patch0b_7 ,mem_patch0b 
+0x4fe0 018823 call g24_lpm_wait 
+0x4fe1 018824 nrtn user 
+0x4fe2 018825 call clear_wake 
+0x4fe3 018826 fetch 3 ,mem_24g_short_sleep_set 
+0x4fe4 018827 branch g24_long_seep2 
+:      018834 keyboard_24g_package_data:
+0x4fe5 018836 rtnmark0 mark_24g 
+0x4fe6 018837 call keyboard_motion 
+0x4fe7 018838 nrtn user 
+0x4fe8 018839 fetch mouse_flag_len ,mem_mouse_flag 
+0x4fe9 018840 bbit0 mouse_enable_keyboard ,mouse_24g_mouse_package_data 
+0x4fea 018841 fetch 1 ,mem_customer_key 
+0x4feb 018842 nbranch keyboard_24g_keyboard_package_data ,blank 
+0x4fec 018843 branch mouse_24g_mouse_package_data 
+:      018845 keyboard_24g_keyboard_package_data:
+0x4fed 018846 jam type_kb ,mem_24g_data_type 
+0x4fee 018847 arg 9 ,rega 
+0x4fef 018848 fetch 1 ,mem_customer_data_trigger 
+0x4ff0 018849 nbranch keyboard_customer_key_press ,blank 
+0x4ff1 018850 arg mem_customer_key_release ,regb 
+0x4ff2 018851 rtn 
+:      018852 keyboard_customer_key_press:
+0x4ff3 018853 arg mem_customer_key_press ,regb 
+0x4ff4 018854 rtn 
+:      018859 keyboard_24g_search_dongle_init:
+0x4ff5 018860 setarg 0 
+0x4ff6 018861 store 3 ,mem_mouse_search_dongle_action 
+0x4ff7 018862 rtn 
+:      018864 keyboard_24g_search_dongle:
+0x4ff8 018865 bpatch patch0c_0 ,mem_patch0c 
+0x4ff9 018866 fetch mouse_flag_len ,mem_mouse_flag 
+0x4ffa 018867 rtnbit0 mouse_enable_24g_search_dongle 
+0x4ffb 018868 fetch 1 ,mem_mouse_long_mult_flag 
+0x4ffc 018869 rtn blank 
+0x4ffd 018870 fetch 1 ,mem_24g_abort_pac 
+0x4ffe 018871 rtn blank 
+0x4fff 018872 fetch 1 ,mem_mouse_search_dongle_interval 
+0x5000 018873 increase 1 ,pdata 
+0x5001 018874 and_into 3 ,pdata 
+0x5002 018875 store 1 ,mem_mouse_search_dongle_interval 
+0x5003 018876 nrtn blank 
+0x5004 018877 jam 0 ,mem_mouse_search_dongle_ch 
+:      018878 keyboard_24g_search_dongle_loop:
+0x5005 018880 fetch 1 ,mem_mouse_search_dongle_ch 
+0x5006 018881 increase 1 ,pdata 
+0x5007 018882 store 1 ,mem_mouse_search_dongle_ch 
+0x5008 018883 sub pdata ,g24_ch_number ,null 
+0x5009 018884 nbranch keyboard_24g_search_dongle_loop_end ,positive 
+0x500a 018885 call g24_reconn_data_prep 
+0x500b 018886 call g24_transmit_receive_ack 
+0x500c 018887 nbranch keyboard_24g_search_dongle_loop_retry ,sync 
+0x500d 018888 nbranch keyboard_24g_search_dongle_loop_retry ,user3 
+0x500e 018889 call keyboard_g24_ackpayload_parse 
+0x500f 018890 call keyboard_24g_search_dongle_success 
+:      018891 keyboard_24g_search_dongle_loop_end:
+0x5010 018892 call g24_txbuf_clear 
+0x5011 018893 fetch 1 ,mem_mouse_search_dongle_count 
+0x5012 018894 increase 1 ,pdata 
+0x5013 018895 store 1 ,mem_mouse_search_dongle_count 
+0x5014 018896 beq g24_ch_poll_count ,keyboard_24g_search_dongle_check 
+0x5015 018897 rtn 
+:      018899 keyboard_24g_search_dongle_loop_retry:
+0x5016 018900 call g24_ch 
+0x5017 018901 branch keyboard_24g_search_dongle_loop 
+:      018903 keyboard_24g_search_dongle_check:
+0x5018 018904 jam 0 ,mem_mouse_search_dongle_count 
+0x5019 018905 fetch 1 ,mem_mouse_search_dongle_action 
+0x501a 018906 rtnbit1 g24_disconn_state 
+0x501b 018907 set1 g24_disconn_state ,pdata 
+0x501c 018908 store 1 ,mem_mouse_search_dongle_action 
+0x501d 018909 fetch 2 ,mem_mouse_24g_search_dongle_time_init 
+0x501e 018910 store 2 ,mem_mouse_no_data_timer 
+0x501f 018911 rtn 
+:      018914 keyboard_24g_search_dongle_success:
+0x5020 018915 fetch 1 ,mem_24g_abort_pac 
+0x5021 018916 branch keyboard_24g_search_dongle_init ,blank 
+0x5022 018917 jam 0 ,mem_mouse_search_dongle_count 
+0x5023 018918 fetch 1 ,mem_mouse_search_dongle_action 
+0x5024 018919 rtnbit0 g24_disconn_state 
+0x5025 018920 set0 g24_disconn_state ,pdata 
+0x5026 018921 store 1 ,mem_mouse_search_dongle_action 
+0x5027 018922 branch mouse_no_data_timer_init 
+:      018925 keyboard_g24_ackpayload_parse:
+0x5028 018926 call g24_ackpayload_parse 
+0x5029 018927 fetch 1 ,mem_24g_rxbuf + 1 
+0x502a 018928 compare 0x08 ,pdata ,0xf8 
+0x502b 018929 nrtn true 
+0x502c 018930 fetch 1 ,mem_24g_rxbuf + 2 
+0x502d 018931 beq 0xff ,keyboard_24g_hibernate_set 
+0x502e 018932 rtn 
+:      018937 keyboard_le_send_att_find_by_type_value_request_ancs:
+0x502f 018938 jam 1 ,mem_le_connect_ios_mac_flag 
+0x5030 018939 arg 23 ,rega 
+0x5031 018940 arg le_l2cap_cid_att ,regb 
+0x5032 018941 call le_fifo_malloc_tx_l2cap 
+0x5033 018942 setarg attop_find_by_type_value_request 
+0x5034 018943 istore 1 ,contw 
+0x5035 018944 setarg 0x0001 
+0x5036 018945 istore 2 ,contw 
+0x5037 018946 setarg 0xffff 
+0x5038 018947 istore 2 ,contw 
+0x5039 018948 setarg 0x2800 
+0x503a 018949 istore 2 ,contw 
+0x503b 018950 arg mem_le_search_service_uuid ,contr 
+0x503c 018951 branch memcpy16 
+:      018952 keyboard_le_att_auto_reco_process:
+0x503d 018953 bpatch patch0c_1 ,mem_patch0c 
+0x503e 018954 fetch 1 ,mem_le_connect_ios_mac_flag 
+0x503f 018955 rtn blank 
+0x5040 018956 copy rega ,contr 
+0x5041 018957 ifetch 3 ,contr 
+0x5042 018958 store 3 ,mem_le_att_opcode 
+0x5043 018959 beq attop_read_response ,keyboard_le_parse_att_manu_resp 
+0x5044 018960 beq attop_read_by_type_response ,keyboard_le_send_att_read_by_type_rsp_mac 
+0x5045 018961 beq attop_find_by_type_value_response ,keyboard_le_parse_att_find_by_type_value_rsp 
+0x5046 018962 beq attop_error_response ,keyboard_le_send_att_find_by_type_value_request_mac 
+0x5047 018963 branch le_parse_att2 
+:      018965 keyboard_le_parse_att_find_by_type_value_rsp:
+0x5048 018966 fetch 1 ,mem_le_connect_ios_mac_flag 
+0x5049 018967 beq 2 ,keyboard_le_parse_att_find_by_type_value_rsp_mac 
+:      018968 keyboard_le_parse_att_find_ios_report:
+0x504a 018969 jam system_os_ios ,mem_kb_computer_system 
+0x504b 018970 branch keyboard_otp_store_computer_system_ble 
+:      018971 keyboard_le_parse_att_not_find_mac_report:
+0x504c 018973 fetch 1 ,mem_le_conn_peer_addr_type 
+0x504d 018974 store 1 ,mem_kb_computer_system 
+0x504e 018975 branch keyboard_otp_store_computer_system_ble 
+:      018976 keyboard_le_parse_att_find_mac_report:
+0x504f 018977 jam system_os_mac ,mem_kb_computer_system 
+:      018978 keyboard_otp_store_computer_system_ble:
+0x5050 018979 jam 0 ,mem_le_connect_ios_mac_flag 
+0x5051 018980 fetcht 2 ,mem_otp_read_retention_offset 
+0x5052 018981 setarg 0x1fd0 
+0x5053 018982 isub temp ,regb 
+0x5054 018983 arg mem_kb_computer_system ,rega 
+0x5055 018985 arg 1 ,loopcnt 
+0x5056 018986 call otp_write 
+0x5057 018987 fetcht 2 ,mem_otp_read_retention_offset 
+0x5058 018988 increase 14 ,temp 
+0x5059 018989 storet 2 ,mem_otp_read_retention_offset 
+0x505a 018990 rtn 
+:      018994 keyboard_le_send_att_find_by_type_value_request_mac:
+0x505b 018995 fetch 1 ,mem_le_connect_ios_mac_flag 
+0x505c 018996 beq 2 ,keyboard_le_parse_att_not_find_mac_report 
+0x505d 018997 jam 2 ,mem_le_connect_ios_mac_flag 
+0x505e 018998 arg 9 ,rega 
+0x505f 018999 arg le_l2cap_cid_att ,regb 
+0x5060 019000 call le_fifo_malloc_tx_l2cap 
+0x5061 019001 setarg attop_find_by_type_value_request 
+0x5062 019002 istore 1 ,contw 
+0x5063 019003 setarg 0x0001 
+0x5064 019004 istore 2 ,contw 
+0x5065 019005 setarg 0xffff 
+0x5066 019006 istore 2 ,contw 
+0x5067 019007 setarg 0x2800 
+0x5068 019008 istore 2 ,contw 
+0x5069 019009 arg 2 ,loopcnt 
+0x506a 019010 arg mem_le_search_mac_uuid ,contr 
+0x506b 019011 branch memcpy 
+:      019013 keyboard_le_parse_att_find_by_type_value_rsp_mac:
+0x506c 019014 arg 7 ,rega 
+0x506d 019015 arg le_l2cap_cid_att ,regb 
+0x506e 019016 call le_fifo_malloc_tx_l2cap 
+0x506f 019017 setarg attop_read_by_type_request 
+0x5070 019018 istore 1 ,contw 
+0x5071 019019 fetcht 2 ,mem_le_payload_ptr 
+0x5072 019020 increase 5 ,temp 
+0x5073 019021 ifetch 4 ,temp 
+0x5074 019022 istore 4 ,contw 
+0x5075 019023 setarg 0x2803 
+0x5076 019024 istore 2 ,contw 
+0x5077 019025 rtn 
+:      019027 keyboard_le_send_att_read_by_type_rsp_mac:
+0x5078 019028 fetch 2 ,mem_le_l2cap_size 
+0x5079 019029 increase -2 ,pdata 
+0x507a 019030 div pdata ,7 
+0x507b 019031 call wait_div_end 
+0x507c 019032 quotient loopcnt 
+0x507d 019033 fetch 2 ,mem_le_payload_ptr 
+0x507e 019034 add pdata ,6 ,contr 
+0x507f 019035 branch keyboard_le_check_att_read_type_manu_loop 
+:      019037 keyboard_le_check_att_read_type_manu_loop:
+0x5080 019038 increase 3 ,contr 
+0x5081 019039 ifetch 2 ,contr 
+0x5082 019040 copy pdata ,regc 
+0x5083 019041 ifetch 2 ,contr 
+0x5084 019042 arg 0x2a29 ,temp 
+0x5085 019043 isub temp ,null 
+0x5086 019044 branch keyboard_le_send_att_read_by_type_rsp_manufactory ,zero 
+0x5087 019045 loop keyboard_le_check_att_read_type_manu_loop 
+0x5088 019046 branch keyboard_le_parse_att_not_find_mac_report 
+:      019047 keyboard_le_send_att_read_by_type_rsp_manufactory:
+0x5089 019048 arg 3 ,rega 
+0x508a 019049 arg le_l2cap_cid_att ,regb 
+0x508b 019050 call le_fifo_malloc_tx_l2cap 
+0x508c 019051 setarg attop_read_request 
+0x508d 019052 istore 1 ,contw 
+0x508e 019053 copy regc ,pdata 
+0x508f 019054 istore 2 ,contw 
+0x5090 019055 rtn 
+:      019057 keyboard_le_parse_att_manu_resp:
+0x5091 019058 fetch 2 ,mem_le_l2cap_size 
+0x5092 019059 arg 9 ,loopcnt 
+0x5093 019060 fetch 2 ,mem_le_payload_ptr 
+0x5094 019061 add pdata ,5 ,rega 
+0x5095 019062 arg mem_le_search_mac_manu_name ,regb 
+0x5096 019063 call string_compare 
+0x5097 019064 branch keyboard_le_parse_att_find_mac_report ,zero 
+0x5098 019065 branch keyboard_le_parse_att_not_find_mac_report 
+:      019073 module_init:
+0x5099 019074 branch module_lpm_init ,wake 
+0x509a 019075 call le_modified_name 
+0x509b 019076 setarg module_process_idle 
+0x509c 019077 store 2 ,mem_cb_idle_process 
+0x509d 019078 setarg module_process_bb_event 
+0x509e 019079 store 2 ,mem_cb_bb_event_process 
+0x509f 019080 setarg module_lpm_lock 
+0x50a0 019081 store 2 ,mem_cb_check_wakelock 
+0x50a1 019082 setarg module_hci_cmd_transmit_le_notify 
+0x50a2 019083 store 2 ,mem_cb_ble_transmit 
+0x50a3 019084 setarg module_le_receive_data 
+0x50a4 019085 store 2 ,mem_cb_att_write 
+0x50a5 019086 setarg module_bb_event_timer 
+0x50a6 019087 store 2 ,mem_cb_event_timer 
+0x50a7 019089 bpatch patch0c_2 ,mem_patch0c 
+0x50a8 019090 call module_lpm_uart_init 
+0x50a9 019091 call module_gpio_init 
+0x50aa 019092 branch module_hci_event_enter_standby_mode 
+:      019094 module_lpm_uart_init:
+0x50ab 019095 fetch 1 ,core_uart_ctrl 
+0x50ac 019096 set0 bit_uart_control_enable ,pdata 
+0x50ad 019097 store 1 ,core_uart_ctrl 
+0x50ae 019098 fetch 8 ,mem_module_uart_rx_buffer 
+0x50af 019099 call uarta_init_dma_mem 
+0x50b0 019100 fetch uart_baud_len ,mem_module_uarta_baud_rate 
+0x50b1 019101 call uarta_init_baud_rate 
+0x50b2 019102 call uart_clock_select_main_freq_crystal 
+0x50b3 019103 jam gpcfg_uart_txd ,core_gpio_conf + hci_uart_tx_gpio_num 
+0x50b4 019104 jam gpcfg_uart_rxd | gpcfg_pullup ,core_gpio_conf + hci_uart_rx_gpio_num 
+0x50b5 019105 jam gpcfg_uart_rts ,core_gpio_conf + hci_uart_rts_gpio_num 
+0x50b6 019106 jam gpcfg_uart_cts ,core_gpio_conf + hci_uart_cts_gpio_num 
+0x50b7 019108 arg fun_uart_control_enable | fun_uart_control_setting_rate_baud ,temp 
+0x50b8 019109 fetch 2 ,mem_module_flag 
+0x50b9 019110 isolate1 module_flag_uart_flow_control ,pdata 
+0x50ba 019111 setflag true ,bit_uart_control_flow_control ,temp 
+0x50bb 019112 storet 1 ,core_uart_ctrl 
+0x50bc 019113 rtn 
+:      019115 module_lpm_init:
+0x50bd 019116 branch module_lpm_uart_init 
+:      019120 module_gpio_init:
+0x50be 019121 fetcht 1 ,mem_module_connect_state_gpio 
+0x50bf 019122 call gpio_config_output 
+0x50c0 019123 call module_set_conn_pin_low 
+0x50c1 019124 fetcht 1 ,mem_module_wake_up_gpio 
+0x50c2 019125 branch gpio_config_input 
+:      019127 module_lpm_lock:
+0x50c3 019128 fetcht 1 ,mem_module_wake_up_gpio 
+0x50c4 019129 call gpio_get_bit 
+0x50c5 019130 nbranch app_put_lpm_wake_lock ,true 
+0x50c6 019131 branch app_get_lpm_wake_lock 
+:      019134 module_process_idle:
+0x50c7 019135 call l2cap_malloc_is_fifo_full 
+0x50c8 019136 nrtn blank 
+0x50c9 019137 branch module_process_check_hci_command_complete 
+:      019140 module_process_bb_event:
+0x50ca 019141 copy regc ,pdata 
+0x50cb 019142 beq bt_evt_le_connected ,module_process_le_conn 
+0x50cc 019143 beq bt_evt_le_disconnected ,module_process_bb_even_le_disconn 
+0x50cd 019144 beq bt_evt_le_pairing_fail ,module_hci_event_le_pairing_fail 
+0x50ce 019145 beq bt_evt_le_pairing_success ,module_hci_event_le_pairing_success 
+0x50cf 019146 beq bt_evt_le_start_enc ,module_hci_event_start_enc 
+0x50d0 019147 beq bt_evt_le_pause_enc ,module_hci_event_pause_enc 
+0x50d1 019148 beq bt_evt_le_tk_generate ,module_hci_event_le_tk 
+0x50d2 019149 beq bt_evt_store_nvram ,module_hci_event_store_device 
+0x50d3 019150 beq bt_evt_le_ltk_lost ,module_process_ble_ltk_lost 
+0x50d4 019151 beq bt_evt_le_update_phy ,module_process_ble_update_phy 
+0x50d5 019152 beq bt_evt_le_get_passkey ,module_hci_event_passkey_entry_mode 
+0x50d6 019153 beq bt_evt_le_gkey_generate ,module_hci_event_gkey_generate 
+0x50d7 019154 rtn 
+:      019158 module_process_bb_even_le_disconn:
+0x50d8 019159 call le_clr_config_more_data 
+0x50d9 019160 jam 0 ,mem_module_hci_notify_len 
+0x50da 019161 call module_disconn_start 
+0x50db 019162 branch module_hci_event_le_disconnect 
+:      019167 module_process_le_conn:
+0x50dc 019169 call module_conn_start 
+0x50dd 019170 fetch 1 ,mem_module_le_lpm_mult 
+0x50de 019171 store 1 ,mem_lpm_mult 
+0x50df 019172 branch module_hci_event_le_connect 
+:      019176 module_disconn_start:
+0x50e0 019177 call module_start_adv_discovery_by_command 
+0x50e1 019178 branch module_set_conn_pin_high 
+:      019181 module_process_ble_ltk_lost:
+0x50e2 019182 call le_send_reject_ind 
+0x50e3 019183 branch le_send_smp_security_request 
+:      019185 module_process_ble_update_phy:
+0x50e4 019186 branch module_hci_event_le_update_phy 
+:      019189 module_set_conn_pin_high:
+0x50e5 019190 fetcht 1 ,mem_module_connect_state_gpio 
+0x50e6 019191 branch gpio_out_active 
+:      019193 module_conn_start:
+0x50e7 019194 call module_stop_adv_discovery 
+0x50e8 019195 branch module_set_conn_pin_low 
+:      019197 module_stop_adv_discovery:
+0x50e9 019198 fetch 1 ,mem_module_state 
+0x50ea 019199 isolate1 moudle_state_ble_bit ,pdata 
+0x50eb 019200 call app_ble_stop_adv ,true 
+0x50ec 019201 rtn 
+:      019202 module_set_conn_pin_low:
+0x50ed 019203 fetcht 1 ,mem_module_connect_state_gpio 
+0x50ee 019204 branch gpio_out_inactive 
+:      019207 module_process_check_hci_command_complete:
+0x50ef 019208 fetch 1 ,core_uart_status 
+0x50f0 019209 rtnbit1 uart_status_rx_fifo_empty 
+0x50f1 019210 call uarta_prepare_rx 
+0x50f2 019211 ifetch 1 ,contru 
+0x50f3 019212 bne 0x01 ,module_hci_in_excp 
+0x50f4 019213 fetch 2 ,core_uart_rxitems 
+0x50f5 019214 sub pdata ,2 ,null 
+0x50f6 019215 rtn positive 
+0x50f7 019216 ifetch 1 ,contru 
+0x50f8 019217 store 1 ,mem_module_uart_opcode 
+0x50f9 019218 ifetcht 1 ,contru 
+0x50fa 019219 copy contru ,rega 
+0x50fb 019220 storet 1 ,mem_module_uart_len 
+0x50fc 019221 add temp ,3 ,temp 
+0x50fd 019222 fetch 2 ,core_uart_rxitems 
+0x50fe 019223 isub temp ,temp 
+0x50ff 019224 nrtn positive 
+0x5100 019225 jam hci_discard_packet ,mem_module_temp_nl_discard_packet 
+0x5101 019226 call module_hci_cmd_control 
+0x5102 019227 fetch 1 ,mem_module_temp_nl_discard_packet 
+0x5103 019228 rtneq hci_not_discard_packet 
+0x5104 019229 branch module_hci_dicard_packet 
+:      019231 module_hci_in_excp:
+0x5105 019232 call delay_10ms 
+0x5106 019233 call module_hci_event_invalid_packet 
+0x5107 019234 branch module_hci_release_except 
+:      019237 module_hci_release_except:
+0x5108 019238 bpatch patch0c_3 ,mem_patch0c 
+0x5109 019239 call uarta_prepare_rx 
+0x510a 019240 fetch 2 ,core_uart_rxitems 
+0x510b 019241 rtn blank 
+0x510c 019242 iadd contru ,contru 
+0x510d 019243 branch module_hci_dicard_bytes 
+:      019245 module_hci_dicard_packet:
+0x510e 019246 call uarta_prepare_rx 
+0x510f 019247 increase 2 ,contu 
+0x5110 019248 ifetch 1 ,contu 
+0x5111 019249 iadd contu ,contu 
+:      019250 module_hci_dicard_bytes:
+0x5112 019251 branch uarta_rxdone 
+:      019254 module_hci_cmd_control:
+0x5113 019255 bpatch patch0c_4 ,mem_patch0c 
+0x5114 019256 fetch 1 ,mem_module_uart_opcode 
+0x5115 019257 beq hci_cmd_set_le_addr_req ,module_hci_cmd_set_le_addr 
+0x5116 019258 beq hci_cmd_set_visibility_req ,module_hci_cmd_set_visibility 
+0x5117 019259 beq hci_cmd_set_le_name_req ,module_hci_cmd_set_le_name 
+0x5118 019260 beq hci_cmd_le_data_req ,module_hci_cmd_receive_le_data 
+0x5119 019261 beq hci_cmd_status_irq ,module_hci_cmd_inquire_status 
+0x511a 019262 beq hci_cmd_set_uartcontrol_req ,module_hci_cmd_set_uart_control_mode 
+0x511b 019263 beq hci_cmd_set_uart_baud_req ,module_hci_cmd_set_uart_baud 
+0x511c 019264 beq hci_cmd_version_req ,module_hci_cmd_version_request 
+0x511d 019265 beq hci_cmd_ble_disconnect ,module_hci_cmd_ble_disconnect 
+0x511e 019266 beq hci_cmd_set_nvram_req ,module_hci_cmd_set_nvram 
+0x511f 019267 beq hci_cmd_confirm_gkey ,module_hci_cmd_confirm_gkey 
+0x5120 019268 beq hci_cmd_auto_adv_scan ,module_hci_cmd_auto_adv 
+0x5121 019269 beq hci_cmd_power_req ,module_hci_cmd_power_request 
+0x5122 019270 beq hci_cmd_power_set ,module_hci_cmd_power_set 
+0x5123 019271 beq hci_cmd_passkey_entry ,module_hci_cmd_passkey_entry 
+0x5124 019272 beq hci_cmd_set_gpio ,module_hci_cmd_set_gpio 
+0x5125 019273 beq hci_cmd_read_gpio ,module_hci_cmd_read_gpio 
+0x5126 019274 beq hci_cmd_le_set_pairing ,module_hci_cmd_le_set_pairing_mode 
+0x5127 019275 beq hci_cmd_le_set_adv_data ,module_hci_cmd_le_set_adv_data 
+0x5128 019276 beq hci_cmd_le_set_scan_data ,module_hci_cmd_le_set_scan_data 
+0x5129 019277 beq hci_cmd_le_send_conn_update_req ,module_hci_cmd_le_send_conn_update_req 
+0x512a 019278 beq hci_cmd_le_set_adv_parm ,module_hci_cmd_set_le_adv_parameter 
+0x512b 019279 beq hci_cmd_le_start_pairing ,module_hci_cmd_le_start_pairing 
+0x512c 019280 beq hci_cmd_set_wake_gpio ,module_hci_cmd_set_wake_gpio 
+0x512d 019281 beq hci_cmd_set_tx_power ,module_hci_cmd_set_tx_power 
+0x512e 019282 beq hci_cmd_le_confirm_gkey ,module_hci_cmd_le_confirm_gkey 
+0x512f 019284 beq hci_cmd_reset_chip_req ,module_hci_cmd_reset_chip 
+0x5130 019285 beq hci_cmd_le_set_fixed_passkey ,module_hci_cmd_le_set_fixed_passkey 
+0x5131 019286 beq hci_cmd_delete_customize_service ,module_hci_cmd_delete_customize_service 
+0x5132 019287 beq hci_cmd_add_service_uuid ,module_hci_cmd_add_service_uuid 
+0x5133 019288 beq hci_cmd_add_characteristic_uuid ,module_hci_cmd_add_characteristic_uuid 
+0x5134 019289 beq hci_cmd_passkey_entry_input ,module_hci_cmd_le_passkey_entry_input 
+0x5135 019290 beq hci_cmd_le_creat_conn ,module_hci_cmd_le_create_conn 
+0x5136 019291 beq hci_cmd_ble_set_phy ,module_hci_cmd_ble_set_phy 
+0x5137 019292 beq hci_cmd_ble_read_current_phy ,module_hci_cmd_ble_read_current_phy 
+0x5138 019293 beq hci_cmd_ble_set_dle ,module_hci_cmd_ble_set_dle 
+0x5139 019294 beq hci_cmd_read_chip_data ,module_hci_cmd_read_chip_data 
+0x513a 019295 beq hci_cmd_write_chip_data ,module_hci_cmd_write_chip_data 
+0x513b 019296 beq hci_cmd_close_lpm ,module_hci_cmd_close_lpm 
+0x513c 019297 branch module_hci_event_receive_invalid_cmd 
+:      019303 module_hci_cmd_set_le_addr:
+0x513d 019304 fetch 1 ,mem_module_uart_len 
+0x513e 019305 bne 6 ,module_hci_event_receive_invalid_cmd 
+0x513f 019306 ifetch 6 ,contru 
+0x5140 019307 store 6 ,mem_le_lap 
+0x5141 019308 branch module_hci_event_receive_valid_cmd 
+:      019312 module_hci_cmd_set_visibility:
+0x5142 019313 fetch 1 ,mem_module_uart_len 
+0x5143 019314 bne 1 ,module_hci_event_receive_invalid_cmd 
+0x5144 019315 ifetcht 1 ,contru 
+0x5145 019316 storet 1 ,mem_module_bluetooth_stauts_by_command 
+0x5146 019317 call module_hci_event_receive_valid_cmd 
+0x5147 019318 fetch 2 ,mem_ui_state_map 
+0x5148 019319 rtnbit1 ui_state_ble_connected 
+:      019321 module_start_adv_discovery_by_command:
+:      019322 moudle_start_adv_by_command:
+0x5149 019323 fetch 1 ,mem_module_state 
+0x514a 019324 isolate1 moudle_state_ble_bit ,pdata 
+0x514b 019325 nrtn true 
+0x514c 019326 fetcht 1 ,mem_module_bluetooth_stauts_by_command 
+0x514d 019327 isolate1 2 ,temp 
+0x514e 019328 branch app_ble_start_adv ,true 
+0x514f 019329 branch app_ble_stop_adv 
+:      019334 module_hci_cmd_set_le_name:
+0x5150 019335 arg 29 ,pdata 
+0x5151 019336 arg mem_le_name_len ,contw 
+0x5152 019337 call module_hci_cmd_receive_store_mem 
+0x5153 019338 branch le_modified_name 
+:      019343 module_hci_cmd_receive_le_data:
+0x5154 019344 fetch 2 ,mem_ui_state_map 
+0x5155 019345 bbit0 ui_state_ble_connected ,module_hci_event_receive_invalid_cmd 
+0x5156 019346 call module_check_ble_encrypt_state 
+0x5157 019347 branch module_hci_event_receive_invalid_cmd ,user 
+0x5158 019348 jam hci_not_discard_packet ,mem_module_temp_nl_discard_packet 
+0x5159 019349 fetch 2 ,mem_module_flag 
+0x515a 019350 bbit1 module_flag_ble_data_finish ,module_hci_cmd_receive_le_data_finish 
+0x515b 019351 fetch 1 ,mem_module_hci_notify_len 
+0x515c 019352 nrtn blank 
+0x515d 019353 jam hci_discard_packet ,mem_module_temp_nl_discard_packet 
+0x515e 019354 ifetch 2 ,contru 
+0x515f 019355 store 2 ,mem_module_hci_notify_handle 
+0x5160 019356 storer contru ,2 ,mem_module_hci_nofiy_addr 
+0x5161 019357 fetch 1 ,mem_module_uart_len 
+0x5162 019358 pincrease -2 
+0x5163 019359 nbranch module_hci_event_receive_invalid_cmd ,positive 
+0x5164 019360 branch module_hci_event_receive_invalid_cmd ,zero 
+0x5165 019361 store 1 ,mem_module_hci_notify_len 
+0x5166 019362 fetcht 2 ,mem_module_hci_notify_handle 
+0x5167 019363 increase -1 ,temp 
+0x5168 019364 call le_att_get_handle_ptr2 
+0x5169 019365 branch module_hci_cmd_transmit_handle_error ,blank 
+0x516a 019366 ifetcht 4 ,contr 
+0x516b 019367 setarg 0x01280302 
+0x516c 019368 isub temp ,null 
+0x516d 019369 nbranch module_hci_cmd_transmit_handle_error ,zero 
+0x516e 019370 ifetch 1 ,contr 
+0x516f 019371 store 1 ,mem_module_hci_notify_type 
+0x5170 019372 and_into 0x30 ,pdata 
+0x5171 019373 branch module_hci_cmd_transmit_handle_error ,blank 
+0x5172 019374 jam hci_not_discard_packet ,mem_module_temp_nl_discard_packet 
+0x5173 019375 call le_set_config_more_data 
+0x5174 019376 call module_hci_cmd_transmit_le_notify 
+0x5175 019377 call module_hci_cmd_transmit_le_notify 
+0x5176 019378 call module_hci_cmd_transmit_le_notify 
+0x5177 019379 fetch 2 ,mem_module_flag 
+0x5178 019380 rtnbit0 module_flag_ble_data_finish 
+:      019381 module_hci_cmd_receive_le_data_finish:
+0x5179 019382 jam hci_discard_packet ,mem_module_temp_nl_discard_packet 
+0x517a 019383 call module_clear_le_tx_data_flag 
+0x517b 019384 branch module_hci_event_receive_valid_cmd 
+:      019386 module_hci_cmd_transmit_handle_error:
+0x517c 019387 jam 0 ,mem_module_hci_notify_len 
+0x517d 019388 jam hci_discard_packet ,mem_module_temp_nl_discard_packet 
+0x517e 019389 call module_clear_le_tx_data_flag 
+0x517f 019390 branch module_hci_event_receive_invalid_cmd 
+:      019392 module_hci_cmd_transmit_le_notify:
+0x5180 019393 fetch 1 ,mem_module_hci_notify_len 
+0x5181 019394 rtn blank 
+0x5182 019395 call le_fifo_check_nearly_full 
+0x5183 019396 nrtn blank 
+0x5184 019397 call module_get_le_remote_mtu 
+0x5185 019398 bpatch patch0c_5 ,mem_patch0c 
+0x5186 019399 fetch 2 ,mem_le_local_mtu 
+0x5187 019400 call not_greater_than 
+0x5188 019401 copy pdata ,temp 
+0x5189 019402 fetch 1 ,mem_le_l2cap_att_states 
+0x518a 019403 rtnbit1 ble_l2cap_recv_confirmation_packet 
+0x518b 019404 add temp ,-3 ,pdata 
+0x518c 019405 arg 251 ,temp 
+0x518d 019406 call not_greater_than 
+0x518e 019407 fetcht 1 ,mem_module_hci_notify_len 
+0x518f 019408 call not_greater_than 
+0x5190 019409 copy pdata ,rega 
+0x5191 019410 copy temp ,pdata 
+0x5192 019411 isub rega ,pdata 
+0x5193 019412 store 1 ,mem_module_hci_notify_len 
+0x5194 019413 call module_hci_cmd_transmit_le_notify_malloc_l2cap 
+0x5195 019414 fetch 2 ,mem_module_hci_nofiy_addr 
+0x5196 019415 copy pdata ,contru 
+0x5197 019416 copy rega ,loopcnt 
+0x5198 019417 call uart_copy_rx_bytes_fast 
+0x5199 019418 copy contru ,pdata 
+0x519a 019419 store 2 ,mem_module_hci_nofiy_addr 
+0x519b 019420 fetch 1 ,mem_module_hci_notify_len 
+0x519c 019421 nrtn blank 
+0x519d 019422 branch module_set_le_tx_data_flag 
+:      019424 module_hci_cmd_transmit_le_notify_malloc_l2cap:
+0x519e 019425 fetcht 2 ,mem_module_hci_notify_handle 
+0x519f 019426 fetch 1 ,mem_module_hci_notify_type 
+0x51a0 019427 bbit1 bit_characteristic_indicate ,le_att_malloc_tx_indication 
+0x51a1 019428 bbit1 bit_characteristic_notify ,le_att_malloc_tx_notify 
+0x51a2 019429 rtn 
+:      019433 module_get_le_remote_mtu:
+0x51a3 019434 arg 0x17 ,temp 
+0x51a4 019435 fetch 2 ,mem_module_flag 
+0x51a5 019436 rtnbit1 module_flag_ble_send_mtu23 
+0x51a6 019437 fetcht 2 ,mem_le_remote_mtu 
+0x51a7 019438 rtn 
+:      019440 module_check_ble_encrypt_state:
+0x51a8 019441 fetch 2 ,mem_module_flag 
+0x51a9 019442 bbit1 module_flag_ble_data_encrypt ,le_check_encrypt_state 
+0x51aa 019443 branch disable_user 
+:      019447 module_hci_cmd_inquire_status:
+0x51ab 019448 branch module_hci_event_status_res 
+:      019454 module_hci_cmd_set_uart_control_mode:
+0x51ac 019455 ifetch 1 ,contru 
+0x51ad 019456 fetcht 1 ,mem_module_flag 
+0x51ae 019457 nsetflag blank ,module_flag_uart_flow_control ,temp 
+0x51af 019458 storet 1 ,mem_module_flag 
+0x51b0 019459 fetcht 1 ,core_uart_ctrl 
+0x51b1 019460 nsetflag blank ,bit_uart_control_flow_control ,temp 
+0x51b2 019461 storet 1 ,core_uart_ctrl 
+0x51b3 019462 branch module_hci_event_receive_valid_cmd 
+:      019466 module_hci_cmd_set_uart_baud:
+0x51b4 019467 fetchr loopcnt ,1 ,mem_module_uart_len 
+0x51b5 019468 call string2dec_from_uart 
+0x51b6 019469 call uart_calc_baud_rate_config 
+0x51b7 019470 store uart_baud_len ,mem_module_uarta_baud_rate 
+0x51b8 019471 call module_hci_event_receive_valid_cmd 
+0x51b9 019472 call wait_uarttx 
+0x51ba 019473 fetch uart_baud_len ,mem_module_uarta_baud_rate 
+0x51bb 019474 branch uarta_init_baud_rate 
+:      019478 module_hci_cmd_version_request:
+0x51bc 019479 arg 2 ,rega 
+0x51bd 019480 arg mem_soft_version_num ,regb 
+0x51be 019481 arg 0 ,temp 
+0x51bf 019482 branch module_hci_event_set_cmd 
+:      019487 module_hci_cmd_ble_disconnect:
+0x51c0 019488 fetch 2 ,mem_ui_state_map 
+0x51c1 019489 bbit0 ui_state_ble_connected ,module_hci_event_receive_invalid_cmd 
+:      019490 module_hci_cmd_ble_disconnect_doing:
+0x51c2 019491 call module_hci_event_receive_valid_cmd 
+0x51c3 019492 branch app_ble_disconnect 
+:      019498 module_hci_cmd_set_nvram:
+0x51c4 019499 fetchr loopcnt ,1 ,mem_module_uart_len 
+0x51c5 019500 fetch 2 ,mem_nv_data_ptr 
+0x51c6 019501 icopy contw 
+0x51c7 019502 call uart_copy_rx_bytes_fast 
+0x51c8 019503 branch module_hci_event_receive_valid_cmd 
+:      019507 module_hci_cmd_confirm_gkey:
+0x51c9 019508 fetch 2 ,mem_ui_state_map 
+0x51ca 019509 bbit1 ui_state_ble_connected ,module_hci_cmd_le_confirm_gkey 
+0x51cb 019510 branch module_hci_event_receive_invalid_cmd 
+:      019514 module_hci_cmd_auto_adv:
+0x51cc 019515 arg 0x40 ,loopcnt 
+0x51cd 019516 arg mem_le_adv_data_len ,contw 
+0x51ce 019517 call clear_mem 
+0x51cf 019518 setarg 0 
+0x51d0 019519 store 1 ,mem_regb 
+0x51d1 019520 copy rega ,contru 
+:      019521 module_hci_cmd_auto_adv_loop:
+0x51d2 019522 copy contru ,pdata 
+0x51d3 019523 store 2 ,mem_regc 
+0x51d4 019524 call module_hci_cmd_auto_adv_adv_analys 
+0x51d5 019526 fetch 1 ,mem_regb 
+0x51d6 019527 fetcht 1 ,mem_temp 
+0x51d7 019528 increase 1 ,temp 
+0x51d8 019529 iadd temp ,pdata 
+0x51d9 019530 store 1 ,mem_regb 
+0x51da 019532 sub pdata ,31 ,null 
+0x51db 019533 nbranch module_hci_cmd_auto_adv_store_scan ,positive 
+:      019534 module_hci_cmd_auto_adv_store_adv:
+0x51dc 019535 fetcht 1 ,mem_le_adv_data_len 
+0x51dd 019536 setarg mem_le_adv_data 
+0x51de 019537 iadd temp ,pdata 
+0x51df 019538 store 2 ,mem_contw 
+0x51e0 019539 fetcht 1 ,mem_temp 
+0x51e1 019540 increase 1 ,temp 
+0x51e2 019541 fetch 1 ,mem_le_adv_data_len 
+0x51e3 019542 iadd temp ,pdata 
+0x51e4 019543 store 1 ,mem_le_adv_data_len 
+0x51e5 019544 branch module_hci_cmd_auto_adv_store_common 
+:      019545 module_hci_cmd_auto_adv_store_scan:
+0x51e6 019546 fetcht 1 ,mem_le_scan_data_len 
+0x51e7 019547 setarg mem_le_scan_data 
+0x51e8 019548 iadd temp ,pdata 
+0x51e9 019549 store 2 ,mem_contw 
+0x51ea 019550 fetcht 1 ,mem_temp 
+0x51eb 019551 increase 1 ,temp 
+0x51ec 019552 fetch 1 ,mem_le_scan_data_len 
+0x51ed 019553 iadd temp ,pdata 
+0x51ee 019554 store 1 ,mem_le_scan_data_len 
+:      019555 module_hci_cmd_auto_adv_store_common:
+0x51ef 019556 fetch 2 ,mem_contw 
+0x51f0 019557 copy pdata ,contw 
+0x51f1 019558 fetch 2 ,mem_regc 
+0x51f2 019559 copy pdata ,contru 
+0x51f3 019561 copy temp ,loopcnt 
+0x51f4 019562 call uart_copy_rx_bytes_fast 
+0x51f5 019564 fetch 1 ,mem_module_uart_len 
+0x51f6 019565 fetcht 1 ,mem_regb 
+0x51f7 019566 isub temp ,null 
+0x51f8 019567 nbranch module_hci_cmd_auto_adv_loop ,zero 
+0x51f9 019568 branch module_hci_event_receive_valid_cmd 
+:      019571 module_hci_cmd_auto_adv_adv_analys:
+0x51fa 019572 ifetch 1 ,contru 
+0x51fb 019573 store 1 ,mem_temp 
+0x51fc 019574 ifetch 1 ,contru 
+0x51fd 019575 store 1 ,mem_rega 
+0x51fe 019576 rtn 
+:      019580 module_hci_cmd_power_request:
+0x51ff 019581 arg 0 ,temp 
+0x5200 019582 arg 2 ,rega 
+0x5201 019583 fetch 2 ,mem_module_vdd_quotient 
+0x5202 019584 store 2 ,mem_event_cmd_response_content 
+0x5203 019585 arg mem_event_cmd_response_content ,regb 
+0x5204 019586 branch module_hci_event_set_cmd 
+:      019590 module_hci_cmd_power_set:
+0x5205 019591 fetch 1 ,mem_module_uart_len 
+0x5206 019592 bne 1 ,module_hci_event_receive_invalid_cmd 
+0x5207 019593 ifetch 1 ,contru 
+0x5208 019594 store 1 ,mem_module_read_vdd_flag 
+0x5209 019595 setarg 0x00 
+0x520a 019596 store 2 ,mem_module_vdd_quotient 
+0x520b 019597 branch module_hci_event_receive_valid_cmd 
+:      019601 module_hci_cmd_passkey_entry:
+0x520c 019602 fetch 1 ,mem_module_uart_len 
+0x520d 019603 bne 4 ,module_hci_event_receive_invalid_cmd 
+0x520e 019604 fetch 2 ,mem_ui_state_map 
+0x520f 019605 bbit1 ui_state_ble_connected ,module_hci_cmd_le_passkey_entry_input 
+0x5210 019606 branch module_hci_event_receive_invalid_cmd 
+:      019611 module_hci_cmd_set_gpio:
+0x5211 019612 fetch 1 ,mem_module_uart_len 
+0x5212 019613 bne 3 ,module_hci_event_receive_invalid_cmd 
+0x5213 019614 ifetch 1 ,contru 
+0x5214 019615 beq hci_cmd_config_gpio_input ,module_set_gpio_input 
+0x5215 019616 beq hci_cmd_config_gpio_output ,module_set_gpio_output 
+0x5216 019617 branch module_hci_event_receive_invalid_cmd 
+:      019619 module_set_gpio_input:
+0x5217 019620 call module_hci_event_receive_valid_cmd 
+0x5218 019621 ifetcht 1 ,contru 
+0x5219 019622 ifetch 1 ,contru 
+0x521a 019623 beq gpio_input_high_impedance ,gpio_set_high_impedance 
+0x521b 019624 nsetflag blank ,7 ,temp 
+0x521c 019625 branch gpio_config_input 
+:      019627 module_set_gpio_output:
+0x521d 019628 call module_hci_event_receive_valid_cmd 
+0x521e 019629 ifetcht 1 ,contru 
+0x521f 019630 ifetch 1 ,contru 
+0x5220 019631 branch gpio_out_active ,blank 
+0x5221 019632 branch gpio_out_inactive 
+:      019636 module_hci_cmd_read_gpio:
+0x5222 019637 fetch 1 ,mem_module_uart_len 
+0x5223 019638 bne 1 ,module_hci_event_receive_invalid_cmd 
+0x5224 019639 ifetcht 1 ,contru 
+0x5225 019640 call gpio_get_bit 
+0x5226 019641 setarg 0x0 
+0x5227 019642 nsetflag true ,0 ,pdata 
+0x5228 019643 arg 1 ,rega 
+0x5229 019644 store 2 ,mem_event_cmd_response_content 
+0x522a 019645 arg mem_event_cmd_response_content ,regb 
+0x522b 019646 arg 0 ,temp 
+0x522c 019647 branch module_hci_event_set_cmd 
+:      019651 module_hci_cmd_le_set_pairing_mode:
+0x522d 019652 ifetch 1 ,contru 
+0x522e 019653 copy pdata ,temp 
+0x522f 019654 beq le_pairing_mode_secure_connect_justwork ,module_le_set_pairing_mode_secure_justwork 
+0x5230 019655 beq le_pairing_mode_secure_connect_numeric ,module_le_set_pairing_mode_secure_numeric 
+0x5231 019656 beq le_pairing_mode_secure_connect_passkey ,module_le_set_pairing_mode_secure_passkey 
+0x5232 019657 beq le_pairing_mode_secure_connect_passkey_res_input ,module_le_set_pairing_mode_secure_passkey_res_input 
+0x5233 019658 store 1 ,mem_le_pairing_mode 
+0x5234 019659 call sc_reset 
+0x5235 019660 call le_secure_connection_disable 
+0x5236 019661 fetch 1 ,mem_le_pairing_mode 
+0x5237 019662 beq le_pairing_mode_none ,module_le_set_no_pairing 
+0x5238 019663 beq le_pairing_mode_lagacy_justwork ,module_le_set_pairing_mode_lagacy_just_work 
+0x5239 019664 beq le_pairing_mode_lagacy_passkey ,module_le_set_pairing_mode_lagacy_passkey 
+0x523a 019665 beq le_pairing_mode_lagacy_passkey_res_input ,module_le_set_pairing_mode_lagacy_passkey_res_input 
+0x523b 019666 branch module_hci_event_receive_invalid_cmd 
+:      019668 module_le_set_pairing_mode_secure_justwork:
+0x523c 019669 storet 1 ,mem_le_pairing_mode 
+0x523d 019670 call le_secure_connection_enable 
+0x523e 019671 jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
+0x523f 019672 branch module_le_set_noinputnooutput 
+:      019673 module_le_set_pairing_mode_secure_numeric:
+0x5240 019674 storet 1 ,mem_le_pairing_mode 
+0x5241 019675 call le_secure_connection_enable 
+0x5242 019676 jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
+0x5243 019677 jam flag_iocap_displayyesno ,mem_le_pres_iocap 
+0x5244 019678 branch module_hci_event_receive_valid_cmd 
+:      019679 module_le_set_pairing_mode_secure_passkey:
+0x5245 019680 storet 1 ,mem_le_pairing_mode 
+0x5246 019681 call le_secure_connection_enable 
+0x5247 019682 jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
+0x5248 019683 branch module_le_set_displayonly 
+:      019684 module_le_set_pairing_mode_secure_passkey_res_input:
+0x5249 019685 storet 1 ,mem_le_pairing_mode 
+0x524a 019686 call le_secure_connection_enable 
+0x524b 019687 jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
+0x524c 019688 branch module_le_set_keboadonly 
+:      019691 module_le_set_no_pairing:
+0x524d 019692 jam flag_le_no_bonding_no_mitm ,mem_le_pres_auth 
+:      019693 module_le_set_noinputnooutput:
+0x524e 019694 jam flag_iocap_noinputnooutput ,mem_le_pres_iocap 
+0x524f 019695 branch module_hci_event_receive_valid_cmd 
+:      019696 module_le_set_pairing_mode_lagacy_just_work:
+0x5250 019697 jam flag_le_bonding_no_mitm ,mem_le_pres_auth 
+0x5251 019698 branch module_le_set_noinputnooutput 
+:      019699 module_le_set_pairing_mode_lagacy_passkey:
+0x5252 019700 jam flag_le_bonding_mitm ,mem_le_pres_auth 
+0x5253 019701 branch module_le_set_displayonly 
+:      019702 module_le_set_pairing_mode_lagacy_passkey_res_input:
+0x5254 019703 jam flag_le_bonding_mitm ,mem_le_pres_auth 
+0x5255 019704 branch module_le_set_keboadonly 
+:      019705 module_le_set_keboadonly:
+0x5256 019706 jam flag_iocap_keyboardonly ,mem_le_pres_iocap 
+0x5257 019707 branch module_hci_event_receive_valid_cmd 
+:      019708 module_le_set_displayonly:
+0x5258 019709 jam flag_iocap_displayonly ,mem_le_pres_iocap 
+0x5259 019710 branch module_hci_event_receive_valid_cmd 
+:      019714 module_hci_cmd_le_set_adv_data:
+0x525a 019715 arg 31 ,pdata 
+0x525b 019716 arg mem_le_adv_data_len ,contw 
+0x525c 019717 branch module_hci_cmd_receive_store_mem 
+:      019721 module_hci_cmd_le_set_scan_data:
+0x525d 019722 arg 31 ,pdata 
+0x525e 019723 arg mem_le_scan_data_len ,contw 
+0x525f 019724 branch module_hci_cmd_receive_store_mem 
+:      019726 module_hci_cmd_receive_store_mem:
+0x5260 019727 fetchr loopcnt ,1 ,mem_module_uart_len 
+0x5261 019728 isub loopcnt ,null 
+0x5262 019729 nbranch module_hci_event_receive_invalid_cmd ,positive 
+0x5263 019730 istorer loopcnt ,1 ,contw 
+0x5264 019731 call uart_copy_rx_bytes_fast 
+0x5265 019732 branch module_hci_event_receive_valid_cmd 
+:      019736 module_hci_cmd_le_send_conn_update_req:
+0x5266 019737 fetch 2 ,mem_ui_state_map 
+0x5267 019738 bbit0 ui_state_ble_connected ,module_hci_event_receive_invalid_cmd 
+0x5268 019739 fetch 1 ,mem_module_uart_len 
+0x5269 019740 bne 0x08 ,module_hci_event_receive_invalid_cmd 
+0x526a 019741 ifetch 8 ,contru 
+0x526b 019742 store 8 ,mem_le_interval_min 
+0x526c 019743 jam bt_cmd_le_update_conn ,mem_fifo_temp 
+0x526d 019744 call ui_ipc_send_cmd 
+0x526e 019745 branch module_hci_event_receive_valid_cmd 
+:      019749 module_hci_cmd_set_le_adv_parameter:
+0x526f 019750 ifetch 2 ,contru 
+0x5270 019751 store 2 ,mem_le_adv_interval 
+0x5271 019752 storet 1 ,mem_lpm_overhead 
+0x5272 019753 iadd temp ,pdata 
+0x5273 019754 store 2 ,mem_lpm_interval 
+0x5274 019755 branch module_hci_event_receive_valid_cmd 
+:      019759 module_hci_cmd_le_start_pairing:
+0x5275 019760 fetch 1 ,mem_le_pairing_mode 
+0x5276 019761 branch module_hci_event_receive_invalid_cmd ,blank 
+0x5277 019762 fetch 1 ,mem_le_pairing_state 
+0x5278 019763 bne flag_le_pairing_null ,module_hci_event_receive_invalid_cmd 
+0x5279 019764 fetch 1 ,mem_le_enc_state 
+0x527a 019765 bne flag_le_enc_null ,module_hci_event_receive_invalid_cmd 
+0x527b 019766 call check_51cmd_le_smp_sec_req 
+0x527c 019767 branch module_hci_event_receive_valid_cmd 
+:      019771 module_hci_cmd_set_wake_gpio:
+0x527d 019772 fetch 1 ,mem_module_uart_len 
+0x527e 019773 bne 5 ,module_hci_event_receive_invalid_cmd 
+0x527f 019774 ifetch 1 ,contru 
+0x5280 019775 store 1 ,mem_module_mcu_wake_pin 
+0x5281 019776 ifetch 4 ,contru 
+0x5282 019777 store 4 ,mem_module_mcu_wake_delay_us 
+0x5283 019778 fetcht 1 ,mem_module_mcu_wake_pin 
+0x5284 019779 call gpio_config_output 
+0x5285 019780 call module_set_mcu_wake_pin_low 
+0x5286 019781 branch module_hci_event_receive_valid_cmd 
+:      019785 module_hci_cmd_set_tx_power:
+0x5287 019786 fetch 1 ,mem_module_uart_len 
+0x5288 019787 bne 0x01 ,module_hci_event_receive_invalid_cmd 
+0x5289 019788 ifetch 1 ,contru 
+0x528a 019789 store 1 ,mem_tx_power 
+0x528b 019790 branch module_hci_event_receive_valid_cmd 
+:      019794 module_hci_cmd_le_confirm_gkey:
+0x528c 019795 ifetch 1 ,contru 
+0x528d 019796 beq 0x01 ,module_hci_cmd_le_confirm_gkey_fail 
+0x528e 019797 fetch 1 ,mem_le_secure_connect_state 
+0x528f 019798 beq le_sc_stat_send_public_key ,module_hci_cmd_le_confirm_gkey_ok 
+0x5290 019799 beq le_sc_stat_receive_dhkey ,module_hci_cmd_le_confirm_gkey_ok 
+0x5291 019800 beq le_sc_stat_wait_confirm_gkey ,module_hci_cmd_le_confirm_gkey_ok 
+0x5292 019801 branch module_hci_event_receive_invalid_cmd 
+:      019802 module_hci_cmd_le_confirm_gkey_ok:
+0x5293 019803 jam flag_le_sc_confrim_gkey_ok ,mem_le_sc_confirm_gkey_flag 
+0x5294 019804 branch module_hci_event_receive_valid_cmd 
+:      019806 module_hci_cmd_le_confirm_gkey_fail:
+0x5295 019807 call le_send_pairing_confirm_value_failed 
+0x5296 019808 branch module_hci_event_receive_valid_cmd 
+:      019814 module_hci_cmd_reset_chip:
+0x5297 019815 call module_hci_event_receive_valid_cmd 
+0x5298 019816 call wait_uarttx 
+0x5299 019817 jam 0x01 ,core_reset 
+0x529a 019818 branch assert 
+:      019822 module_hci_cmd_le_set_fixed_passkey:
+0x529b 019823 fetch 1 ,mem_module_uart_len 
+0x529c 019824 beq 0 ,module_hci_event_receive_invalid_cmd 
+0x529d 019825 ifetch 1 ,contru 
+0x529e 019826 branch module_hci_cmd_le_set_random_passkey ,blank 
+0x529f 019827 fetch 1 ,mem_module_uart_len 
+0x52a0 019828 bne 5 ,module_hci_event_receive_invalid_cmd 
+0x52a1 019829 ifetch 4 ,contru 
+0x52a2 019830 arg 1000000 ,temp 
+0x52a3 019831 isub temp ,null 
+0x52a4 019832 branch module_hci_event_receive_invalid_cmd ,positive 
+0x52a5 019833 store 4 ,mem_le_tk 
+0x52a6 019834 call le_set_config_fixed_tk 
+0x52a7 019835 branch module_hci_event_receive_valid_cmd 
+:      019837 module_hci_cmd_le_set_random_passkey:
+0x52a8 019838 call le_clr_config_fixed_tk 
+0x52a9 019839 branch module_hci_event_receive_valid_cmd 
+:      019843 module_hci_cmd_delete_customize_service:
+0x52aa 019844 arg 0x0001 ,temp 
+0x52ab 019845 call le_att_get_handle_ptr2 
+0x52ac 019846 add contr ,-2 ,contw 
+0x52ad 019847 setarg 0x0000 
+0x52ae 019848 istore 2 ,contw 
+0x52af 019849 branch module_hci_event_receive_valid_cmd 
+:      019853 module_hci_cmd_add_service_uuid:
+0x52b0 019854 call module_hci_cmd_add_service_uuid_set_uuid 
+0x52b1 019855 call uart_copy_rx_bytes_len_data 
+0x52b2 019856 setarg 0x0000 
+0x52b3 019857 istore 2 ,contw 
+0x52b4 019858 branch module_hci_event_uuid_handle 
+:      019863 module_hci_cmd_add_characteristic_uuid:
+0x52b5 019864 ifetch 1 ,contru 
+0x52b6 019865 call module_hci_cmd_add_characteristic_uuid_set_handle 
+0x52b7 019866 call module_hci_cmd_add_characteristic_uuid_set_uuid 
+0x52b8 019867 branch module_hci_event_uuid_handle 
+:      019870 module_hci_cmd_add_service_uuid_set_uuid:
+0x52b9 019871 call le_att_creat_new_handle 
+0x52ba 019872 setarg 0x280002 
+0x52bb 019873 istore 3 ,contw 
+0x52bc 019874 rtn 
+:      019877 module_hci_cmd_add_characteristic_uuid_set_handle:
+0x52bd 019878 store 1 ,mem_pdatatemp 
+0x52be 019879 call le_att_creat_new_handle 
+0x52bf 019880 setarg 0x01280302 
+0x52c0 019881 istore 4 ,contw 
+0x52c1 019882 fetch 1 ,mem_pdatatemp 
+0x52c2 019883 istore 3 ,contw 
+0x52c3 019884 rtn 
+:      019887 module_hci_cmd_add_characteristic_uuid_set_uuid:
+0x52c4 019888 call le_att_get_last_handle 
+0x52c5 019889 ifetch 1 ,contru 
+0x52c6 019890 and pdata ,0x1f ,loopcnt 
+0x52c7 019891 copy pdata ,rega 
+0x52c8 019892 isolate1 bit_of_write_authenticated ,rega 
+0x52c9 019893 setflag true ,bit_of_att_handle_write_authenticated ,temp 
+0x52ca 019894 isolate1 bit_of_read_authenticated ,rega 
+0x52cb 019895 setflag true ,bit_of_att_handle_read_authenticated ,temp 
+0x52cc 019896 istoret 2 ,contw 
+0x52cd 019897 copy loopcnt ,pdata 
+0x52ce 019898 istore 1 ,contw 
+0x52cf 019899 call uart_copy_rx_bytes 
+0x52d0 019900 call uart_copy_rx_bytes_len_data 
+0x52d1 019901 setarg 0 
+0x52d2 019902 istore 2 ,contw 
+0x52d3 019903 and temp ,0xff ,temp 
+0x52d4 019904 increase -1 ,temp 
+0x52d5 019905 call le_att_get_handle_ptr2 
+0x52d6 019906 add contr ,4 ,contr 
+0x52d7 019907 ifetch 1 ,contr 
+0x52d8 019908 bbit1 bit_characteristic_notify ,module_hci_cmd_add_characteristic_uuid_set_ccc_uuid 
+0x52d9 019909 bbit1 bit_characteristic_indicate ,module_hci_cmd_add_characteristic_uuid_set_ccc_uuid 
+0x52da 019910 increase 1 ,temp 
+0x52db 019911 rtn 
+:      019914 module_hci_cmd_add_characteristic_uuid_set_ccc_uuid:
+0x52dc 019915 call le_att_get_last_handle 
+0x52dd 019916 isolate1 bit_of_notify_authenticated ,rega 
+0x52de 019917 setflag true ,bit_of_att_handle_write_authenticated ,temp 
+0x52df 019918 istoret 2 ,contw 
+0x52e0 019919 setarg 0x02290202 
+0x52e1 019920 istore 8 ,contw 
+0x52e2 019921 increase -1 ,temp 
+0x52e3 019922 rtn 
+:      019925 le_att_creat_new_handle:
+0x52e4 019926 call le_att_get_last_handle 
+0x52e5 019927 istoret 2 ,contw 
+0x52e6 019928 rtn 
+:      019931 uart_copy_rx_bytes_len_data:
+0x52e7 019932 ifetch 1 ,contru 
+0x52e8 019933 copy pdata ,loopcnt 
+0x52e9 019934 istore 1 ,contw 
+0x52ea 019935 branch uart_copy_rx_bytes 
+:      019939 module_hci_cmd_le_passkey_entry_input:
+0x52eb 019940 fetch 1 ,mem_le_pairing_state 
+0x52ec 019941 bne flag_le_pairing_receive_pairing_confirm ,module_hci_event_receive_invalid_cmd 
+0x52ed 019942 fetch 1 ,mem_le_pairing_mode 
+0x52ee 019943 beq le_pairing_mode_lagacy_passkey_res_input ,module_hci_cmd_passkey_entry_res_input 
+0x52ef 019944 beq le_pairing_mode_secure_connect_passkey_res_input ,module_hci_cmd_passkey_entry_sc_res_input 
+0x52f0 019945 branch module_hci_event_receive_invalid_cmd 
+:      019947 module_hci_cmd_passkey_entry_sc_res_input:
+0x52f1 019948 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+0x52f2 019949 jam le_sc_stat_passkey_wait_confirm ,mem_le_secure_connect_state 
+0x52f3 019950 branch module_hci_cmd_receive_ble_passkey 
+:      019952 module_hci_cmd_receive_ble_passkey:
+0x52f4 019953 ifetch 4 ,contru 
+0x52f5 019954 store 4 ,mem_le_tk 
+0x52f6 019955 branch module_hci_event_receive_valid_cmd 
+:      019957 module_hci_cmd_passkey_entry_res_input:
+0x52f7 019958 call module_hci_cmd_receive_ble_passkey 
+0x52f8 019959 branch le_send_smp_pairing_confirm 
+:      019963 module_hci_cmd_le_create_conn:
+0x52f9 019964 ifetch 6 ,contru 
+0x52fa 019965 store 6 ,mem_le_conn_peer_addr 
+0x52fb 019966 jam hci_cmd_le_create_conn ,mem_cmd_le_create_conn 
+0x52fc 019967 jam on ,mem_le_conn_flag 
+0x52fd 019968 jam on ,mem_le_scan_enable 
+0x52fe 019969 branch module_hci_event_receive_valid_cmd 
+:      019974 module_hci_cmd_ble_set_phy:
+0x52ff 019975 fetch 1 ,mem_module_uart_len 
+0x5300 019976 bne 2 ,module_hci_event_receive_invalid_cmd 
+0x5301 019977 ifetcht 2 ,contru 
+0x5302 019978 call le_set_phys 
+0x5303 019979 branch module_hci_event_receive_valid_cmd 
+:      019983 module_hci_cmd_ble_read_current_phy:
+0x5304 019984 arg 0 ,temp 
+0x5305 019985 arg 2 ,rega 
+0x5306 019986 arg mem_context + coffset_le_rx_phy ,regb 
+0x5307 019987 branch module_hci_event_set_cmd 
+:      019991 module_hci_cmd_ble_set_dle:
+0x5308 019992 fetch 1 ,mem_module_uart_len 
+0x5309 019993 bne 8 ,module_hci_event_receive_invalid_cmd 
+0x530a 019994 ifetch 8 ,contru 
+0x530b 019995 call le_set_dle 
+0x530c 019996 branch module_hci_event_receive_valid_cmd 
+:      020000 module_hci_cmd_read_chip_data:
+0x530d 020001 ifetchr rega ,1 ,contru 
+0x530e 020002 ifetchr regb ,2 ,contru 
+0x530f 020003 arg 0 ,temp 
+0x5310 020004 branch module_hci_event_set_cmd 
+:      020008 module_hci_cmd_write_chip_data:
+0x5311 020009 fetchr loopcnt ,1 ,mem_module_uart_len 
+0x5312 020010 increase -2 ,loopcnt 
+0x5313 020011 ifetch 2 ,contru 
+0x5314 020012 copy pdata ,contw 
+0x5315 020013 call uart_copy_rx_bytes_fast 
+0x5316 020014 branch module_hci_event_receive_valid_cmd 
+:      020019 module_hci_cmd_close_lpm:
+0x5317 020020 jam 0 ,mem_lpm_mode 
+0x5318 020021 branch module_hci_event_receive_valid_cmd 
+:      020026 module_hci_event_receive_invalid_cmd:
+0x5319 020027 arg 1 ,temp 
+0x531a 020028 arg 0 ,rega 
+0x531b 020029 branch module_hci_event_set_cmd 
+:      020032 module_hci_event_receive_valid_cmd:
+0x531c 020033 arg 0 ,temp 
+0x531d 020034 arg 0 ,rega 
+0x531e 020035 branch module_hci_event_set_cmd 
+:      020039 module_hci_event_le_connect:
+0x531f 020040 jam hci_event_le_conn_rep ,mem_module_uart_opcode 
+0x5320 020041 branch module_hci_event_enter_standby_mode_len0 
+:      020046 module_hci_event_le_disconnect:
+0x5321 020047 jam hci_event_le_dis_rep ,mem_module_uart_opcode 
+0x5322 020048 branch module_hci_event_enter_standby_mode_len0 
+:      020056 module_hci_event_set_cmd:
+0x5323 020057 fetch 1 ,mem_module_uart_opcode 
+0x5324 020058 copy pdata ,regc 
+0x5325 020059 jam hci_event_cmd_res ,mem_module_uart_opcode 
+0x5326 020060 setarg 2 
+0x5327 020061 iadd rega ,pdata 
+0x5328 020062 call module_hci_prepare_tx 
+0x5329 020063 copy regc ,pdata 
+0x532a 020064 istore 1 ,contwu 
+0x532b 020065 istoret 1 ,contwu 
+0x532c 020066 copy rega ,loopcnt 
+0x532d 020067 copy regb ,contr 
+0x532e 020068 call uart_copy_tx_bytes 
+0x532f 020069 branch module_hci_transmit_tx 
+:      020076 module_hci_event_receive_le_data:
+0x5330 020077 jam hci_event_le_data_rep ,mem_module_uart_opcode 
+0x5331 020078 add loopcnt ,2 ,pdata 
+0x5332 020079 call module_hci_prepare_tx 
+0x5333 020080 fetch 2 ,mem_module_le_rx_data_handle 
+0x5334 020081 istore 2 ,contwu 
+0x5335 020082 fetch 2 ,mem_module_le_rx_data_address 
+0x5336 020083 icopy contr 
+0x5337 020084 call uart_copy_tx_bytes_fast 
+0x5338 020085 copy contr ,pdata 
+0x5339 020086 store 2 ,mem_module_le_rx_data_address 
+0x533a 020087 branch module_hci_transmit_tx 
+:      020091 module_hci_event_enter_standby_mode:
+0x533b 020092 jam hci_event_standby_rep ,mem_module_uart_opcode 
+:      020093 module_hci_event_enter_standby_mode_len0:
+0x533c 020094 setarg 0 
+0x533d 020095 call module_hci_prepare_tx 
+0x533e 020096 branch module_hci_transmit_tx 
+:      020100 module_hci_event_status_res:
+0x533f 020101 jam hci_event_status_res ,mem_module_uart_opcode 
+0x5340 020102 setarg 1 
+0x5341 020103 call module_hci_prepare_tx 
+0x5342 020105 call module_hci_read_bt_status 
+0x5343 020107 fetch 2 ,mem_ui_state_map 
+0x5344 020108 arg ui_state_ble_connected ,queue 
+0x5345 020109 qisolate1 pdata 
+0x5346 020110 setflag true ,5 ,temp 
+0x5347 020114 istoret 1 ,contwu 
+0x5348 020115 branch module_hci_transmit_tx 
+:      020119 module_hci_read_bt_status:
+0x5349 020120 arg 0 ,temp 
+0x534a 020121 fetch 1 ,mem_le_adv_enable 
+0x534b 020122 arg 0 ,queue 
+0x534c 020123 qisolate1 pdata 
+0x534d 020124 setflag true ,2 ,temp 
+0x534e 020125 rtn 
+:      020129 module_hci_event_store_device:
+0x534f 020130 jam hci_event_nvram_rep ,mem_module_uart_opcode 
+0x5350 020131 fetch 1 ,mem_nv_data_number 
+0x5351 020132 mul32 pdata ,34 ,pdata 
+0x5352 020133 icopy loopcnt 
+0x5353 020134 call module_hci_prepare_tx 
+0x5354 020135 fetch 2 ,mem_nv_data_ptr 
+0x5355 020136 icopy contr 
+0x5356 020137 call uart_copy_tx_bytes_fast 
+0x5357 020138 branch module_hci_transmit_tx 
+:      020141 module_hci_event_gkey_generate:
+0x5358 020142 jam hci_event_gkey ,mem_module_uart_opcode 
+0x5359 020143 setarg 4 
+0x535a 020144 call module_hci_prepare_tx 
+0x535b 020145 fetch 4 ,mem_gkey 
+0x535c 020146 istore 4 ,contwu 
+0x535d 020147 branch module_hci_transmit_tx 
+:      020150 module_hci_event_invalid_packet:
+0x535e 020151 jam hci_event_invalid_packet ,mem_module_uart_opcode 
+0x535f 020152 fetch 2 ,core_uart_rxitems 
+0x5360 020153 arg 0x40 ,temp 
+0x5361 020154 call not_greater_than 
+0x5362 020155 copy pdata ,rega 
+0x5363 020156 copy pdata ,loopcnt 
+0x5364 020157 call uarta_prepare_rx 
+0x5365 020158 arg mem_module_rx_error_data_buffer ,contw 
+0x5366 020159 call uart_copy_rx_bytes_fast 
+0x5367 020160 copy rega ,pdata 
+0x5368 020161 copy rega ,loopcnt 
+0x5369 020162 call module_hci_prepare_tx 
+0x536a 020163 arg mem_module_rx_error_data_buffer ,contr 
+0x536b 020164 call uart_copy_tx_bytes_fast 
+0x536c 020165 branch module_hci_transmit_tx 
+:      020169 module_hci_event_passkey_entry_mode:
+0x536d 020170 jam hci_event_get_passkey ,mem_module_uart_opcode 
+0x536e 020171 branch module_hci_event_enter_standby_mode_len0 
+:      020175 module_hci_event_le_tk:
+0x536f 020176 jam hci_event_le_tk ,mem_module_uart_opcode 
+0x5370 020177 setarg 4 
+0x5371 020178 call module_hci_prepare_tx 
+0x5372 020179 fetch 4 ,mem_le_tk 
+0x5373 020180 istore 4 ,contwu 
+0x5374 020181 branch module_hci_transmit_tx 
+:      020185 module_hci_event_le_pairing_fail:
+0x5375 020186 arg flag_ble_pairing_fail ,rega 
+0x5376 020187 branch module_hci_event_pairing_completed 
+:      020189 module_hci_event_le_pairing_success:
+0x5377 020190 arg flag_ble_pairing_success ,rega 
+0x5378 020191 branch module_hci_event_pairing_completed 
+:      020194 module_hci_event_pairing_completed:
+0x5379 020195 jam hci_event_le_pairing_state ,mem_module_uart_opcode 
+0x537a 020196 setarg 2 
+0x537b 020197 call module_hci_prepare_tx 
+0x537c 020198 copy rega ,pdata 
+0x537d 020199 istore 2 ,contwu 
+0x537e 020200 branch module_hci_transmit_tx 
+:      020204 module_hci_event_pause_enc:
+0x537f 020205 arg flag_event_pause_enc ,regc 
+0x5380 020206 branch module_hci_event_enc 
+:      020208 module_hci_event_start_enc:
+0x5381 020209 arg flag_event_start_enc ,regc 
+:      020211 module_hci_event_enc:
+0x5382 020212 jam hci_event_le_encryption_state ,mem_module_uart_opcode 
+0x5383 020213 setarg 1 
+0x5384 020214 call module_hci_prepare_tx 
+0x5385 020215 copy regc ,pdata 
+0x5386 020216 istore 1 ,contwu 
+0x5387 020217 branch module_hci_transmit_tx 
+:      020223 module_hci_event_uuid_handle:
+0x5388 020224 storet 2 ,mem_temp 
+0x5389 020225 jam hci_event_uuid_handle ,mem_module_uart_opcode 
+0x538a 020226 setarg 2 
+0x538b 020227 call module_hci_prepare_tx 
+0x538c 020228 fetcht 2 ,mem_temp 
+0x538d 020229 istoret 2 ,contwu 
+0x538e 020230 branch module_hci_transmit_tx 
+:      020234 module_hci_event_le_input_passkey:
+0x538f 020235 jam hci_event_le_input_gkey ,mem_module_uart_opcode 
+0x5390 020236 branch module_hci_event_enter_standby_mode_len0 
+:      020240 module_hci_event_le_update_phy:
+0x5391 020241 jam hci_ble_update_phy_event ,mem_module_uart_opcode 
+0x5392 020242 setarg 2 
+0x5393 020243 call module_hci_prepare_tx 
+0x5394 020244 fetch 2 ,mem_context + coffset_le_rx_phy 
+0x5395 020245 istore 2 ,contwu 
+0x5396 020246 branch module_hci_transmit_tx 
+:      020258 module_hci_prepare_tx:
+0x5397 020259 jam 0x02 ,mem_module_uart_cmd 
+0x5398 020260 store 1 ,mem_module_uart_len 
+0x5399 020261 storet 8 ,mem_temp 
+0x539a 020262 bpatch patch0c_6 ,mem_patch0c 
+0x539b 020263 call module_set_mcu_wake_pin_high_delay 
+0x539c 020264 fetcht 8 ,mem_temp 
+0x539d 020265 call uarta_prepare_tx_register_push 
+0x539e 020266 fetch 3 ,mem_module_uart_cmd 
+0x539f 020267 istore 3 ,contwu 
+0x53a0 020268 rtn 
+:      020270 module_hci_transmit_tx:
+0x53a1 020271 bpatch patch0c_7 ,mem_patch0c 
+0x53a2 020272 branch uarta_send_register_pop 
+:      020274 module_set_mcu_wake_pin_high_delay:
+0x53a3 020275 call module_check_mcu_wake_pin_high 
+0x53a4 020276 rtn true 
+:      020277 module_set_mcu_wake_pin_h_delay:
+0x53a5 020278 call module_set_mcu_wake_pin_high 
+0x53a6 020279 fetch 4 ,mem_module_mcu_wake_delay_us 
+0x53a7 020280 rshift2 pdata ,pdata 
+0x53a8 020281 rtn blank 
+0x53a9 020282 branch delay 
+:      020284 module_set_mcu_wake_pin_high:
+0x53aa 020285 fetcht 1 ,mem_module_mcu_wake_pin 
+0x53ab 020286 branch gpio_out_active 
+:      020288 module_check_mcu_wake_pin_high:
+0x53ac 020289 fetcht 1 ,mem_module_mcu_wake_pin 
+0x53ad 020290 branch gpio_check_active 
+:      020292 module_set_mcu_wake_pin_low:
+0x53ae 020293 fetcht 1 ,mem_module_mcu_wake_pin 
+0x53af 020294 branch gpio_out_inactive 
+:      020305 module_le_receive_data:
+0x53b0 020306 storer rega ,2 ,mem_module_le_rx_data_address 
+0x53b1 020307 storer regb ,2 ,mem_module_le_rx_data_len 
+0x53b2 020308 fetch 2 ,mem_le_att_handle 
+0x53b3 020309 store 2 ,mem_module_le_rx_data_handle 
+0x53b4 020310 call module_check_ble_encrypt_state 
+0x53b5 020311 rtn user 
+:      020313 module_le_receive_data_ok:
+0x53b6 020314 fetcht 2 ,mem_module_le_rx_data_len 
+0x53b7 020315 fetch 1 ,mem_module_ble_data_uart_max_length 
+0x53b8 020316 call not_greater_than 
+0x53b9 020317 copy pdata ,loopcnt 
+0x53ba 020318 copy temp ,pdata 
+0x53bb 020319 isub loopcnt ,pdata 
+0x53bc 020320 store 2 ,mem_module_le_rx_data_len 
+0x53bd 020321 call module_hci_event_receive_le_data 
+0x53be 020322 fetch 2 ,mem_module_le_rx_data_len 
+0x53bf 020323 rtn blank 
+0x53c0 020324 branch module_le_receive_data_ok 
+:      020329 module_bb_event_timer:
+0x53c1 020330 rtn 
+:      020332 module_read_vdd_timer:
+0x53c2 020333 fetch 1 ,mem_module_read_vdd_flag 
+0x53c3 020334 rtn blank 
+0x53c4 020335 fetch 1 ,mem_module_read_vdd_count 
+0x53c5 020336 rtn blank 
+0x53c6 020337 increase -1 ,pdata 
+0x53c7 020338 store 1 ,mem_module_read_vdd_count 
+0x53c8 020339 nrtn blank 
+0x53c9 020340 jam flag_module_read_vdd_count ,mem_module_read_vdd_count 
+0x53ca 020341 call enable_adc 
+0x53cb 020342 call vdd_calculate_by_mode 
+0x53cc 020343 div pdata ,10 
+0x53cd 020344 call get_div_result 
+0x53ce 020345 div pdata ,100 
+0x53cf 020346 call get_div_result 
+0x53d0 020347 remainder temp 
+0x53d1 020348 store 1 ,mem_module_vdd_quotient 
+0x53d2 020349 storet 1 ,mem_module_vdd_remainder 
+0x53d3 020350 rtn 
+:      020356 module_set_le_tx_data_flag:
+0x53d4 020357 arg module_flag_ble_data_finish ,queue 
+0x53d5 020358 branch module_set_state 
+:      020360 module_clear_le_tx_data_flag:
+0x53d6 020361 arg module_flag_ble_data_finish ,queue 
+0x53d7 020362 branch module_clr_state 
+:      020364 module_clr_state:
+0x53d8 020365 fetch 2 ,mem_module_flag 
+0x53d9 020366 qset0 pdata 
+0x53da 020367 store 2 ,mem_module_flag 
+0x53db 020368 rtn 
+:      020370 module_set_state:
+0x53dc 020371 fetch 2 ,mem_module_flag 
+0x53dd 020372 qset1 pdata 
+0x53de 020373 store 2 ,mem_module_flag 
+0x53df 020374 rtn 
+:      020379 mouse_init:
+0x53e0 020380 call enable_authrom 
+0x53e1 020381 call mouse_setting_config 
+0x53e2 020382 call mouse_init_sunt 
+0x53e3 020383 rtn wake 
+0x53e4 020384 call mouse_setting_sensor_type 
+0x53e5 020385 call mouse_drawing_optima_init 
+0x53e6 020386 call mouse_cb_fuction 
+0x53e7 020387 call mouse_sensor_powerdown 
+:      020388 mouse_init_wireless:
+0x53e8 020389 fetch 2 ,mem_ui_state_map 
+0x53e9 020390 bbit1 ui_state_btn_down ,mouse_start_discovery 
+0x53ea 020391 call mouse_check_select_device_by_switch 
+0x53eb 020392 branch mouse_start_work 
+:      020395 mouse_cb_fuction:
+0x53ec 020396 bpatch patch0d_0 ,mem_patch0d 
+0x53ed 020397 setarg mouse_24g_short_sleep 
+0x53ee 020398 store 2 ,mem_cb_24g_transmit_short_sleep 
+0x53ef 020399 setarg mouse_24g_long_sleep 
+0x53f0 020400 store 2 ,mem_cb_24g_transmit_long_sleep 
+0x53f1 020401 setarg mouse_24g_before_lpm_sleep 
+0x53f2 020402 store 2 ,mem_cb_before_lpm_sleep 
+0x53f3 020403 setarg mouse_24g_package_data 
+0x53f4 020404 store 2 ,mem_cb_24g_transmit_data 
+0x53f5 020405 setarg mouse_24g_search_dongle 
+0x53f6 020406 store 2 ,mem_cb_24g_search_receiver 
+0x53f7 020407 setarg mouse_lpm_before_common 
+0x53f8 020408 store 2 ,mem_cb_24g_lpm_before 
+0x53f9 020409 setarg mouse_le 
+0x53fa 020410 store 2 ,mem_cb_le_process 
+0x53fb 020411 setarg mouse_process_lpm_before 
+0x53fc 020412 store 2 ,mem_cb_before_lpm 
+0x53fd 020413 setarg mouse_priority_bb_event 
+0x53fe 020414 store 2 ,mem_cb_bb_event_process 
+0x53ff 020415 setarg mouse_idle 
+0x5400 020416 store 2 ,mem_cb_idle_process 
+0x5401 020417 setarg mouse_before_hibernate 
+0x5402 020418 store 2 ,mem_cb_before_hibernate 
+0x5403 020419 setarg mouse_le_bb_event_connect_complete 
+0x5404 020420 store 2 ,mem_cb_att_write 
+0x5405 020421 setarg mouse_bb_event_timer 
+0x5406 020422 store 2 ,mem_cb_event_timer 
+0x5407 020423 setarg mouse_spi_write_flash_cb 
+0x5408 020424 store 2 ,mem_cb_spi_flash_write_complate 
+0x5409 020425 setarg mouse_lpm_check_wake_lock 
+0x540a 020426 store 2 ,mem_cb_check_wakelock 
+0x540b 020427 setarg mouse_le_transmit 
+0x540c 020428 store 2 ,mem_cb_ble_transmit 
+0x540d 020429 setarg mouse_set_lpm_mult 
+0x540e 020430 store 2 ,mem_cb_bt_set_mult 
+0x540f 020431 rtn 
+:      020434 mouse_setting_config:
+0x5410 020435 rtn wake 
+0x5411 020436 call g24_transmit_init 
+0x5412 020437 call g24_chmap_param_init 
+0x5413 020438 call mouse_24g_send_time_long_wake 
+0x5414 020439 call mouse_gpio_init 
+0x5415 020440 call mouse_le_name_modify 
+0x5416 020441 call mouse_param_init 
+0x5417 020442 call mouse_device_multi_led_parm_init 
+0x5418 020443 call le_set_fixed_ltk_justwork 
+:      020444 mouse_load_device_info_check:
+0x5419 020445 bpatch patch0d_1 ,mem_patch0d 
+0x541a 020446 fetch mouse_flag_len ,mem_mouse_flag 
+0x541b 020447 bbit1 mouse_enable_eeprom ,mouse_load_eeprom_info_check 
+0x541c 020448 bbit1 mouse_enable_flash ,mouse_load_flash_info_check 
+0x541d 020449 bbit1 mouse_enable_otp ,mouse_load_otp_info_check 
+0x541e 020450 rtn 
+:      020452 mouse_xtal_init:
+0x541f 020453 jam xtal_16m ,mem_fcomp_div 
+0x5420 020454 fetch mouse_flag_len ,mem_mouse_flag 
+0x5421 020455 rtnbit1 mouse_enable_16m 
+0x5422 020456 jam xtal_24m ,mem_fcomp_div 
+0x5423 020457 rtn 
+:      020459 mouse_24g_phy_select:
+0x5424 020460 call g24_enable_1m 
+0x5425 020461 fetch mouse_flag_len ,mem_mouse_flag 
+0x5426 020462 rtnbit0 mouse_enable_24g_2m_phy 
+0x5427 020463 branch g24_enable_2m 
+:      020465 mouse_default_init:
+0x5428 020466 bpatch patch0d_2 ,mem_patch0d 
+0x5429 020467 fetch mouse_flag_len ,mem_mouse_flag 
+0x542a 020468 isolate1 mouse_keyboard_enable ,pdata 
+0x542b 020469 call mouse_customer_key_enable ,true 
+:      020471 mouse_default_parm_init:
+0x542c 020472 fetch 2 ,mem_mouse_24g_pair_timeout_init 
+0x542d 020473 store 2 ,mem_24g_pair_timeout_init 
+0x542e 020475 fetch 1 ,mem_mouse_24g_reconn_timeout_init 
+0x542f 020476 store 2 ,mem_24g_reconn_timeout_init 
+0x5430 020478 fetch 5 ,mem_rssi_dis_min_24g_init 
+0x5431 020479 store 5 ,mem_rssi_dis_min_24g 
+0x5432 020481 fetch 1 ,mem_mouse_24g_pair_tx_power 
+0x5433 020482 store 1 ,mem_24g_pair_tx_power 
+0x5434 020484 fetch 1 ,mem_24g_ch_map_update 
+0x5435 020485 ncall g24_chamap_param_update ,blank 
+:      020486 mouse_default_parm_init_next:
+0x5436 020487 bpatch patch0d_3 ,mem_patch0d 
+0x5437 020488 call mouse_xtal_init 
+0x5438 020489 call mouse_24g_phy_select 
+0x5439 020490 call mouse_24g_long_sleep_set 
+0x543a 020491 branch g24_pair_param_init 
+:      020493 mouse_param_common_init:
+0x543b 020494 setarg mouse_ble_att_list_addr 
+0x543c 020495 store 2 ,mem_ui_le_uuid_table 
+0x543d 020496 jam 3 ,mem_lpm_mult_timeout 
+0x543e 020497 jam 8 ,mem_lpm_overhead 
+0x543f 020498 jam pb_button_state_up ,mem_select_device_button_statue 
+0x5440 020499 jam commbination_key_state_up ,mem_commbination_key_statue 
+0x5441 020500 setarg 0x0200 
+0x5442 020501 store 2 ,mem_lpm_interval 
+0x5443 020502 jam 0x17 ,mem_le_local_mtu 
+0x5444 020503 jam 0x17 ,mem_le_remote_mtu 
+0x5445 020505 setarg mem_le_tx_buffer0_omemalloc 
+0x5446 020506 store 2 ,mem_ble_l2cap_tx_buff0_ptr 
+0x5447 020507 setarg mouse_ble_l2cap_txbuff_size 
+0x5448 020508 store 2 ,mem_ble_l2cap_tx_buff_size_ptr 
+0x5449 020509 branch mouse_adc_gpio_mux_init 
+:      020511 mouse_param_init:
+0x544a 020512 bpatch patch0d_4 ,mem_patch0d 
+0x544b 020513 call mouse_param_common_init 
+0x544c 020514 jam dpi_button_state_up ,mem_mouse_dpi_button_state 
+0x544d 020516 setarg 0x0a77 
+0x544e 020517 store 2 ,mem_spi_init_clk 
+0x544f 020518 setsect 0 ,0x1224 
+0x5450 020519 setsect 1 ,0x4000 
+0x5451 020520 setsect 2 ,0x0 
+0x5452 020521 istore 5 ,contw 
+0x5453 020524 fetch mouse_flag_len ,mem_mouse_flag 
+0x5454 020525 bbit0 mouse_enable_bt_125hz ,mouse_param_init_intervl_end 
+0x5455 020526 setarg le_interval_7_5ms 
+0x5456 020527 store 2 ,mem_le_interval_min 
+0x5457 020528 store 2 ,mem_le_interval_min + 2 
+:      020529 mouse_param_init_intervl_end:
+0x5458 020530 call mouse_g24_interval_param_8ms 
+0x5459 020531 fetch mouse_flag_len ,mem_mouse_flag 
+0x545a 020532 bbit0 mouse_enable_24g_250hz ,mouse_24g_short_sleep_set_end 
+0x545b 020533 call mouse_g24_interval_param_4ms 
+:      020534 mouse_24g_short_sleep_set_end:
+0x545c 020535 fetch 3 ,mem_24g_short_sleep_set 
+0x545d 020536 store 3 ,mem_mouse_24g_short_sleep_set_init 
+0x545e 020537 fetch 1 ,mem_device_flag 
+0x545f 020538 store 1 ,mem_device_flag_temp 
+0x5460 020539 fetch 3 ,mem_le_lap + 3 
+0x5461 020540 store 3 ,mem_mouse_le_lap_temp 
+0x5462 020541 setarg 0 
+0x5463 020542 store 7 ,mem_mouse_key 
+0x5464 020543 fetch 1 ,mem_ui_button_timeout 
+0x5465 020544 store 1 ,mem_bt_discovery_count 
+0x5466 020545 store 1 ,mem_select_device_count 
+0x5467 020546 call le_modified_name_adv 
+:      020547 mouse_sensor_set_angle:
+0x5468 020548 bpatch patch0d_5 ,mem_patch0d 
+0x5469 020549 fetch 1 ,mem_sensor_angle_default 
+0x546a 020550 store 1 ,mem_config_sensor_angle 
+0x546b 020551 fetch 1 ,mem_select_sensor_angle_gpio 
+0x546c 020552 rtneq gpio_disable 
+0x546d 020553 fetcht 1 ,mem_select_sensor_angle_gpio 
+0x546e 020554 call mouse_gpio_config_input_pu 
+0x546f 020555 fetcht 1 ,mem_select_sensor_angle_gpio 
+0x5470 020556 call gpio_get_bit 
+0x5471 020557 call mouse_sensor_switch_angle ,true 
+0x5472 020558 branch mouse_gpio_config_input_pd 
+:      020559 mouse_sensor_switch_angle:
+0x5473 020560 fetch 1 ,mem_sensor_angle_switch 
+0x5474 020561 store 1 ,mem_config_sensor_angle 
+0x5475 020562 rtn 
+:      020564 mouse_g24_interval_param_4ms:
+0x5476 020565 fetch 3 ,mem_mouse_24g_short_sleep_set_4ms 
+0x5477 020566 store 3 ,mem_24g_short_sleep_set 
+0x5478 020567 fetch 3 ,mem_mouse_24g_long_sleep_set_4ms 
+0x5479 020568 store 3 ,mem_24g_long_sleep_set 
+0x547a 020569 fetch 1 ,mem_mouse_24g_fast_hop_count_4ms 
+0x547b 020570 store 1 ,mem_24g_fast_hop_count 
+0x547c 020571 fetch 4 ,mem_mouse_24g_tsniff_4ms 
+0x547d 020572 store 4 ,mem_mouse_24g_tsniff 
+:      020573 mouse_report_rate_set_250hz:
+0x547e 020574 setarg 0x100c0c 
+0x547f 020575 store 3 ,mem_24g_interval 
+0x5480 020576 rtn 
+:      020578 mouse_g24_interval_param_8ms:
+0x5481 020579 fetch 3 ,mem_mouse_24g_short_sleep_set_8ms 
+0x5482 020580 store 3 ,mem_24g_short_sleep_set 
+0x5483 020581 fetch 3 ,mem_mouse_24g_long_sleep_set_8ms 
+0x5484 020582 store 3 ,mem_24g_long_sleep_set 
+0x5485 020583 fetch 1 ,mem_mouse_24g_fast_hop_count_8ms 
+0x5486 020584 store 1 ,mem_24g_fast_hop_count 
+0x5487 020585 fetch 4 ,mem_mouse_24g_tsniff_8ms 
+0x5488 020586 store 4 ,mem_mouse_24g_tsniff 
+:      020587 mouse_report_rate_set_125hz:
+0x5489 020588 setarg 0x1c1919 
+0x548a 020589 store 3 ,mem_24g_interval 
+0x548b 020590 rtn 
+:      020602 mouse_start_work:
+0x548c 020603 bpatch patch0d_6 ,mem_patch0d 
+0x548d 020604 fetch mouse_flag_len ,mem_mouse_flag 
+0x548e 020605 bbit1 mouse_enable_24g_first_auto_pairing ,mouse_24g_first_start_auto_pair_mode 
+0x548f 020606 fetch 1 ,mem_device_flag 
+0x5490 020607 beq mode_24g_device ,mouse_24g_start_mode 
+:      020608 mouse_le_fast_conn_judge:
+0x5491 020609 call mouse_bluetooth_fast_conn_disable 
+0x5492 020610 fetch 1 ,mem_device_flag 
+0x5493 020611 beq mode_bt_device1 ,mouse_le_device1_judge 
+0x5494 020612 beq mode_bt_device2 ,mouse_le_device2_judge 
+0x5495 020613 rtn 
+:      020614 mouse_le_device1_judge:
+0x5496 020615 fetch 6 ,mem_device1_addr 
+0x5497 020616 fetcht 6 ,mem_mouse_compare_addr 
+0x5498 020617 isub temp ,null 
+0x5499 020618 branch mouse_bluetooth_fast_conn_init ,zero 
+0x549a 020619 branch mouse_start_reconnect_device 
+:      020621 mouse_le_device2_judge:
+0x549b 020622 fetch 6 ,mem_device2_addr 
+0x549c 020623 fetcht 6 ,mem_mouse_compare_addr 
+0x549d 020624 isub temp ,null 
+0x549e 020625 branch mouse_bluetooth_fast_conn_init ,zero 
+0x549f 020626 branch mouse_start_reconnect_device 
+:      020628 mouse_start_reconnect_device:
+0x54a0 020629 bpatch patch0d_7 ,mem_patch0d 
+0x54a1 020630 call mouse_device_le_reconn_led_config 
+0x54a2 020631 arg mem_device1_type ,rega 
+0x54a3 020632 fetch 1 ,mem_device_flag 
+0x54a4 020633 increase -1 ,pdata 
+0x54a5 020634 mul32 pdata ,29 ,pdata 
+0x54a6 020635 iadd rega ,rega 
+0x54a7 020636 ifetch 1 ,rega 
+0x54a8 020637 store 1 ,mem_xrecord_mode 
+:      020638 mouse_start_reconnect:
+0x54a9 020639 fetch 1 ,mem_xrecord_mode 
+0x54aa 020640 beq rec_4_mode ,mouse4_0_check_reconn_target 
+0x54ab 020641 branch mouse_bluetooth_fast_conn_init 
+:      020643 mouse_wakeup_from_power_check:
+0x54ac 020644 bpatch patch0e_0 ,mem_patch0e 
+0x54ad 020645 disable user 
+0x54ae 020646 fetch mouse_flag_len ,mem_mouse_flag 
+0x54af 020647 bbit0 mouse_enable_wakeup_from_power ,mouse_wakeup_from_poweron 
+0x54b0 020648 fetch 1 ,core_lpm_isogate 
+0x54b1 020649 bbit1 cold_wake ,mouse_wakeup_from_poweron 
+0x54b2 020650 enable user 
+:      020651 mouse_wakeup_from_poweron:
+0x54b3 020652 fetch 1 ,mem_reconn_times_init 
+0x54b4 020653 store 1 ,mem_reconn_times 
+0x54b5 020654 rtn 
+:      020656 mouse4_0_check_reconn_target:
+0x54b6 020657 jam 1 ,mem_mouse_le_reconnect_flag 
+0x54b7 020658 fetcht 1 ,mem_mouse_fast_direct_timeout 
+0x54b8 020659 fetch 1 ,mem_mouse_bluetooth_fast_conn_flag 
+0x54b9 020660 beq 0xff ,mouse4_0_check_reconn_target_next 
+0x54ba 020661 fetcht 1 ,mem_mouse_direct_timeout 
+:      020662 mouse4_0_check_reconn_target_next:
+0x54bb 020663 storet 1 ,mem_mouse_direct_timer 
+0x54bc 020664 call app_lpm_mult_disable 
+0x54bd 020665 fetch 3 ,mem_le_adv_direct_ind 
+0x54be 020666 store 3 ,mem_le_adv_data + 4 
+0x54bf 020667 call mouse_le_check_adv_flag 
+0x54c0 020668 setarg adv_flag_bredr_not_supported 
+0x54c1 020669 istore 1 ,contr 
+0x54c2 020670 arg mem_le_scan_data ,contr 
+0x54c3 020671 call mouse_le_adv_data_update 
+0x54c4 020672 branch check_51cmd_adv 
+:      020676 mouse_lpm_check_wake_lock:
+0x54c5 020677 bmark1 mark_24g ,app_get_lpm_wake_lock 
+0x54c6 020678 fetch 1 ,mem_mouse_clear_sensor_data_flag 
+0x54c7 020679 branch app_get_lpm_wake_lock ,blank 
+0x54c8 020680 fetch 1 ,mem_mouse_le_conn_param_reject 
+0x54c9 020681 beq le_lpm_disable ,app_get_lpm_wake_lock 
+0x54ca 020682 fetch 1 ,mem_mouse_wheel_trigger 
+0x54cb 020683 nbranch app_get_lpm_wake_lock ,blank 
+0x54cc 020684 branch app_put_lpm_wake_lock 
+:      020693 mouse_app_enter_hibernate:
+0x54cd 020694 bpatch patch0e_1 ,mem_patch0e 
+0x54ce 020695 setarg pan_reg_config 
+0x54cf 020696 call twspi_read 
+0x54d0 020697 bbit1 3 ,mouse_app_enter_hibernate_next 
+0x54d1 020698 call mouse_sensor_reset 
+0x54d2 020699 call mouse_sensor_powerdown 
+:      020700 mouse_app_enter_hibernate_next:
+0x54d3 020701 call mouse_setgpio_hibernate 
+0x54d4 020702 branch app_enter_hibernate 
+:      020704 mouse_before_hibernate:
+0x54d5 020705 bpatch patch0e_2 ,mem_patch0e 
+0x54d6 020706 call disable_authrom 
+0x54d7 020707 call mouse_before_hibernate_wheel_gpio_set 
+0x54d8 020708 call mouse_setgpio_hibernate 
+0x54d9 020709 call mouse_flash_power_down 
+0x54da 020710 fetcht 1 ,mem_sensor_motion_gpio 
+0x54db 020711 branch gpio_clr_wake 
+:      020714 mouse_setgpio_hibernate:
+0x54dc 020715 bpatch patch0e_3 ,mem_patch0e 
+0x54dd 020716 call mouse_set_sdio_high 
+0x54de 020717 call clear_wake 
+0x54df 020718 call mouse_logo_led_off 
+0x54e0 020719 call mouse_lpm_before_common 
+0x54e1 020720 call mouse_gpio_pd_idle 
+0x54e2 020721 fetcht 1 ,mem_mouse_reuse_2ice_gpio 
+0x54e3 020722 call mouse_gpio_config_input_pu 
+0x54e4 020723 call mouse_gpio_set_high_impedance 
+0x54e5 020724 call mouse_device_multi_led_all_off 
+0x54e6 020725 call mouse_adc_gpio_set_before_hibernate 
+0x54e7 020726 branch mouse_wheel_gpio_set_before_hibernate 
+:      020728 mouse_wheel_gpio_set_before_hibernate:
+0x54e8 020729 fetch mouse_flag_len ,mem_mouse_flag 
+0x54e9 020730 rtnbit0 mouse_enable_wheel_wake_up_cancel 
+:      020731 mouse_wheel_gpio_clr_wakeup:
+0x54ea 020732 fetcht 1 ,mem_whee_a_data_gpio 
+0x54eb 020733 call gpio_clr_wake 
+0x54ec 020734 fetcht 1 ,mem_whee_b_data_gpio 
+0x54ed 020735 call gpio_clr_wake 
+0x54ee 020736 fetcht 1 ,mem_whee_a_data_gpio 
+0x54ef 020737 call mouse_gpio_config_input_pd 
+0x54f0 020738 fetcht 1 ,mem_whee_b_data_gpio 
+0x54f1 020739 branch mouse_gpio_config_input_pd 
+:      020741 mouse_adc_gpio_set_before_hibernate:
+0x54f2 020742 fetch mouse_flag_len ,mem_mouse_flag 
+0x54f3 020743 rtnbit0 mouse_enable_adc 
+0x54f4 020744 fetch 1 ,mem_adc_config_flag 
+0x54f5 020745 rtnne adc_config_gpio 
+0x54f6 020746 fetch 1 ,mem_adc_channel_gpio 
+0x54f7 020747 arg gpcfg_no_ie ,temp 
+0x54f8 020748 branch gpio_config_function_int 
+:      020752 mouse_gpio_pd_idle:
+0x54f9 020753 arg core_gpio_conf ,contr 
+0x54fa 020754 arg gpio_number ,loopcnt 
+:      020755 mouse_gpio_pd_idle_loop:
+0x54fb 020756 ifetch 1 ,contr 
+0x54fc 020757 nbranch mouse_gpio_pd_idle_configured ,blank 
+0x54fd 020758 setarg gpcfg_pulldown 
+0x54fe 020759 add contr ,-1 ,contw 
+0x54ff 020760 istore 1 ,contw 
+:      020761 mouse_gpio_pd_idle_configured:
+0x5500 020762 loop mouse_gpio_pd_idle_loop 
+0x5501 020763 arg core_gpio_conf_hi + gpio_number_ext ,pdata 
+0x5502 020764 isub contr ,null 
+0x5503 020765 rtn zero 
+:      020766 mouse_gpio_pd_idle_ext:
+0x5504 020767 arg gpio_number_ext ,loopcnt 
+0x5505 020768 arg core_gpio_conf_hi ,contr 
+0x5506 020769 branch mouse_gpio_pd_idle_loop 
+:      020771 mouse_process_lpm_before:
+0x5507 020772 rtnmark1 mark_24g 
+0x5508 020773 call mouse_lpm_before_common 
+0x5509 020774 fetch 1 ,mem_lpm_current_mult 
+0x550a 020775 nrtn blank 
+0x550b 020776 branch gpio_clr_wake 
+:      020778 mouse_lpm_before_common:
+0x550c 020779 bpatch patch0e_4 ,mem_patch0e 
+0x550d 020780 fetcht 1 ,mem_whee_a_data_gpio 
+0x550e 020781 call gpio_config_input 
+0x550f 020782 fetcht 1 ,mem_whee_b_data_gpio 
+0x5510 020783 call gpio_config_input 
+0x5511 020785 call mouse_wheel_check 
+0x5512 020786 fetch 1 ,mem_mouse_sensor_sclk_gpio 
+0x5513 020787 call mouse_gpio_config_output_high 
+0x5514 020788 call twspi_disable 
+0x5515 020790 fetcht 1 ,mem_lbutton_gpio 
+0x5516 020791 call gpio_set_wake 
+0x5517 020792 fetcht 1 ,mem_rbutton_gpio 
+0x5518 020793 call gpio_set_wake 
+0x5519 020794 fetcht 1 ,mem_mbutton_gpio 
+0x551a 020795 call gpio_set_wake 
+0x551b 020797 fetcht 1 ,mem_bk_button_gpio 
+0x551c 020798 call gpio_set_wake 
+0x551d 020799 fetcht 1 ,mem_fw_button_gpio 
+0x551e 020800 call gpio_set_wake 
+0x551f 020801 fetcht 1 ,mem_dpi_button_gpio 
+0x5520 020802 call gpio_set_wake 
+0x5521 020803 fetcht 1 ,mem_config_select_device_button_gpio 
+0x5522 020804 call gpio_set_wake 
+0x5523 020806 fetcht 1 ,mem_customer_key_gpio 
+0x5524 020807 call gpio_set_wake 
+0x5525 020809 fetcht 1 ,mem_whee_a_data_gpio 
+0x5526 020810 call gpio_set_wake_by_current_state 
+0x5527 020811 fetcht 1 ,mem_whee_b_data_gpio 
+0x5528 020812 call gpio_set_wake_by_current_state 
+0x5529 020813 fetcht 1 ,mem_whee_ta_data_gpio 
+0x552a 020814 call gpio_set_wake_by_current_state 
+0x552b 020815 fetcht 1 ,mem_whee_tb_data_gpio 
+0x552c 020816 call gpio_set_wake_by_current_state 
+0x552d 020817 fetcht 1 ,mem_sensor_motion_gpio 
+0x552e 020818 branch gpio_set_wake 
+:      020822 mouse_set_mult:
+0x552f 020823 fetch 2 ,mem_ui_state_map 
+0x5530 020824 rtnbit0 ui_state_ble_connected 
+0x5531 020825 copy rega ,pdata 
+0x5532 020826 nbranch le_set_config_short_mult ,blank 
+0x5533 020827 branch le_clr_config_short_mult 
+:      020831 mouse_adc_gpio_set:
+0x5534 020832 bpatch patch0e_5 ,mem_patch0e 
+0x5535 020833 fetch 1 ,mem_adc_config_flag 
+0x5536 020834 rtnne adc_config_gpio 
+0x5537 020835 fetcht 1 ,mem_adc_channel_gpio 
+0x5538 020836 branch gpio_set_high_impedance 
+:      020838 mouse_adc_gpio_mux_init:
+0x5539 020839 fetch mouse_flag_len ,mem_mouse_flag 
+0x553a 020840 rtnbit0 mouse_enable_adc 
+0x553b 020841 jam mouse_adc_check_multiple ,mem_adc_mux_status 
+0x553c 020842 rtn 
+:      020844 mouse_adc_read:
+0x553d 020845 bpatch patch0e_6 ,mem_patch0e 
+0x553e 020846 fetch mouse_flag_len ,mem_mouse_flag 
+0x553f 020847 rtnbit0 mouse_enable_adc 
+0x5540 020848 call mouse_adc_gpio_set 
+0x5541 020849 fetch 1 ,mem_adc_config_flag 
+0x5542 020850 beq adc_config_gpio ,mouse_adc_read_gpio_mux_start 
+0x5543 020851 jam mouse_adc_check_hvin_multiple ,mem_adc_mux_status 
+0x5544 020852 branch mouse_adc_read_start 
+:      020854 mouse_adc_read_gpio_mux_start:
+0x5545 020855 jam mouse_adc_check_gpio_multiple ,mem_adc_mux_status 
+0x5546 020856 branch mouse_adc_read_start 
+:      020858 mouse_adc_read_start:
+0x5547 020859 bpatch patch0e_7 ,mem_patch0e 
+0x5548 020860 call enable_adc 
+0x5549 020861 call vdd_calculate_by_mode 
+0x554a 020862 store 2 ,mem_mouse_vdd_now_vol 
+0x554b 020863 fetch 1 ,mem_adc_config_flag 
+0x554c 020864 bne adc_config_gpio ,mouse_adc_data_process 
+0x554d 020865 fetcht 2 ,mem_mouse_vdd_now_vol 
+0x554e 020866 mul32 temp ,8 ,pdata 
+0x554f 020867 div pdata ,10 
+0x5550 020868 call get_div_result 
+0x5551 020869 iadd temp ,pdata 
+0x5552 020870 store 2 ,mem_mouse_vdd_now_vol 
+:      020871 mouse_adc_data_process:
+0x5553 020872 arg mem_mouse_vdd_calculate_set ,rega 
+0x5554 020873 call mouse_adc_bat_percent_lowpower_out 
+0x5555 020874 fetch 1 ,mem_adc_power_flag 
+0x5556 020875 bbit1 1 ,mouse_app_enter_hibernate 
+0x5557 020876 bbit0 0 ,mouse_adc_no_low_voltage 
+0x5558 020877 jam 1 ,mem_mouse_adc_last_low_voltage_flag 
+0x5559 020878 branch mouse_adc_low_voltage 
+:      020880 mouse_adc_low_voltage:
+0x555a 020881 arg mouse_low_voltage_flag ,queue 
+0x555b 020882 branch mouse_enable_function_flag 
+:      020883 mouse_adc_no_low_voltage:
+0x555c 020884 arg mouse_low_voltage_flag ,queue 
+0x555d 020885 call mouse_disable_function_flag 
+0x555e 020886 jam 1 ,mem_adc_low_volatage_led_timer_count 
+0x555f 020887 fetch 1 ,mem_mouse_adc_last_low_voltage_flag 
+0x5560 020888 rtn blank 
+0x5561 020889 jam 0 ,mem_mouse_adc_last_low_voltage_flag 
+0x5562 020890 branch mouse_low_voltage_led_off_judge 
+:      020893 mouse_adc_bat_percent_lowpower_out:
+0x5563 020894 bpatch patch0f_0 ,mem_patch0f 
+0x5564 020895 ifetch 8 ,rega 
+0x5565 020896 store 8 ,mem_pdatatemp 
+0x5566 020897 fetch 1 ,mem_adc_mux_status 
+0x5567 020898 beq mouse_adc_check_battery_only ,mouse_adc_bat_percent_lowpower_out_battery 
+0x5568 020899 beq mouse_adc_check_gpio_multiple ,mouse_adc_bat_percent_lowpower_out_battery 
+0x5569 020900 beq mouse_adc_check_hvin_multiple ,mouse_adc_bat_percent_lowpower_out_hvin_multiple 
+:      020901 mouse_adc_bat_percent_lowpower_out_battery:
+0x556a 020902 call adc_clear_no_power_flag 
+0x556b 020903 call adc_clear_low_power_flag 
+0x556c 020904 fetch 2 ,mem_pdatatemp + 6 
+0x556d 020905 fetcht 2 ,mem_pdatatemp + 2 
+0x556e 020906 isub temp ,null 
+0x556f 020907 ncall adc_set_no_power_flag ,positive 
+0x5570 020908 fetcht 2 ,mem_pdatatemp + 4 
+0x5571 020909 isub temp ,null 
+0x5572 020910 ncall adc_set_low_power_flag ,positive 
+:      020911 mouse_adc_bat_level_set:
+0x5573 020912 fetch 2 ,mem_pdatatemp + 6 
+0x5574 020913 fetcht 2 ,mem_pdatatemp 
+0x5575 020914 isub temp ,null 
+0x5576 020915 branch mouse_adc_bat_level_100_percent ,positive 
+0x5577 020916 fetcht 2 ,mem_pdatatemp + 2 
+0x5578 020917 isub temp ,pdata 
+0x5579 020918 nbranch mouse_adc_bat_level_0_percent ,positive 
+0x557a 020919 branch mouse_adc_bat_level_0_percent ,blank 
+0x557b 020920 mul32 pdata ,100 ,rega 
+0x557c 020921 fetch 2 ,mem_pdatatemp 
+0x557d 020922 fetcht 2 ,mem_pdatatemp + 2 
+0x557e 020923 isub temp ,temp 
+0x557f 020924 copy rega ,pdata 
+0x5580 020925 idiv temp 
+0x5581 020926 call get_div_result 
+0x5582 020927 store 1 ,mem_le_battery_level_percentage 
+0x5583 020928 rtn 
+:      020930 mouse_adc_bat_level_100_percent:
+0x5584 020931 jam 100 ,mem_le_battery_level_percentage 
+0x5585 020932 rtn 
+:      020933 mouse_adc_bat_level_0_percent:
+0x5586 020934 jam 0 ,mem_le_battery_level_percentage 
+0x5587 020935 rtn 
+:      020937 mouse_adc_bat_percent_lowpower_out_hvin_multiple:
+0x5588 020938 branch mouse_adc_bat_percent_lowpower_out_battery 
+:      020944 mouse_gpio_init:
+0x5589 020945 fetcht 1 ,mem_eeprom_wp_gpio 
+0x558a 020946 call gpio_config_output 
+0x558b 020948 fetcht 1 ,mem_lbutton_gpio 
+0x558c 020949 call mouse_gpio_config_input_pu 
+0x558d 020950 fetcht 1 ,mem_rbutton_gpio 
+0x558e 020951 call mouse_gpio_config_input_pu 
+0x558f 020952 fetcht 1 ,mem_mbutton_gpio 
+0x5590 020953 call mouse_gpio_config_input_pu 
+0x5591 020954 fetcht 1 ,mem_bk_button_gpio 
+0x5592 020955 call mouse_gpio_config_input_pu 
+0x5593 020956 fetcht 1 ,mem_fw_button_gpio 
+0x5594 020957 call mouse_gpio_config_input_pu 
+0x5595 020958 fetcht 1 ,mem_dpi_button_gpio 
+0x5596 020959 call mouse_gpio_config_input_pu 
+0x5597 020961 fetcht 1 ,mem_matrix_public_gpio 
+0x5598 020962 call mouse_gpio_config_input_pu 
+0x5599 020964 fetcht 1 ,mem_config_select_device_button_gpio 
+0x559a 020965 call mouse_gpio_config_input_pu 
+0x559b 020967 fetcht 1 ,mem_customer_key_gpio 
+0x559c 020968 call mouse_gpio_config_input_pu 
+0x559d 020970 fetcht 1 ,mem_whee_a_data_gpio 
+0x559e 020971 call mouse_gpio_config_input_pu 
+0x559f 020973 fetcht 1 ,mem_whee_b_data_gpio 
+0x55a0 020974 call mouse_gpio_config_input_pu 
+0x55a1 020976 fetcht 1 ,mem_whee_ta_data_gpio 
+0x55a2 020977 call mouse_gpio_config_input_pu 
+0x55a3 020978 fetcht 1 ,mem_whee_tb_data_gpio 
+0x55a4 020979 call mouse_gpio_config_input_pu 
+0x55a5 020981 fetcht 1 ,mem_sensor_motion_gpio 
+0x55a6 020982 call mouse_gpio_config_input_pu 
+0x55a7 020984 fetcht 1 ,mem_device_switch_gpio 
+0x55a8 020985 call mouse_gpio_config_input_pu 
+0x55a9 020987 fetcht 1 ,mem_select_sensor_angle_gpio 
+0x55aa 020988 branch mouse_gpio_config_input_pu 
+:      020991 mouse_gpio_set_pupd_by_input:
+0x55ab 020992 sub temp ,ui_button_gpio_disable ,null 
+0x55ac 020993 rtn zero 
+0x55ad 020994 and temp ,0x7f ,queue 
+0x55ae 020995 fetch 4 ,core_gpio_in 
+0x55af 020996 qisolate1 pdata 
+0x55b0 020997 branch mouse_gpio_config_input_pu ,true 
+:      020998 mouse_gpio_config_input_pd:
+0x55b1 020999 sub temp ,ui_button_gpio_disable ,null 
+0x55b2 021000 rtn zero 
+0x55b3 021001 set1 gpio_active_bit ,temp 
+0x55b4 021002 branch gpio_config_input 
+:      021004 mouse_gpio_config_input_pu:
+0x55b5 021005 sub temp ,ui_button_gpio_disable ,null 
+0x55b6 021006 rtn zero 
+0x55b7 021007 set0 gpio_active_bit ,temp 
+0x55b8 021008 branch gpio_config_input 
+:      021010 mouse_gpio_set_high_impedance:
+0x55b9 021011 fetch 3 ,mem_mouse_set_high_impedance_bit_set 
+0x55ba 021012 store 3 ,mem_pdatatemp 
+0x55bb 021013 arg 13 ,loopcnt 
+0x55bc 021014 arg 0 ,temp 
+:      021015 mouse_gpio_set_high_impedance_bit_loop:
+0x55bd 021016 fetch 3 ,mem_pdatatemp 
+0x55be 021017 isolate1 0 ,pdata 
+0x55bf 021018 call gpio_set_high_impedance ,true 
+0x55c0 021019 fetch 3 ,mem_pdatatemp 
+0x55c1 021020 lshift pdata ,pdata 
+0x55c2 021021 store 3 ,mem_pdatatemp 
+0x55c3 021022 increase 1 ,temp 
+0x55c4 021023 loop mouse_gpio_set_high_impedance_bit_loop 
+0x55c5 021024 rtn 
+:      021030 mouse_le_name_modify:
+0x55c6 021031 bpatch patch0f_1 ,mem_patch0f 
+0x55c7 021032 fetch 8 ,mem_le_name_patch 
+0x55c8 021033 rtn blank 
+0x55c9 021034 fetch 1 ,mem_le_name_patch_len 
+0x55ca 021035 copy pdata ,rega 
+0x55cb 021036 sub pdata ,11 ,null 
+0x55cc 021037 nbranch mouse_le_name_patch_len_overflow ,positive 
+0x55cd 021039 call mouse_le_name_clear 
+0x55ce 021041 arg mem_le_adv_swift_pair + 9 ,contw 
+0x55cf 021042 call mouse_le_name_modify_next 
+0x55d0 021044 arg mem_le_scan_data + 2 ,contw 
+0x55d1 021045 call mouse_le_name_modify_next 
+0x55d2 021047 arg mem_le_name ,contw 
+:      021048 mouse_le_name_modify_next:
+0x55d3 021049 arg mem_le_name_patch ,contr 
+0x55d4 021050 copy rega ,loopcnt 
+0x55d5 021051 branch memcpy 
+:      021053 mouse_le_name_clear:
+0x55d6 021054 arg mem_le_adv_swift_pair + 9 ,contw 
+0x55d7 021055 call mouse_le_name_clear_next 
+0x55d8 021057 arg mem_le_scan_data + 2 ,contw 
+0x55d9 021058 call mouse_le_name_clear_next 
+0x55da 021060 arg mem_le_name ,contw 
+:      021061 mouse_le_name_clear_next:
+0x55db 021062 arg 11 ,loopcnt 
+0x55dc 021063 branch clear_mem 
+:      021065 mouse_le_name_patch_len_overflow:
+0x55dd 021066 call mouse_le_swift_pair_disable 
+0x55de 021068 fetch 1 ,mem_le_name_patch_len 
+0x55df 021069 increase 1 ,pdata 
+0x55e0 021070 store 1 ,mem_le_adv_swift_pair 
+0x55e1 021071 jam 9 ,mem_le_adv_swift_pair + 1 
+0x55e2 021072 arg mem_le_name_patch ,contr 
+0x55e3 021073 arg mem_le_adv_swift_pair + 2 ,contw 
+0x55e4 021074 copy rega ,loopcnt 
+0x55e5 021075 call memcpy 
+0x55e6 021077 fetch 1 ,mem_le_name_patch_len 
+0x55e7 021078 increase 1 ,pdata 
+0x55e8 021079 store 1 ,mem_le_scan_data 
+0x55e9 021080 jam 9 ,mem_le_scan_data + 1 
+0x55ea 021081 arg mem_le_name_patch ,contr 
+0x55eb 021082 arg mem_le_scan_data + 2 ,contw 
+0x55ec 021083 copy rega ,loopcnt 
+0x55ed 021084 call memcpy 
+0x55ee 021086 arg mem_le_name_patch_len ,contr 
+0x55ef 021087 arg mem_le_name_len ,contw 
+0x55f0 021088 copy rega ,loopcnt 
+0x55f1 021089 increase 1 ,loopcnt 
+0x55f2 021090 branch memcpy 
+:      021092 mouse_le_swift_pair_disable:
+0x55f3 021093 arg mem_le_adv_swift_pair ,contw 
+0x55f4 021094 arg 20 ,loopcnt 
+0x55f5 021095 branch clear_mem 
+:      021101 mouse_sensor_spi_init:
+0x55f6 021102 call mouse_spid_init_pin 
+0x55f7 021103 jam 0x73 ,mem_spi_init_clk 
+0x55f8 021105 call mouse_spi_init 
+0x55f9 021106 branch twspi_enable 
+:      021108 mouse_spi_write_flash_cb:
+:      021109 mouse_spi_init:
+0x55fa 021110 branch spid_init 
+:      021112 mouse_spid_init_pin:
+0x55fb 021113 fetch 1 ,mem_mouse_sensor_sclk_gpio 
+0x55fc 021114 arg gpcfg_spid_sck ,temp 
+0x55fd 021115 call gpio_config_function_int 
+0x55fe 021116 fetch 1 ,mem_mouse_sensor_sdio_gpio 
+0x55ff 021117 arg gpcfg_spid_sdio ,temp 
+0x5600 021118 branch gpio_config_function_int 
+:      021123 mouse_motion:
+0x5601 021124 bpatch patch0f_2 ,mem_patch0f 
+0x5602 021125 disable user 
+0x5603 021126 setarg 0 
+0x5604 021127 store 6 ,mem_mouse_x 
+0x5605 021128 call mouse_check_sensor_data 
+0x5606 021129 setarg 0x0089 
+0x5607 021130 call twspi_write 
+0x5608 021131 call mouse_setting_sensor_type 
+0x5609 021132 call mouse_zwheel 
+0x560a 021133 call mouse_t_zwheel 
+0x560b 021134 call mouse_key 
+0x560c 021135 fetch 1 ,mem_mouse_key 
+0x560d 021136 and_into 0x1f ,pdata 
+0x560e 021137 store 1 ,mem_mouse_key 
+0x560f 021138 nbranch mouse_drawing_optima_init ,user 
+0x5610 021139 call mouse_drawing_optima 
+0x5611 021140 branch mouse_no_data_timer_init 
+:      021144 mouse_zwheel:
+0x5612 021145 fetch 1 ,mem_mouse_z_data 
+0x5613 021146 rtn blank 
+0x5614 021147 store 1 ,mem_mouse_z 
+0x5615 021148 jam 0 ,mem_mouse_z_data 
+0x5616 021149 branch enable_user 
+:      021151 mouse_t_zwheel:
+0x5617 021152 fetch 1 ,mem_mouse_tz_data 
+0x5618 021153 rtn blank 
+0x5619 021154 store 1 ,mem_mouse_tz 
+0x561a 021155 jam 0 ,mem_mouse_tz_data 
+0x561b 021156 branch enable_user 
+:      021158 mouse_wheel_check:
+0x561c 021159 call mouse_t_wheel_scan 
+0x561d 021160 call mouse_wheel_scan 
+0x561e 021161 fetch 1 ,mem_wheel_tb_new_pinlevel 
+0x561f 021162 fetcht 1 ,mem_wheel_tb_old_pinlevel 
+0x5620 021163 store 1 ,mem_wheel_tb_old_pinlevel 
+0x5621 021164 isub temp ,null 
+0x5622 021165 nbranch app_lpm_wake_auto_lock ,zero 
+0x5623 021166 fetch 1 ,mem_mwheel_b_new_pinlevel 
+0x5624 021167 fetcht 1 ,mem_mwheel_b_old_pinlevel 
+0x5625 021168 store 1 ,mem_mwheel_b_old_pinlevel 
+0x5626 021169 isub temp ,null 
+0x5627 021170 nbranch app_lpm_wake_auto_lock ,zero 
+0x5628 021171 rtn 
+:      021172 mouse_t_wheel_scan:
+0x5629 021173 fetch 1 ,mem_whee_ta_data_gpio 
+0x562a 021174 rtneq gpio_disable 
+0x562b 021175 arg 0 ,rega 
+0x562c 021176 fetcht 1 ,mem_whee_ta_data_gpio 
+0x562d 021177 call gpio_get_bit 
+0x562e 021178 setflag true ,0 ,rega 
+0x562f 021179 fetcht 1 ,mem_whee_tb_data_gpio 
+0x5630 021180 call gpio_get_bit 
+0x5631 021181 setflag true ,1 ,rega 
+0x5632 021182 copy rega ,pdata 
+0x5633 021183 store 1 ,mem_wheel_tb_new_pinlevel 
+0x5634 021184 beq 0x01 ,mouse_t_wheel_scan_judge1 
+0x5635 021185 beq 0x02 ,mouse_t_wheel_scan_judge2 
+0x5636 021186 fetch 1 ,mem_wheel_tog 
+0x5637 021187 bbit1 7 ,mouse_t_wheel_scan_judge3 
+0x5638 021188 rtn 
+:      021190 mouse_t_wheel_scan_judge1:
+0x5639 021191 fetch 1 ,mem_wheel_tb_old_pinlevel 
+0x563a 021192 beq 0 ,mouse_t_wheel_scan_judge11 
+0x563b 021193 beq 3 ,mouse_t_wheel_scan_judge12 
+0x563c 021194 rtn 
+:      021195 mouse_t_wheel_scan_judge2:
+0x563d 021196 fetch 1 ,mem_wheel_tb_old_pinlevel 
+0x563e 021197 beq 0 ,mouse_t_wheel_scan_judge21 
+0x563f 021198 beq 3 ,mouse_t_wheel_scan_judge22 
+0x5640 021199 rtn 
+:      021200 mouse_t_wheel_scan_judge11:
+0x5641 021201 jam 0x82 ,mem_wheel_tog 
+0x5642 021202 rtn 
+:      021203 mouse_t_wheel_scan_judge12:
+0x5643 021204 jam 0x81 ,mem_wheel_tog 
+0x5644 021205 rtn 
+:      021206 mouse_t_wheel_scan_judge21:
+0x5645 021207 jam 0x80 ,mem_wheel_tog 
+0x5646 021208 rtn 
+:      021209 mouse_t_wheel_scan_judge22:
+0x5647 021210 jam 0x83 ,mem_wheel_tog 
+0x5648 021211 rtn 
+:      021212 mouse_t_wheel_scan_judge3:
+0x5649 021213 fetch 1 ,mem_wheel_tog 
+0x564a 021214 set0 7 ,pdata 
+0x564b 021215 store 1 ,mem_wheel_tog 
+0x564c 021216 beq 0 ,mouse_t_wheel_scan_judge30 
+0x564d 021217 beq 1 ,mouse_t_wheel_scan_judge31 
+0x564e 021218 beq 2 ,mouse_t_wheel_scan_judge32 
+0x564f 021219 beq 3 ,mouse_t_wheel_scan_judge33 
+0x5650 021220 rtn 
+:      021221 mouse_t_wheel_scan_judge30:
+0x5651 021222 fetch 1 ,mem_wheel_tb_new_pinlevel 
+0x5652 021223 beq 3 ,mouse_wheel_t_forward 
+0x5653 021224 rtn 
+:      021225 mouse_t_wheel_scan_judge31:
+0x5654 021226 fetch 1 ,mem_wheel_tb_new_pinlevel 
+0x5655 021227 beq 0 ,mouse_wheel_t_forward 
+0x5656 021228 rtn 
+:      021229 mouse_t_wheel_scan_judge32:
+0x5657 021230 fetch 1 ,mem_wheel_tb_new_pinlevel 
+0x5658 021231 beq 3 ,mouse_wheel_t_back 
+0x5659 021232 rtn 
+:      021233 mouse_t_wheel_scan_judge33:
+0x565a 021234 fetch 1 ,mem_wheel_tb_new_pinlevel 
+0x565b 021235 beq 0 ,mouse_wheel_t_back 
+0x565c 021236 rtn 
+:      021237 mouse_wheel_t_forward:
+0x565d 021238 fetch 1 ,mem_mouse_tz_data 
+0x565e 021239 increase 1 ,pdata 
+0x565f 021240 store 1 ,mem_mouse_tz_data 
+0x5660 021241 rtn 
+:      021242 mouse_wheel_t_back:
+0x5661 021243 fetch 1 ,mem_mouse_tz_data 
+0x5662 021244 increase -1 ,pdata 
+0x5663 021245 store 1 ,mem_mouse_tz_data 
+0x5664 021246 rtn 
+:      021249 mouse_wheel_scan:
+0x5665 021250 fetch 1 ,mem_whee_a_data_gpio 
+0x5666 021251 rtneq gpio_disable 
+0x5667 021252 arg 0 ,rega 
+0x5668 021253 fetcht 1 ,mem_whee_a_data_gpio 
+0x5669 021254 call gpio_get_bit 
+0x566a 021255 setflag true ,0 ,rega 
+0x566b 021256 fetcht 1 ,mem_whee_b_data_gpio 
+0x566c 021257 call gpio_get_bit 
+0x566d 021258 setflag true ,1 ,rega 
+0x566e 021259 copy rega ,pdata 
+0x566f 021260 store 1 ,mem_mwheel_b_new_pinlevel 
+0x5670 021261 beq 0x01 ,mouse_wheel_scan_judge1 
+0x5671 021262 beq 0x02 ,mouse_wheel_scan_judge2 
+0x5672 021263 fetch 1 ,mem_mwheel_tog 
+0x5673 021264 bbit1 7 ,mouse_wheel_scan_judge3 
+0x5674 021265 rtn 
+:      021267 mouse_wheel_scan_judge1:
+0x5675 021268 fetch 1 ,mem_mwheel_b_old_pinlevel 
+0x5676 021269 beq 0 ,mouse_wheel_scan_judge11 
+0x5677 021270 beq 3 ,mouse_wheel_scan_judge12 
+0x5678 021271 rtn 
+:      021272 mouse_wheel_scan_judge2:
+0x5679 021273 fetch 1 ,mem_mwheel_b_old_pinlevel 
+0x567a 021274 beq 0 ,mouse_wheel_scan_judge21 
+0x567b 021275 beq 3 ,mouse_wheel_scan_judge22 
+0x567c 021276 rtn 
+:      021277 mouse_wheel_scan_judge11:
+0x567d 021278 jam 0x82 ,mem_mwheel_tog 
+0x567e 021279 rtn 
+:      021280 mouse_wheel_scan_judge12:
+0x567f 021281 jam 0x81 ,mem_mwheel_tog 
+0x5680 021282 rtn 
+:      021283 mouse_wheel_scan_judge21:
+0x5681 021284 jam 0x80 ,mem_mwheel_tog 
+0x5682 021285 rtn 
+:      021286 mouse_wheel_scan_judge22:
+0x5683 021287 jam 0x83 ,mem_mwheel_tog 
+0x5684 021288 rtn 
+:      021289 mouse_wheel_scan_judge3:
+0x5685 021290 fetch 1 ,mem_mwheel_tog 
+0x5686 021291 set0 7 ,pdata 
+0x5687 021292 store 1 ,mem_mwheel_tog 
+0x5688 021293 beq 0 ,mouse_wheel_scan_judge30 
+0x5689 021294 beq 1 ,mouse_wheel_scan_judge31 
+0x568a 021295 beq 2 ,mouse_wheel_scan_judge32 
+0x568b 021296 beq 3 ,mouse_wheel_scan_judge33 
+0x568c 021297 rtn 
+:      021298 mouse_wheel_scan_judge30:
+0x568d 021299 fetch 1 ,mem_mwheel_b_new_pinlevel 
+0x568e 021300 beq 3 ,mouse_wheel_forward 
+0x568f 021301 rtn 
+:      021302 mouse_wheel_scan_judge31:
+0x5690 021303 fetch 1 ,mem_mwheel_b_new_pinlevel 
+0x5691 021304 beq 0 ,mouse_wheel_forward 
+0x5692 021305 rtn 
+:      021306 mouse_wheel_scan_judge32:
+0x5693 021307 fetch 1 ,mem_mwheel_b_new_pinlevel 
+0x5694 021308 beq 3 ,mouse_wheel_back 
+0x5695 021309 rtn 
+:      021310 mouse_wheel_scan_judge33:
+0x5696 021311 fetch 1 ,mem_mwheel_b_new_pinlevel 
+0x5697 021312 beq 0 ,mouse_wheel_back 
+0x5698 021313 rtn 
+:      021314 mouse_wheel_forward:
+0x5699 021315 fetch 1 ,mem_mouse_z_data 
+0x569a 021316 increase 1 ,pdata 
+0x569b 021317 store 1 ,mem_mouse_z_data 
+0x569c 021318 rtn 
+:      021319 mouse_wheel_back:
+0x569d 021320 fetch 1 ,mem_mouse_z_data 
+0x569e 021321 increase -1 ,pdata 
+0x569f 021322 store 1 ,mem_mouse_z_data 
+0x56a0 021323 rtn 
+:      021326 mouse_wheel_gpio_set_wake:
+0x56a1 021327 fetcht 1 ,mem_whee_a_data_gpio 
+0x56a2 021328 call gpio_set_wake_by_current_state 
+0x56a3 021329 fetcht 1 ,mem_whee_b_data_gpio 
+0x56a4 021330 call gpio_set_wake_by_current_state 
+0x56a5 021331 fetcht 1 ,mem_whee_ta_data_gpio 
+0x56a6 021332 call gpio_set_wake_by_current_state 
+0x56a7 021333 fetcht 1 ,mem_whee_tb_data_gpio 
+0x56a8 021334 branch gpio_set_wake_by_current_state 
+:      021336 mouse_before_hibernate_wheel_gpio_set:
+0x56a9 021337 fetcht 1 ,mem_whee_a_data_gpio 
+0x56aa 021338 call mouse_gpio_set_pupd_by_input 
+0x56ab 021339 fetcht 1 ,mem_whee_b_data_gpio 
+0x56ac 021340 call mouse_gpio_set_pupd_by_input 
+0x56ad 021341 fetcht 1 ,mem_whee_ta_data_gpio 
+0x56ae 021342 call mouse_gpio_set_pupd_by_input 
+0x56af 021343 fetcht 1 ,mem_whee_tb_data_gpio 
+0x56b0 021344 branch mouse_gpio_set_pupd_by_input 
+:      021346 mouse_wheel_trigger:
+0x56b1 021347 fetch 2 ,mem_mouse_z 
+0x56b2 021348 rtn blank 
+0x56b3 021349 jam 1 ,mem_mouse_wheel_trigger 
+0x56b4 021350 jam 10 ,mem_mouse_wheel_trigger_timer 
+0x56b5 021351 rtn 
+:      021353 mouse_wheel_trigger_timer:
+0x56b6 021354 arg mem_mouse_wheel_trigger_timer ,regc 
+0x56b7 021355 arg mouse_wheel_trigger_disable ,regb 
+0x56b8 021356 branch timer_single_step 
+:      021357 mouse_wheel_trigger_disable:
+0x56b9 021358 jam 0 ,mem_mouse_wheel_trigger 
+0x56ba 021359 rtn 
+:      021367 mouse_dpi_check:
+0x56bb 021368 fetch 1 ,mem_dpi_button_gpio 
+0x56bc 021369 rtneq gpio_disable 
+0x56bd 021370 arg 0 ,rega 
+0x56be 021371 jam mouse_dpi_key ,mem_mouse_key_temp 
+0x56bf 021372 fetcht 1 ,mem_dpi_button_gpio 
+0x56c0 021373 call mouse_dpi_key_check 
+:      021374 mouse_dpi_check_next:
+0x56c1 021375 store 1 ,mem_mouse_dpikey_press_status 
+0x56c2 021376 fetch 1 ,mem_matrix_public_gpio 
+0x56c3 021377 beq gpio_disable ,mouse_3io6key_dpi_check_end 
+0x56c4 021378 call mouse_matrix_public_gpio_reset 
+:      021379 mouse_dpi_check_exit:
+0x56c5 021380 copy rega ,pdata 
+0x56c6 021381 bbit1 mouse_dpi_key ,mouse_dpi_down 
+0x56c7 021382 branch mouse_dpi_up 
+:      021384 mouse_dpi_key_check:
+0x56c8 021385 fetch mouse_flag_len ,mem_mouse_flag 
+0x56c9 021386 bbit1 mouse_enable_dpi_key_connect_gnd ,mouse_dpi_key_connect_gnd 
+0x56ca 021387 fetch 1 ,mem_mouse_dpikey_press_status 
+0x56cb 021388 copy pdata ,regc 
+0x56cc 021389 fetch 1 ,mem_matrix_public_gpio 
+0x56cd 021390 beq gpio_disable ,mouse_3io6key_check 
+:      021391 mouse_dpi_key_check_next:
+0x56ce 021392 fetch 1 ,mem_mouse_ghost_flag 
+0x56cf 021393 nbranch mouse_dpi_check_end ,blank 
+:      021394 mouse_dpi_key_connect_matrix:
+0x56d0 021395 call gpio_get_bit 
+0x56d1 021396 fetcht 1 ,mem_matrix_public_gpio 
+0x56d2 021397 branch mouse_dpi_key_connect_gnd ,true 
+0x56d3 021398 fetcht 1 ,mem_matrix_public_gpio 
+0x56d4 021399 call gpio_out_active 
+0x56d5 021400 fetcht 1 ,mem_dpi_button_gpio 
+0x56d6 021401 fetch 1 ,mem_mouse_dpikey_press_status 
+0x56d7 021402 branch mouse_check_key_connect_gnd 
+:      021404 mouse_3io6key_dpi_check_end:
+0x56d8 021405 fetcht 1 ,mem_dpi_button_gpio 
+0x56d9 021406 call mouse_gpio_config_input_pu 
+0x56da 021407 branch mouse_dpi_check_exit 
+:      021409 mouse_dpi_check_end:
+0x56db 021410 jam dpi_button_state_up ,mem_mouse_dpi_button_state 
+0x56dc 021411 jam 0 ,mem_mouse_dpikey_press_status 
+0x56dd 021412 rtn 
+:      021414 mouse_dpi_key_connect_gnd:
+0x56de 021415 fetch 1 ,mem_mouse_dpikey_press_status 
+0x56df 021416 branch mouse_check_key_connect_gnd 
+:      021418 mouse_dpi_down:
+0x56e0 021419 fetch 1 ,mem_mouse_dpi_button_state 
+0x56e1 021420 rtneq dpi_button_state_down 
+0x56e2 021421 jam dpi_button_state_down ,mem_mouse_dpi_button_state 
+0x56e3 021422 fetch mouse_flag_len ,mem_mouse_flag 
+0x56e4 021423 rtnbit1 mouse_enable_select_device_by_dpi_button 
+0x56e5 021424 rtnbit1 mouse_enable_dpi_key_long_press_disconvery 
+0x56e6 021425 branch mouse_dpi_process 
+:      021427 mouse_dpi_up:
+0x56e7 021428 fetch 1 ,mem_mouse_dpi_button_state 
+0x56e8 021429 rtneq dpi_button_state_up 
+0x56e9 021430 jam dpi_button_state_up ,mem_mouse_dpi_button_state 
+0x56ea 021431 fetch mouse_flag_len ,mem_mouse_flag 
+0x56eb 021432 bbit1 mouse_enable_select_device_by_dpi_button ,mouse_dpi_up_next 
+0x56ec 021433 bbit1 mouse_enable_dpi_key_long_press_disconvery ,mouse_dpi_up_next 
+0x56ed 021434 rtn 
+:      021435 mouse_dpi_up_next:
+0x56ee 021436 fetch 1 ,mem_mouse_dpi_long_press_flag 
+0x56ef 021437 nbranch mouse_dpi_up_after_long_press ,blank 
+0x56f0 021438 fetch 1 ,mem_select_device_count 
+0x56f1 021439 ncall mouse_dpi_process ,blank 
+:      021440 mouse_dpi_up_after_long_press:
+0x56f2 021441 jam 0 ,mem_mouse_dpi_long_press_flag 
+0x56f3 021442 fetch 1 ,mem_ui_button_timeout 
+0x56f4 021443 store 1 ,mem_select_device_count 
+0x56f5 021444 store 1 ,mem_bt_discovery_count 
+0x56f6 021445 rtn 
+:      021447 mouse_dpi_process:
+0x56f7 021448 bpatch patch0f_3 ,mem_patch0f 
+0x56f8 021449 call mouse_dpi_ghost_check 
+0x56f9 021450 rtn user 
+0x56fa 021451 fetch 1 ,mem_mouse_dpi 
+0x56fb 021453 copy pdata ,temp 
+0x56fc 021454 fetch mouse_flag_len ,mem_mouse_flag 
+0x56fd 021455 bbit1 mouse_enable_double_dpi_key ,mouse_double_dpi_check 
+0x56fe 021456 copy temp ,pdata 
+0x56ff 021458 increase 1 ,pdata 
+0x5700 021459 and pdata ,0x03 ,pdata 
+:      021460 mouse_dpi_level_store:
+0x5701 021461 store 1 ,mem_mouse_dpi 
+0x5702 021462 call mouse_setting_dpi 
+0x5703 021463 branch mouse_store_dpi_info_check 
+:      021468 mouse_double_dpi_check:
+0x5704 021469 fetch 1 ,mem_dpi_another_button_down_enable 
+0x5705 021470 nbranch mouse_another_dpi_button_down ,blank 
+:      021471 mouse_dpi_increase:
+0x5706 021472 fetch mouse_flag_len ,mem_mouse_flag 
+0x5707 021473 bbit1 mouse_enable_dpi_level_4 ,mouse_dpi_increase_level_4 
+0x5708 021474 copy temp ,pdata 
+0x5709 021475 rtneq mouse_dpi_level2 
+:      021476 mouse_dpi_increase_level:
+0x570a 021477 beq mouse_dpi_level1 ,mouse_dpi_level_3 
+0x570b 021478 beq mouse_dpi_level3 ,mouse_dpi_level_2 
+0x570c 021479 rtn 
+:      021481 mouse_dpi_level_1:
+0x570d 021482 setarg 2 
+0x570e 021483 branch mouse_dpi_level_store 
+:      021484 mouse_dpi_level_2:
+0x570f 021485 setarg 0 
+0x5710 021486 branch mouse_dpi_level_store 
+:      021487 mouse_dpi_level_3:
+0x5711 021488 setarg 1 
+0x5712 021489 branch mouse_dpi_level_store 
+:      021490 mouse_dpi_level_4:
+0x5713 021491 setarg 3 
+0x5714 021492 branch mouse_dpi_level_store 
+:      021494 mouse_dpi_increase_level_4:
+0x5715 021495 copy temp ,pdata 
+0x5716 021496 rtneq mouse_dpi_level2 
+0x5717 021497 beq mouse_dpi_level1 ,mouse_dpi_level_3 
+0x5718 021498 beq mouse_dpi_level3 ,mouse_dpi_level_4 
+0x5719 021499 beq mouse_dpi_level4 ,mouse_dpi_level_2 
+0x571a 021500 rtn 
+:      021501 mouse_dpi_decrease_level_4:
+0x571b 021502 copy temp ,pdata 
+0x571c 021503 rtneq mouse_dpi_level3 
+0x571d 021504 beq mouse_dpi_level1 ,mouse_dpi_level_4 
+0x571e 021505 beq mouse_dpi_level2 ,mouse_dpi_level_2 
+0x571f 021506 beq mouse_dpi_level4 ,mouse_dpi_level_1 
+0x5720 021507 rtn 
+:      021509 mouse_another_dpi_button_down:
+:      021510 mouse_dpi_decrease:
+0x5721 021511 fetch mouse_flag_len ,mem_mouse_flag 
+0x5722 021512 bbit1 mouse_enable_dpi_level_4 ,mouse_dpi_decrease_level_4 
+0x5723 021513 copy temp ,pdata 
+0x5724 021514 rtneq mouse_dpi_level3 
+:      021515 mouse_dpi_decrease_level:
+0x5725 021516 beq mouse_dpi_level1 ,mouse_dpi_level_1 
+0x5726 021517 beq mouse_dpi_level2 ,mouse_dpi_level_2 
+0x5727 021518 rtn 
+:      021523 mouse_dpi_ghost_check:
+0x5728 021524 disable user 
+0x5729 021525 fetch mouse_flag_len ,mem_mouse_flag 
+0x572a 021526 rtnbit1 mouse_enable_dpi_key_connect_gnd 
+0x572b 021527 branch mouse_ghost_key_value_check 
+:      021529 mouse_dpi_key_check_long_press:
+0x572c 021530 fetch mouse_flag_len ,mem_mouse_flag 
+0x572d 021531 bbit1 mouse_enable_select_device_by_dpi_button ,mouse_select_device_by_dpi_button 
+0x572e 021532 bbit1 mouse_enable_dpi_key_long_press_disconvery ,mouse_discovery_by_dpi_button 
+0x572f 021533 rtn 
+:      021535 mouse_select_device_by_dpi_button:
+0x5730 021536 fetch 1 ,mem_mouse_dpi_button_state 
+0x5731 021537 rtnne dpi_button_state_down 
+0x5732 021538 arg mem_select_device_count ,regc 
+0x5733 021539 arg mouse_ready_reconnection_by_dpi_button ,regb 
+0x5734 021540 branch timer_single_step 
+:      021542 mouse_ready_reconnection_by_dpi_button:
+0x5735 021543 jam 1 ,mem_mouse_dpi_long_press_flag 
+0x5736 021544 branch mouse_ready_reconnection_by_button 
+:      021546 mouse_discovery_by_dpi_button:
+0x5737 021547 fetch 1 ,mem_mouse_dpi_button_state 
+0x5738 021548 rtnne dpi_button_state_down 
+0x5739 021549 arg mem_bt_discovery_count ,regc 
+0x573a 021550 arg mouse_long_dpi_button_bt_discovery ,regb 
+0x573b 021551 branch timer_single_step 
+:      021553 mouse_long_dpi_button_bt_discovery:
+0x573c 021554 jam 1 ,mem_mouse_dpi_long_press_flag 
+0x573d 021555 branch mouse_long_button_bt_discovery 
+:      021557 mouse_setting_dpi_4_level:
+0x573e 021558 fetch mouse_flag_len ,mem_mouse_flag 
+0x573f 021559 rtnbit1 mouse_enable_dpi_level_4 
+0x5740 021560 fetch 1 ,mem_mouse_dpi 
+0x5741 021561 rtnne mouse_dpi_level4 
+0x5742 021562 jam mouse_dpi_level1 ,mem_mouse_dpi 
+0x5743 021563 rtn 
+:      021565 mouse_setting_dpi:
+0x5744 021566 bpatch patch0f_4 ,mem_patch0f 
+0x5745 021567 call mouse_setting_dpi_4_level 
+0x5746 021568 call mouse_dpi_led_blink_delay 
+:      021569 mouse_setting_sensor_type:
+0x5747 021570 bpatch patch0f_5 ,mem_patch0f 
+0x5748 021571 fetch 1 ,mem_config_sensor_type 
+0x5749 021572 beq s201x ,mouse_seting_s201_dpi 
+0x574a 021573 beq p3212 ,mouse_seting_3212_dpi 
+0x574b 021574 beq ka8g2 ,mouse_seting_ka8g2_dpi 
+0x574c 021575 fetch 1 ,mem_mouse_dpi 
+0x574d 021576 beq mouse_dpi_level1 ,mouse_set_cpi0 
+0x574e 021577 beq mouse_dpi_level2 ,mouse_set_cpi1 
+0x574f 021578 beq mouse_dpi_level3 ,mouse_set_cpi2 
+0x5750 021579 beq mouse_dpi_level4 ,mouse_set_cpi3 
+:      021580 mouse_set_cpi1:
+0x5751 021581 fetcht 1 ,mem_320x_dpi_1 
+0x5752 021582 branch mouse_dpi_store 
+:      021583 mouse_set_cpi0:
+0x5753 021584 fetcht 1 ,mem_320x_dpi_0 
+0x5754 021585 branch mouse_dpi_store 
+:      021586 mouse_set_cpi2:
+0x5755 021587 fetcht 1 ,mem_320x_dpi_2 
+0x5756 021588 branch mouse_dpi_store 
+:      021589 mouse_set_cpi3:
+0x5757 021590 fetcht 1 ,mem_320x_dpi_3 
+:      021591 mouse_dpi_store:
+0x5758 021592 fetch 1 ,mem_config_sensor_type 
+0x5759 021593 beq p3065_xy ,mouse_3065xy_set_dpi 
+0x575a 021594 beq mx8650 ,mouse_3065xy_set_dpi 
+0x575b 021595 beq ka8 ,mouse_ka8_set_dpi 
+0x575c 021596 beq p6520 ,mouse_ka8_set_dpi 
+0x575d 021597 beq p8009 ,mouse_3065xy_set_dpi 
+:      021598 mouse_dpi_write:
+0x575e 021599 storet 1 ,mem_mouse_cpi_count 
+0x575f 021600 setarg mouse_dpi_address 
+0x5760 021601 call twspi_read 
+0x5761 021602 and pdata ,0xf8 ,temp 
+0x5762 021603 fetch 1 ,mem_mouse_cpi_count 
+0x5763 021604 iadd temp ,pdata 
+0x5764 021605 lshift8 pdata ,pdata 
+0x5765 021606 add pdata ,mouse_dpi_address ,pdata 
+0x5766 021607 branch twspi_write 
+:      021609 mouse_3065xy_set_dpi:
+0x5767 021610 increase -1 ,temp 
+0x5768 021611 branch mouse_dpi_write 
+:      021613 mouse_ka8_set_dpi:
+0x5769 021614 increase 2 ,temp 
+0x576a 021615 branch mouse_dpi_write 
+:      021617 mouse_seting_s201_dpi:
+0x576b 021618 fetch 1 ,mem_mouse_dpi 
+0x576c 021619 beq mouse_dpi_level1 ,mouse_set_s201_dpi_0 
+0x576d 021620 beq mouse_dpi_level2 ,mouse_set_s201_dpi_2 
+0x576e 021621 beq mouse_dpi_level3 ,mouse_set_s201_dpi_3 
+:      021622 mouse_set_s201_dpi_0:
+0x576f 021623 fetch 1 ,mem_sensor_s201_dpi_0 
+0x5770 021624 copy pdata ,rega 
+0x5771 021625 branch mouse_dpi_s201_store 
+:      021627 mouse_set_s201_dpi_1:
+0x5772 021628 fetch 1 ,mem_sensor_s201_dpi_1 
+0x5773 021629 copy pdata ,rega 
+0x5774 021630 branch mouse_dpi_s201_store 
+:      021632 mouse_set_s201_dpi_2:
+0x5775 021633 fetch 1 ,mem_sensor_s201_dpi_2 
+0x5776 021634 copy pdata ,rega 
+0x5777 021635 branch mouse_dpi_s201_store 
+:      021637 mouse_set_s201_dpi_3:
+0x5778 021638 fetch 1 ,mem_sensor_s201_dpi_3 
+0x5779 021639 copy pdata ,rega 
+0x577a 021640 branch mouse_dpi_s201_store 
+:      021642 mouse_set_s201_dpi_4:
+0x577b 021643 fetch 1 ,mem_sensor_s201_dpi_4 
+0x577c 021644 copy pdata ,rega 
+:      021645 mouse_dpi_s201_store:
+0x577d 021646 setarg 0xc309 
+0x577e 021647 call twspi_write 
+0x577f 021648 copy rega ,pdata 
+0x5780 021649 lshift8 pdata ,pdata 
+0x5781 021650 add pdata ,0x23 ,pdata 
+0x5782 021651 call twspi_write 
+0x5783 021652 setarg 0x0009 
+0x5784 021653 branch twspi_write 
+:      021655 mouse_seting_3212_dpi:
+0x5785 021656 fetch 1 ,mem_mouse_dpi 
+0x5786 021657 beq mouse_dpi_level1 ,mouse_set_p3212_cpi0 
+0x5787 021658 beq mouse_dpi_level2 ,mouse_set_p3212_cpi1 
+0x5788 021659 beq mouse_dpi_level3 ,mouse_set_p3212_cpi2 
+0x5789 021660 beq mouse_dpi_level4 ,mouse_set_p3212_cpi3 
+:      021661 mouse_set_p3212_cpi1:
+0x578a 021662 fetch 1 ,mem_3212_dpi_1 
+0x578b 021663 branch mouse_p3212_dpi 
+:      021664 mouse_set_p3212_cpi0:
+0x578c 021665 fetch 1 ,mem_3212_dpi_0 
+0x578d 021666 branch mouse_p3212_dpi 
+:      021667 mouse_set_p3212_cpi2:
+0x578e 021668 fetch 1 ,mem_3212_dpi_2 
+0x578f 021669 branch mouse_p3212_dpi 
+:      021670 mouse_set_p3212_cpi3:
+0x5790 021671 fetch 1 ,mem_3212_dpi_3 
+:      021672 mouse_p3212_dpi:
+0x5791 021673 store 1 ,mem_mouse_cpi_count 
+0x5792 021674 lshift8 pdata ,pdata 
+0x5793 021675 copy pdata ,rega 
+0x5794 021676 add pdata ,mouse_p3212_dpi_xaddress ,pdata 
+0x5795 021677 call twspi_write 
+0x5796 021678 copy rega ,pdata 
+0x5797 021679 add pdata ,mouse_p3212_dpi_yaddress ,pdata 
+0x5798 021680 branch twspi_write 
+:      021682 mouse_seting_ka8g2_dpi:
+0x5799 021683 fetch 1 ,mem_mouse_dpi 
+0x579a 021684 beq mouse_dpi_level1 ,mouse_set_pka8g2_cpi0 
+0x579b 021685 beq mouse_dpi_level2 ,mouse_set_pka8g2_cpi1 
+0x579c 021686 beq mouse_dpi_level3 ,mouse_set_pka8g2_cpi2 
+0x579d 021687 beq mouse_dpi_level4 ,mouse_set_pka8g2_cpi3 
+:      021688 mouse_set_pka8g2_cpi1:
+0x579e 021689 fetch 1 ,mem_ka8g2_dpi_1 
+0x579f 021690 branch mouse_p3212_dpi 
+:      021692 mouse_set_pka8g2_cpi0:
+0x57a0 021693 fetch 1 ,mem_ka8g2_dpi_0 
+0x57a1 021694 branch mouse_p3212_dpi 
+:      021696 mouse_set_pka8g2_cpi2:
+0x57a2 021697 fetch 1 ,mem_ka8g2_dpi_2 
+0x57a3 021698 branch mouse_p3212_dpi 
+:      021700 mouse_set_pka8g2_cpi3:
+0x57a4 021701 fetch 1 ,mem_ka8g2_dpi_3 
+0x57a5 021702 branch mouse_p3212_dpi 
+:      021710 mouse_key:
+0x57a6 021711 call mouse_check_firekey_gpio 
+0x57a7 021712 fetch 1 ,mem_fire_key_flag 
+0x57a8 021713 nbranch fire_key_press ,blank 
+0x57a9 021714 fetch 1 ,mem_fire_key_status 
+0x57aa 021715 nbranch fire_key_process ,blank 
+0x57ab 021717 call mouse_check_key_gpio 
+0x57ac 021718 call mouse_ghost_key_check 
+0x57ad 021719 call mouse_set_mult 
+0x57ae 021720 call mouse_24g_key 
+0x57af 021721 copy rega ,pdata 
+0x57b0 021722 fetcht 1 ,mem_mouse_key_last 
+0x57b1 021723 store 1 ,mem_mouse_key_last 
+0x57b2 021724 store 1 ,mem_mouse_key 
+0x57b3 021725 ixor temp ,pdata 
+0x57b4 021726 sub pdata ,0 ,null 
+0x57b5 021727 rtn zero 
+0x57b6 021728 branch enable_user 
+:      021730 mouse_24g_key:
+0x57b7 021731 rtnmark0 mark_24g 
+0x57b8 021732 copy rega ,pdata 
+0x57b9 021733 rtn blank 
+0x57ba 021734 store 1 ,mem_mouse_key 
+0x57bb 021735 branch enable_user 
+:      021740 mouse_ghost_key_check:
+0x57bc 021741 jam 0 ,mem_mouse_matrix_key_cow_count 
+0x57bd 021742 jam 0 ,mem_mouse_matrix_key_row_count 
+0x57be 021743 jam 0 ,mem_mouse_ghost_flag 
+0x57bf 021744 copy pdata ,regb 
+0x57c0 021745 fetcht 1 ,mem_lbutton_gpio 
+0x57c1 021746 fetch 1 ,mem_bk_button_gpio 
+0x57c2 021747 isub temp ,null 
+0x57c3 021748 branch mouse_matrix_ghost_key_l_bk ,zero 
+0x57c4 021749 fetch 1 ,mem_fw_button_gpio 
+0x57c5 021750 isub temp ,null 
+0x57c6 021751 branch mouse_matrix_ghost_key_l_fw ,zero 
+0x57c7 021752 fetcht 1 ,mem_mbutton_gpio 
+0x57c8 021753 fetch 1 ,mem_bk_button_gpio 
+0x57c9 021754 isub temp ,null 
+0x57ca 021755 branch mouse_ghost_key_mbk_rfw ,zero 
+0x57cb 021756 branch mouse_ghost_key_mfw_rbk 
+:      021758 mouse_matrix_ghost_key_l_bk:
+0x57cc 021759 fetcht 1 ,mem_mbutton_gpio 
+0x57cd 021760 fetch 1 ,mem_fw_button_gpio 
+0x57ce 021761 isub temp ,null 
+0x57cf 021762 branch mouse_ghost_key_lbk_mfw ,zero 
+0x57d0 021763 branch mouse_ghost_key_lbk_rfw 
+:      021765 mouse_matrix_ghost_key_l_fw:
+0x57d1 021766 fetcht 1 ,mem_mbutton_gpio 
+0x57d2 021767 fetch 1 ,mem_bk_button_gpio 
+0x57d3 021768 isub temp ,null 
+0x57d4 021769 branch mouse_ghost_key_lfw_mbk ,zero 
+0x57d5 021770 branch mouse_ghost_key_lfw_rbk 
+:      021772 mouse_ghost_key_lbk_mfw:
+0x57d6 021773 call mouse_ghost_key_check_l_bk 
+0x57d7 021774 call mouse_ghost_key_check_m_fw 
+0x57d8 021775 branch mouse_ghost_key_check_next 
+:      021777 mouse_ghost_key_lbk_rfw:
+0x57d9 021778 call mouse_ghost_key_check_l_bk 
+0x57da 021779 branch mouse_ghost_key_rfw 
+:      021781 mouse_ghost_key_lfw_mbk:
+0x57db 021782 call mouse_ghost_key_check_l_fw 
+0x57dc 021783 call mouse_ghost_key_check_m_bk 
+0x57dd 021784 branch mouse_ghost_key_check_next 
+:      021786 mouse_ghost_key_lfw_rbk:
+0x57de 021787 call mouse_ghost_key_check_l_fw 
+0x57df 021788 branch mouse_ghost_key_rbk 
+:      021790 mouse_ghost_key_mbk_rfw:
+0x57e0 021791 call mouse_ghost_key_check_m_bk 
+:      021792 mouse_ghost_key_rfw:
+0x57e1 021793 call mouse_ghost_key_check_r_fw 
+0x57e2 021794 branch mouse_ghost_key_check_next 
+:      021796 mouse_ghost_key_mfw_rbk:
+0x57e3 021797 call mouse_ghost_key_check_m_fw 
+:      021798 mouse_ghost_key_rbk:
+0x57e4 021799 call mouse_ghost_key_check_r_bk 
+:      021800 mouse_ghost_key_check_next:
+0x57e5 021801 call mouse_ghost_key_check_bk_fw 
+0x57e6 021802 call mouse_ghost_key_check_lmr 
+0x57e7 021803 fetch 1 ,mem_mouse_matrix_key_row_count 
+0x57e8 021804 rtn blank 
+0x57e9 021805 fetch 1 ,mem_mouse_matrix_key_cow_count 
+0x57ea 021806 rtn blank 
+0x57eb 021807 jam 1 ,mem_mouse_ghost_flag 
+0x57ec 021808 fetch 1 ,mem_mouse_key_last 
+0x57ed 021809 copy pdata ,rega 
+0x57ee 021810 rtn 
+:      021812 mouse_ghost_key_check_l_bk:
+0x57ef 021813 and regb ,mouse_l_bk_button ,pdata 
+0x57f0 021814 beq mouse_l_bk_button ,mouse_matrix_cow_more_than_one_key 
+0x57f1 021815 rtn 
+:      021816 mouse_ghost_key_check_m_bk:
+0x57f2 021817 and regb ,mouse_l_bk_button ,pdata 
+0x57f3 021818 beq mouse_m_bk_button ,mouse_matrix_cow_more_than_one_key 
+0x57f4 021819 rtn 
+:      021820 mouse_ghost_key_check_r_bk:
+0x57f5 021821 and regb ,mouse_l_bk_button ,pdata 
+0x57f6 021822 beq mouse_r_bk_button ,mouse_matrix_cow_more_than_one_key 
+0x57f7 021823 rtn 
+:      021824 mouse_ghost_key_check_l_fw:
+0x57f8 021825 and regb ,mouse_l_bk_button ,pdata 
+0x57f9 021826 beq mouse_l_fw_button ,mouse_matrix_cow_more_than_one_key 
+0x57fa 021827 rtn 
+:      021828 mouse_ghost_key_check_m_fw:
+0x57fb 021829 and regb ,mouse_m_fw_button ,pdata 
+0x57fc 021830 beq mouse_m_fw_button ,mouse_matrix_cow_more_than_one_key 
+0x57fd 021831 rtn 
+:      021832 mouse_ghost_key_check_r_fw:
+0x57fe 021833 and regb ,mouse_m_fw_button ,pdata 
+0x57ff 021834 beq mouse_r_fw_button ,mouse_matrix_cow_more_than_one_key 
+0x5800 021835 rtn 
+:      021837 mouse_ghost_key_check_bk_fw:
+0x5801 021838 and regb ,mouse_bk_fw_button ,pdata 
+0x5802 021839 beq mouse_bk_fw_button ,mouse_matrix_row_more_than_one_key 
+0x5803 021840 rtn 
+:      021842 mouse_ghost_key_check_lmr:
+0x5804 021843 and temp ,mouse_lmr_button ,pdata 
+0x5805 021844 beq mouse_lr_button ,mouse_matrix_row_more_than_one_key 
+0x5806 021845 beq mouse_lm_button ,mouse_matrix_row_more_than_one_key 
+0x5807 021846 beq mouse_rm_button ,mouse_matrix_row_more_than_one_key 
+0x5808 021847 beq mouse_lmr_button ,mouse_matrix_row_more_than_one_key 
+0x5809 021848 rtn 
+:      021851 mouse_matrix_row_more_than_one_key:
+0x580a 021852 jam 1 ,mem_mouse_matrix_key_row_count 
+0x580b 021853 rtn 
+:      021855 mouse_matrix_cow_more_than_one_key:
+0x580c 021856 jam 1 ,mem_mouse_matrix_key_cow_count 
+0x580d 021857 rtn 
+:      021865 mouse_dpi_another_gpio_check:
+0x580e 021866 fetch mouse_flag_len ,mem_mouse_flag 
+0x580f 021867 rtnbit0 mouse_enable_double_dpi_key 
+0x5810 021868 bbit0 mouse_enable_another_dpi_key_connect_gnd ,mouse_dpi_another_gpio_connect_vin_check 
+:      021869 mouse_dpi_another_gpio_connect_gnd_check:
+0x5811 021870 fetch 1 ,mem_dpi_another_button_gpio 
+0x5812 021871 call mouse_gpio_config_output_high 
+0x5813 021872 call mouse_dpi_another_check 
+0x5814 021873 fetcht 1 ,mem_dpi_another_button_gpio 
+0x5815 021874 branch mouse_gpio_config_input_pu 
+:      021876 mouse_dpi_another_gpio_connect_vin_check:
+0x5816 021877 fetch 1 ,mem_dpi_another_button_gpio 
+0x5817 021878 call mouse_gpio_config_output_low 
+0x5818 021879 jam mouse_dpi_another_key ,mem_mouse_key_temp_patch 
+0x5819 021880 fetcht 1 ,mem_dpi_another_button_gpio 
+0x581a 021881 fetch 1 ,mem_dpi_another_press_status 
+0x581b 021882 call mouse_check_key_connect_vin_new 
+0x581c 021883 call mouse_dpi_another_state_check 
+0x581d 021884 fetcht 1 ,mem_dpi_another_button_gpio 
+0x581e 021885 branch mouse_gpio_config_input_pu 
+:      021887 mouse_dpi_another_down_new:
+0x581f 021888 call mouse_gpio_config_input_pu 
+0x5820 021889 fetch 1 ,mem_dpi_another_button_state 
+0x5821 021890 rtneq dpi_button_state_down 
+0x5822 021891 jam dpi_button_state_down ,mem_dpi_another_button_state 
+0x5823 021892 branch mouse_dpi_process 
+:      021894 mouse_dpi_another_check:
+0x5824 021895 jam mouse_dpi_another_key ,mem_mouse_key_temp_patch 
+0x5825 021896 fetcht 1 ,mem_dpi_another_button_gpio 
+0x5826 021897 fetch 1 ,mem_dpi_another_press_status 
+0x5827 021898 call mouse_check_key_connect_gnd_new 
+:      021899 mouse_dpi_another_state_check:
+0x5828 021900 store 1 ,mem_dpi_another_press_status 
+0x5829 021901 fetch 1 ,mem_dpi_another_button_down_enable 
+0x582a 021902 branch mouse_dpi_another_up ,blank 
+:      021903 mouse_dpi_another_down:
+0x582b 021904 fetch 1 ,mem_dpi_another_button_state 
+0x582c 021905 rtneq dpi_button_state_down 
+0x582d 021906 jam dpi_button_state_down ,mem_dpi_another_button_state 
+0x582e 021907 branch mouse_dpi_process 
+:      021909 mouse_dpi_another_up:
+0x582f 021910 fetch 1 ,mem_dpi_another_button_state 
+0x5830 021911 rtneq dpi_button_state_up 
+0x5831 021912 jam dpi_button_state_up ,mem_dpi_another_button_state 
+0x5832 021913 rtn 
+:      021915 mouse_check_key_connect_gnd_new:
+0x5833 021916 lshift pdata ,pdata 
+0x5834 021917 copy pdata ,regb 
+0x5835 021918 call gpio_get_bit 
+0x5836 021919 setflag true ,0 ,regb 
+0x5837 021920 and regb ,0x07 ,pdata 
+0x5838 021921 fetcht 1 ,mem_mouse_key_temp_patch 
+0x5839 021922 copy temp ,queue 
+0x583a 021923 beq 0x07 ,mouse_another_dpi_key_press 
+0x583b 021924 beq 0x00 ,mouse_another_dpi_key_release 
+0x583c 021925 rtn 
+:      021927 mouse_check_key_connect_vin_new:
+0x583d 021928 lshift pdata ,pdata 
+0x583e 021929 copy pdata ,regb 
+0x583f 021930 call mouse_gpio_config_input_pd 
+0x5840 021931 call gpio_get_bit 
+0x5841 021932 setflag true ,0 ,regb 
+0x5842 021933 and regb ,0x07 ,pdata 
+0x5843 021934 fetcht 1 ,mem_mouse_key_temp_patch 
+0x5844 021935 copy temp ,queue 
+0x5845 021936 beq 0x07 ,mouse_another_dpi_key_press 
+0x5846 021937 beq 0x00 ,mouse_another_dpi_key_release 
+0x5847 021938 rtn 
+:      021940 mouse_another_dpi_key_press:
+0x5848 021941 jam 1 ,mem_dpi_another_button_down_enable 
+0x5849 021942 rtn 
+:      021943 mouse_another_dpi_key_release:
+0x584a 021944 jam 0 ,mem_dpi_another_button_down_enable 
+0x584b 021945 rtn 
+:      021953 mouse_check_firekey_gpio:
+0x584c 021954 arg 0 ,regb 
+0x584d 021955 fetch 1 ,mem_firebutton_gpio 
+0x584e 021956 rtneq gpio_disable 
+0x584f 021957 fetch mouse_flag_len ,mem_mouse_flag 
+0x5850 021958 bbit0 mouse_enable_fire_key_connect_gnd ,mouse_check_firekey_connect_vin 
+:      021959 mouse_check_firekey_connect_gnd:
+0x5851 021960 fetcht 1 ,mem_firebutton_gpio 
+0x5852 021961 call mouse_gpio_config_input_pu 
+0x5853 021962 fetcht 1 ,mem_firebutton_gpio 
+0x5854 021963 call gpio_get_bit 
+0x5855 021964 setflag true ,0 ,regb 
+:      021965 mouse_firekey_state_store:
+0x5856 021966 copy regb ,pdata 
+0x5857 021967 store 1 ,mem_fire_key_flag 
+0x5858 021968 rtn 
+:      021970 mouse_check_firekey_connect_vin:
+0x5859 021971 fetcht 1 ,mem_firebutton_gpio 
+0x585a 021972 call mouse_gpio_config_input_pd 
+0x585b 021973 fetcht 1 ,mem_firebutton_gpio 
+0x585c 021974 call gpio_get_bit 
+0x585d 021975 nsetflag true ,0 ,regb 
+0x585e 021976 branch mouse_firekey_state_store 
+:      021978 fire_key_process:
+0x585f 021979 beq 4 ,fire_key_process_end 
+:      021980 fire_key_press:
+0x5860 021981 call firekey_clkn_bt_timer_check 
+0x5861 021982 fetch 4 ,mem_fire_key_delay 
+0x5862 021983 arg 0xa0 ,temp 
+0x5863 021984 iadd temp ,temp 
+0x5864 021985 copy clkn_bt ,pdata 
+0x5865 021986 isub temp ,null 
+0x5866 021987 nrtn positive 
+0x5867 021988 store 4 ,mem_fire_key_delay 
+0x5868 021989 fetch 1 ,mem_fire_key_status 
+0x5869 021990 beq 0 ,fire_key_process_start 
+0x586a 021991 beq 1 ,fire_key_process_release1 
+0x586b 021992 beq 2 ,fire_key_process_start2 
+0x586c 021993 beq 3 ,fire_key_process_release2 
+0x586d 021994 rtn 
+:      021996 fire_key_process_start:
+0x586e 021997 jam 1 ,mem_fire_key_status 
+:      021998 fire_key_down:
+0x586f 021999 jam 1 ,mem_mouse_key 
+0x5870 022000 branch enable_user 
+:      022002 fire_key_process_release1:
+0x5871 022003 jam 2 ,mem_fire_key_status 
+:      022004 fire_key_release:
+0x5872 022005 jam 0 ,mem_mouse_key 
+0x5873 022006 branch enable_user 
+:      022008 fire_key_process_start2:
+0x5874 022009 jam 3 ,mem_fire_key_status 
+0x5875 022010 branch fire_key_down 
+:      022012 fire_key_process_release2:
+0x5876 022013 jam 0 ,mem_fire_key_status 
+0x5877 022014 branch fire_key_release 
+:      022016 fire_key_process_end:
+0x5878 022017 jam 0 ,mem_fire_key_status 
+0x5879 022018 jam 0 ,mem_mouse_key 
+0x587a 022019 rtn 
+:      022021 firekey_clkn_bt_timer_check:
+0x587b 022022 fetcht 4 ,mem_fire_key_delay 
+0x587c 022023 copy clkn_bt ,pdata 
+0x587d 022024 isub temp ,null 
+0x587e 022025 ncall firekey_clkn_bt_timer_timeout ,positive 
+0x587f 022026 rtn 
+:      022027 firekey_clkn_bt_timer_timeout:
+0x5880 022028 setarg 0 
+0x5881 022029 store 4 ,mem_fire_key_delay 
+0x5882 022030 rtn 
+:      022038 mouse_key_check_once:
+0x5883 022039 call mouse_check_key_gpio_once 
+0x5884 022040 call mouse_check_key_gpio 
+0x5885 022041 setarg 0x00 
+0x5886 022042 store 3 ,mem_mouse_lkey_press_status 
+0x5887 022043 rtn 
+:      022045 mouse_check_key_gpio:
+0x5888 022046 bpatch patch0f_6 ,mem_patch0f 
+0x5889 022047 fetch 1 ,mem_sensor_shutdown_flag 
+0x588a 022048 ncall mouse_check_key_gpio_once ,blank 
+0x588b 022049 arg 0 ,rega 
+0x588c 022050 call mouse_check_lkey_gpio 
+0x588d 022051 call mouse_check_rkey_gpio 
+0x588e 022052 call mouse_check_mkey_gpio 
+0x588f 022053 call mouse_check_bkkey_gpio 
+0x5890 022054 call mouse_check_fwkey_gpio 
+0x5891 022055 call mouse_check_firekey_gpio 
+0x5892 022056 call mouse_check_customerkey_gpio 
+0x5893 022057 copy rega ,pdata 
+0x5894 022058 rtn 
+:      022060 mouse_check_key_gpio_once:
+0x5895 022061 setarg 0x030303 
+0x5896 022062 store 3 ,mem_mouse_lkey_press_status 
+0x5897 022063 rtn 
+:      022065 mouse_check_lkey_gpio:
+0x5898 022066 fetch 1 ,mem_lbutton_gpio 
+0x5899 022067 call mouse_gpio_config_output_high 
+0x589a 022068 jam mouse_l_key ,mem_mouse_key_temp 
+0x589b 022069 fetcht 1 ,mem_lbutton_gpio 
+0x589c 022070 fetch 1 ,mem_mouse_lkey_press_status 
+0x589d 022071 call mouse_check_key_connect_gnd 
+0x589e 022072 store 1 ,mem_mouse_lkey_press_status 
+0x589f 022073 fetcht 1 ,mem_lbutton_gpio 
+0x58a0 022074 branch mouse_gpio_config_input_pu 
+:      022076 mouse_check_rkey_gpio:
+0x58a1 022077 fetch 1 ,mem_rbutton_gpio 
+0x58a2 022078 call mouse_gpio_config_output_high 
+0x58a3 022079 jam mouse_r_key ,mem_mouse_key_temp 
+0x58a4 022080 fetcht 1 ,mem_rbutton_gpio 
+0x58a5 022081 fetch 1 ,mem_mouse_rkey_press_status 
+0x58a6 022082 call mouse_check_key_connect_gnd 
+0x58a7 022083 store 1 ,mem_mouse_rkey_press_status 
+0x58a8 022084 fetcht 1 ,mem_rbutton_gpio 
+0x58a9 022085 branch mouse_gpio_config_input_pu 
+:      022087 mouse_check_mkey_gpio:
+0x58aa 022088 fetch 1 ,mem_mbutton_gpio 
+0x58ab 022089 call mouse_gpio_config_output_high 
+0x58ac 022090 jam mouse_m_key ,mem_mouse_key_temp 
+0x58ad 022091 fetcht 1 ,mem_mbutton_gpio 
+0x58ae 022092 fetch 1 ,mem_mouse_mkey_press_status 
+0x58af 022093 call mouse_check_key_connect_gnd 
+0x58b0 022094 store 1 ,mem_mouse_mkey_press_status 
+0x58b1 022095 fetcht 1 ,mem_mbutton_gpio 
+0x58b2 022096 branch mouse_gpio_config_input_pu 
+:      022098 mouse_check_bkkey_gpio:
+0x58b3 022099 fetch 1 ,mem_bk_button_gpio 
+0x58b4 022100 rtneq gpio_disable 
+0x58b5 022101 jam mouse_bk_key ,mem_mouse_key_temp 
+0x58b6 022102 fetch 1 ,mem_mouse_bkkey_press_status 
+0x58b7 022103 copy pdata ,regc 
+0x58b8 022104 fetcht 1 ,mem_bk_button_gpio 
+0x58b9 022105 fetch 1 ,mem_matrix_public_gpio 
+0x58ba 022106 beq gpio_disable ,mouse_3io6key_bk_check 
+0x58bb 022107 call gpio_get_bit 
+0x58bc 022108 branch mouse_check_bk_button_connect_gnd ,true 
+0x58bd 022109 fetcht 1 ,mem_matrix_public_gpio 
+0x58be 022110 call gpio_out_active 
+0x58bf 022111 fetcht 1 ,mem_bk_button_gpio 
+0x58c0 022112 fetch 1 ,mem_mouse_bkkey_press_status 
+0x58c1 022113 call mouse_check_key_connect_gnd 
+:      022114 mouse_check_bkkey_gpio_end:
+0x58c2 022115 store 1 ,mem_mouse_bkkey_press_status 
+0x58c3 022116 branch mouse_matrix_public_gpio_reset 
+:      022118 mouse_check_bk_button_connect_gnd:
+0x58c4 022119 fetcht 1 ,mem_matrix_public_gpio 
+0x58c5 022120 fetch 1 ,mem_mouse_bkkey_press_status 
+0x58c6 022121 call mouse_check_key_connect_gnd 
+0x58c7 022122 branch mouse_check_bkkey_gpio_end 
+:      022124 mouse_3io6key_bk_check:
+0x58c8 022125 fetch 1 ,mem_bk_button_gpio 
+0x58c9 022126 call mouse_gpio_config_output_low 
+0x58ca 022127 fetcht 1 ,mem_bk_button_gpio 
+0x58cb 022128 call mouse_3io6key_check 
+0x58cc 022129 store 1 ,mem_mouse_bkkey_press_status 
+0x58cd 022130 fetcht 1 ,mem_bk_button_gpio 
+0x58ce 022131 branch mouse_gpio_config_input_pu 
+:      022134 mouse_check_fwkey_gpio:
+0x58cf 022135 fetch 1 ,mem_fw_button_gpio 
+0x58d0 022136 rtneq gpio_disable 
+0x58d1 022137 jam mouse_fw_key ,mem_mouse_key_temp 
+0x58d2 022138 fetch 1 ,mem_mouse_fwkey_press_status 
+0x58d3 022139 copy pdata ,regc 
+0x58d4 022140 fetcht 1 ,mem_fw_button_gpio 
+0x58d5 022141 fetch 1 ,mem_matrix_public_gpio 
+0x58d6 022142 beq gpio_disable ,mouse_3io6key_fw_check 
+0x58d7 022143 call gpio_get_bit 
+0x58d8 022144 branch mouse_check_fw_button_connect_gnd ,true 
+0x58d9 022145 fetcht 1 ,mem_matrix_public_gpio 
+0x58da 022146 call gpio_out_active 
+0x58db 022147 fetcht 1 ,mem_fw_button_gpio 
+0x58dc 022148 fetch 1 ,mem_mouse_fwkey_press_status 
+0x58dd 022149 call mouse_check_key_connect_gnd 
+:      022150 mouse_check_fwkey_gpio_end:
+0x58de 022151 store 1 ,mem_mouse_fwkey_press_status 
+:      022152 mouse_matrix_public_gpio_reset:
+0x58df 022153 fetcht 1 ,mem_matrix_public_gpio 
+0x58e0 022154 branch mouse_gpio_config_input_pu 
+:      022156 mouse_check_fw_button_connect_gnd:
+0x58e1 022157 fetcht 1 ,mem_matrix_public_gpio 
+0x58e2 022158 fetch 1 ,mem_mouse_fwkey_press_status 
+0x58e3 022159 call mouse_check_key_connect_gnd 
+0x58e4 022160 branch mouse_check_fwkey_gpio_end 
+:      022162 mouse_3io6key_fw_check:
+0x58e5 022163 fetch 1 ,mem_fw_button_gpio 
+0x58e6 022164 call mouse_gpio_config_output_low 
+0x58e7 022165 fetcht 1 ,mem_fw_button_gpio 
+0x58e8 022166 call mouse_3io6key_check 
+0x58e9 022167 store 1 ,mem_mouse_fwkey_press_status 
+0x58ea 022168 fetcht 1 ,mem_fw_button_gpio 
+0x58eb 022169 branch mouse_gpio_config_input_pu 
+:      022171 mouse_check_customerkey_gpio:
+0x58ec 022172 jam 0 ,mem_customer_key 
+0x58ed 022173 fetch 1 ,mem_customer_key_gpio 
+0x58ee 022174 rtneq gpio_disable 
+0x58ef 022175 fetch mouse_flag_len ,mem_mouse_flag 
+0x58f0 022176 rtnbit0 mouse_enable_keyboard 
+0x58f1 022177 bbit1 mouse_enable_customer_key_connect_vin_or_matrix ,mouse_customer_key_connect_vin 
+:      022178 mouse_customer_key_connect_gnd:
+0x58f2 022179 jam mouse_customer_key ,mem_mouse_key_temp 
+0x58f3 022180 fetcht 1 ,mem_customer_key_gpio 
+0x58f4 022181 fetch 1 ,mem_mouse_customerkey_press_status 
+0x58f5 022182 call mouse_check_key_connect_gnd 
+0x58f6 022183 store 1 ,mem_mouse_customerkey_press_status 
+:      022184 mouse_check_customerkey_gpio_next:
+0x58f7 022185 copy rega ,pdata 
+0x58f8 022186 bbit1 mouse_customer_key ,mouse_customerkey_press 
+0x58f9 022187 call mouse_customerkey_release 
+:      022188 mouse_check_customerkey_gpio_exit:
+0x58fa 022189 fetch 1 ,mem_customer_data_trigger 
+0x58fb 022190 store 1 ,mem_customer_data_trigger_last 
+0x58fc 022191 rtn 
+:      022193 mouse_customer_key_connect_vin:
+0x58fd 022194 jam mouse_customer_key ,mem_mouse_key_temp 
+0x58fe 022195 fetch 1 ,mem_mouse_customerkey_press_status 
+0x58ff 022196 copy pdata ,regc 
+0x5900 022197 fetcht 1 ,mem_customer_key_gpio 
+0x5901 022198 fetch 1 ,mem_matrix_public_gpio 
+0x5902 022199 beq gpio_disable ,mouse_3io6key_customer_key_check_vin 
+0x5903 022200 call gpio_get_bit 
+0x5904 022201 branch mouse_check_customer_button_connect_gnd ,true 
+0x5905 022202 fetcht 1 ,mem_matrix_public_gpio 
+0x5906 022203 call gpio_out_active 
+0x5907 022204 fetcht 1 ,mem_customer_key_gpio 
+0x5908 022205 fetch 1 ,mem_mouse_customerkey_press_status 
+0x5909 022206 call mouse_check_key_connect_gnd 
+0x590a 022207 branch mouse_check_customerkey_gpio_over 
+:      022209 mouse_check_customer_button_connect_gnd:
+0x590b 022210 fetcht 1 ,mem_matrix_public_gpio 
+0x590c 022211 fetch 1 ,mem_mouse_customerkey_press_status 
+0x590d 022212 call mouse_check_key_connect_gnd 
+0x590e 022213 branch mouse_check_customerkey_gpio_over 
+:      022215 mouse_3io6key_customer_key_check_vin:
+0x590f 022216 fetch 1 ,mem_customer_key_gpio 
+0x5910 022217 call mouse_gpio_config_output_low 
+0x5911 022218 fetcht 1 ,mem_customer_key_gpio 
+0x5912 022219 call mouse_3io6key_check 
+:      022220 mouse_check_customerkey_gpio_over:
+0x5913 022221 store 1 ,mem_mouse_customerkey_press_status 
+0x5914 022222 call mouse_check_customerkey_gpio_next 
+0x5915 022223 fetcht 1 ,mem_customer_key_gpio 
+0x5916 022224 branch mouse_gpio_config_input_pu 
+:      022227 mouse_customerkey_press:
+0x5917 022228 jam 1 ,mem_customer_data_trigger 
+0x5918 022229 call mouse_customer_key_need_send 
+0x5919 022230 branch mouse_check_customerkey_gpio_exit 
+:      022232 mouse_customerkey_release:
+0x591a 022233 jam 0 ,mem_customer_data_trigger 
+0x591b 022234 fetch 1 ,mem_customer_data_trigger_last 
+0x591c 022235 rtn blank 
+:      022236 mouse_customer_key_need_send:
+0x591d 022237 jam 1 ,mem_customer_key 
+0x591e 022238 rtn 
+:      022242 mouse_check_matrix_button_connect_gnd:
+0x591f 022243 call gpio_get_bit 
+0x5920 022244 fetcht 1 ,mem_mouse_key_temp 
+0x5921 022245 copy temp ,queue 
+0x5922 022246 branch mouse_key_press ,true 
+:      022247 mouse_key_release:
+0x5923 022248 qset0 rega 
+0x5924 022249 rtn 
+:      022251 mouse_check_key_connect_gnd:
+0x5925 022252 lshift pdata ,pdata 
+0x5926 022253 copy pdata ,regb 
+0x5927 022254 call gpio_get_bit 
+0x5928 022255 setflag true ,0 ,regb 
+:      022256 mouse_check_key_connect_gnd_1:
+0x5929 022257 and regb ,0x07 ,pdata 
+:      022258 mouse_check_key_connect_gnd_next:
+0x592a 022259 fetcht 1 ,mem_mouse_key_temp 
+0x592b 022260 copy temp ,queue 
+0x592c 022261 beq 0x07 ,mouse_key_press 
+0x592d 022262 beq 0x00 ,mouse_key_release 
+0x592e 022263 rtn 
+:      022265 mouse_key_press:
+0x592f 022266 qset1 rega 
+0x5930 022267 rtn 
+:      022269 mouse_3io6key_check:
+0x5931 022270 bpatch patch0f_7 ,mem_patch0f 
+0x5932 022271 copy regc ,pdata 
+0x5933 022272 store 1 ,mem_mouse_key_status 
+0x5934 022273 lshift pdata ,pdata 
+0x5935 022274 copy pdata ,regb 
+0x5936 022275 copy temp ,regc 
+0x5937 022276 call mouse_gpio_config_input_pd 
+0x5938 022277 copy regc ,temp 
+0x5939 022278 call gpio_get_bit 
+0x593a 022279 nsetflag true ,0 ,regb 
+0x593b 022280 call mouse_check_press 
+0x593c 022281 branch mouse_check_key_connect_gnd_next 
+:      022283 mouse_check_press:
+0x593d 022284 fetcht 1 ,mem_mouse_key_status 
+0x593e 022285 and_into 0x01 ,temp 
+0x593f 022286 and regb ,0x01 ,pdata 
+0x5940 022287 isub temp ,null 
+0x5941 022288 nbranch mouse_current_mult_update ,zero 
+0x5942 022289 rtn 
+:      022293 mouse_gpio_config_output_high:
+0x5943 022294 rtneq gpio_disable 
+0x5944 022295 arg gpcfg_output_high ,temp 
+0x5945 022296 branch gpio_config_function_int 
+:      022299 mouse_gpio_config_output_low:
+0x5946 022300 rtneq gpio_disable 
+0x5947 022301 arg gpcfg_output_low ,temp 
+0x5948 022302 branch gpio_config_function_int 
+:      022307 mouse_init_sunt:
+0x5949 022308 bpatch patch10_0 ,mem_patch10 
+0x594a 022309 call mouse_sensor_spi_init 
+0x594b 022310 rtn wake 
+:      022311 mouse_init_sensor_wakeup:
+0x594c 022312 call mouse_sensor_poweron 
+:      022313 mouse_init_sensor:
+0x594d 022314 bpatch patch10_1 ,mem_patch10 
+0x594e 022315 call mouse_read_sensor_id 
+0x594f 022316 beq p32xx_id1 ,mouse_init_p32xx_id2_judge 
+0x5950 022317 beq p3065_id1 ,mouse_init_p3065 
+0x5951 022318 beq pka8g2_id1 ,mouse_ka8g2_id2_judge 
+0x5952 022319 call mouse_twspi_reset 
+0x5953 022320 nop 6900 
+0x5954 022321 branch mouse_init_sensor 
+:      022322 mouse_twspi_reset:
+0x5955 022323 fetcht 1 ,mem_mouse_sensor_sclk_gpio 
+0x5956 022324 call twspi_reset 
+0x5957 022325 branch mouse_spid_init_pin 
+:      022327 mouse_read_sensor_id:
+0x5958 022328 setarg pan_reg_pid_h 
+0x5959 022329 call twspi_read 
+0x595a 022330 store 1 ,mem_sensor_id2 
+0x595b 022331 setarg pan_reg_pid_l 
+0x595c 022332 call twspi_read 
+0x595d 022333 store 1 ,mem_sensor_id1 
+0x595e 022334 rtn 
+:      022336 mouse_init_p32xx_id2_judge:
+0x595f 022337 fetch 1 ,mem_sensor_id2 
+0x5960 022338 beq p_mx8650 ,mouse_mx8650_init_param 
+0x5961 022339 beq p8009_id2 ,mouse_8009_init_param 
+0x5962 022340 beq p3205_tj3t_id2 ,mouse_s210x_3205_3t_judge 
+0x5963 022341 beq p3204_tj3l_id2 ,mouse_3204_3l_init_param 
+0x5964 022342 beq p3212_id2 ,mouse_3212_init_param 
+0x5965 022343 beq pka8_id2 ,mouse_ka8_init_param_check 
+0x5966 022344 beq p6520a_id2 ,mouse_p6520_init_param 
+0x5967 022345 branch mouse_init_sensor 
+:      022347 mouse_s210x_3205_3t_judge:
+0x5968 022348 setarg 0x49 
+0x5969 022349 call twspi_read 
+0x596a 022350 beq 0xa1 ,mouse_s201x_init_param 
+0x596b 022351 branch mouse_3205_3t_init_param 
+:      022353 mouse_s201x_init_param:
+0x596c 022354 jam s201x ,mem_config_sensor_type 
+0x596d 022355 rtn 
+:      022357 mouse_mx8650_init_param:
+0x596e 022358 jam mx8650 ,mem_config_sensor_type 
+0x596f 022359 call mouse_sensor_reset 
+0x5970 022360 call delay_10ms 
+0x5971 022361 arg mem_sensor_8650_init ,regc 
+0x5972 022362 call mouse_sensor_wr_seq 
+0x5973 022363 branch mouse_setting_sensor_type 
+:      022365 mouse_8009_init_param:
+0x5974 022366 setarg 0x16 
+0x5975 022367 call twspi_read 
+0x5976 022368 sub pdata ,0xbd ,null 
+0x5977 022369 nbranch mouse_init_sunt ,zero 
+0x5978 022370 setarg 0x19 
+0x5979 022371 call twspi_read 
+0x597a 022372 sub pdata ,0x55 ,null 
+0x597b 022373 nbranch mouse_init_sunt ,zero 
+0x597c 022374 setarg 0x1b 
+0x597d 022375 call twspi_read 
+0x597e 022376 sub pdata ,0x1d ,null 
+0x597f 022377 nbranch mouse_init_sunt ,zero 
+0x5980 022378 jam p8009 ,mem_config_sensor_type 
+0x5981 022379 arg mem_sensor_8009_init ,regc 
+0x5982 022380 branch mouse_sensor_wr_seq 
+:      022382 mouse_3205_3t_init_param:
+0x5983 022383 jam p3205 ,mem_config_sensor_type 
+0x5984 022384 arg mem_sensor_3205_init ,regc 
+0x5985 022385 call mouse_sensor_wr_seq 
+0x5986 022386 arg mem_sensor_32xx_init ,regc 
+0x5987 022387 call mouse_sensor_wr_seq 
+0x5988 022388 setarg 0x0943 
+0x5989 022389 call twspi_write 
+0x598a 022390 arg mem_sensor_32xx_init_1 ,regc 
+0x598b 022391 branch mouse_sensor_wr_seq 
+:      022393 mouse_3204_3l_init_param:
+0x598c 022394 jam p3204 ,mem_config_sensor_type 
+0x598d 022395 arg mem_sensor_3204_init ,regc 
+0x598e 022396 call mouse_sensor_wr_seq 
+0x598f 022397 arg mem_sensor_32xx_init ,regc 
+0x5990 022398 call mouse_sensor_wr_seq 
+0x5991 022399 arg mem_sensor_32xx_init_1 ,regc 
+0x5992 022400 branch mouse_sensor_wr_seq 
+:      022402 mouse_3212_init_param:
+0x5993 022403 jam p3212 ,mem_config_sensor_type 
+0x5994 022404 arg mem_sensor_3212_init ,regc 
+:      022405 mouse_sensor_wr_seq:
+0x5995 022406 ifetch 2 ,regc 
+0x5996 022407 arg 0xffff ,temp 
+0x5997 022408 isub temp ,null 
+0x5998 022409 rtn zero 
+0x5999 022410 call twspi_write 
+0x599a 022411 increase 2 ,regc 
+0x599b 022412 branch mouse_sensor_wr_seq 
+:      022414 mouse_ka8_init_param_check:
+0x599c 022415 call mouse_sensor_disable_wp 
+0x599d 022416 setarg 0x9a5b 
+0x599e 022417 call twspi_write 
+0x599f 022418 setarg 0x0d 
+0x59a0 022419 call twspi_read 
+0x59a1 022420 sub pdata ,0x12 ,null 
+0x59a2 022421 branch mouse_ka8ul_init_param ,zero 
+0x59a3 022422 sub pdata ,0x0a ,null 
+0x59a4 022423 nbranch mouse_ka8hd_sensor_judge ,zero 
+0x59a5 022424 setarg 0x0e 
+0x59a6 022425 call twspi_read 
+0x59a7 022426 sub pdata ,0xe5 ,null 
+0x59a8 022427 nbranch mouse_init_sensor ,zero 
+0x59a9 022428 setarg 0x10 
+0x59aa 022429 call twspi_read 
+0x59ab 022430 sub pdata ,0xa5 ,null 
+0x59ac 022431 branch mouse_ka8ul_init_param ,zero 
+0x59ad 022432 call mouse_enable_ka8_sensor_wp 
+:      022433 mouse_ka8_init_param:
+0x59ae 022434 jam ka8 ,mem_config_sensor_type 
+0x59af 022435 rtn 
+:      022436 mouse_ka8ul_init_param:
+0x59b0 022437 jam ka8_ul ,mem_config_sensor_type 
+0x59b1 022438 arg mem_sensor_ka8ul_init ,regc 
+0x59b2 022439 branch mouse_sensor_wr_seq 
+:      022440 mouse_ka8hd_sensor_judge:
+0x59b3 022441 sub pdata ,0x10 ,null 
+0x59b4 022442 nbranch mouse_init_sensor ,zero 
+0x59b5 022443 setarg 0x0e 
+0x59b6 022444 call twspi_read 
+0x59b7 022445 sub pdata ,0xc5 ,null 
+0x59b8 022446 nbranch mouse_init_sensor ,zero 
+0x59b9 022447 setarg 0x10 
+0x59ba 022448 call twspi_read 
+0x59bb 022449 sub pdata ,0x38 ,null 
+0x59bc 022450 nbranch mouse_init_sensor ,zero 
+:      022451 mouse_ka8hd_init_param:
+0x59bd 022452 call mouse_enable_ka8_sensor_wp 
+0x59be 022453 jam ka8_hd ,mem_config_sensor_type 
+0x59bf 022454 rtn 
+:      022455 mouse_enable_ka8_sensor_wp:
+0x59c0 022456 setarg 0x005b 
+0x59c1 022457 call twspi_write 
+0x59c2 022458 branch mouse_sensor_enable_wp 
+:      022460 mouse_p6520_init_param:
+0x59c3 022461 jam p6520 ,mem_config_sensor_type 
+0x59c4 022462 arg mem_sensor_p6520_init ,regc 
+0x59c5 022463 branch mouse_sensor_wr_seq 
+:      022465 mouse_init_p3065:
+0x59c6 022466 call mouse_sensor_poweron 
+0x59c7 022467 fetch 1 ,mem_sensor_id2 
+0x59c8 022468 beq p3065_xy_id2 ,mouse_p3065xy_init_param 
+0x59c9 022469 beq p3065_id2 ,mouse_p3065_init_param 
+0x59ca 022470 branch mouse_init_sensor 
+:      022472 mouse_p3065_init_param:
+0x59cb 022473 jam p3065 ,mem_config_sensor_type 
+0x59cc 022474 rtn 
+:      022476 mouse_p3065xy_init_param:
+0x59cd 022477 jam p3065_xy ,mem_config_sensor_type 
+0x59ce 022478 rtn 
+:      022480 mouse_ka8g2_id2_judge:
+0x59cf 022481 call mouse_sensor_poweron 
+0x59d0 022482 fetch 1 ,mem_sensor_id2 
+0x59d1 022483 beq pka8g2_id2 ,mouse_ka8g2_init_param 
+0x59d2 022484 branch mouse_init_p32xx_id2_judge 
+:      022485 mouse_ka8g2_init_param:
+0x59d3 022486 jam ka8g2 ,mem_config_sensor_type 
+0x59d4 022487 arg mem_sensor_ka8g2_init ,regc 
+0x59d5 022488 branch mouse_sensor_wr_seq 
+:      022490 mouse_sensor_enable_wp:
+0x59d6 022491 setarg 0x0009 
+0x59d7 022492 branch twspi_write 
+:      022493 mouse_sensor_disable_wp:
+0x59d8 022494 setarg 0x5a09 
+0x59d9 022495 branch twspi_write 
+:      022497 mouse_sensor_reset:
+0x59da 022498 arg 0x8006 ,temp 
+0x59db 022499 fetch 1 ,mem_config_sensor_type 
+0x59dc 022500 bne ka8g2 ,mouse_sensor_reset_end 
+0x59dd 022501 arg 0x9706 ,temp 
+:      022502 mouse_sensor_reset_end:
+0x59de 022503 copy temp ,pdata 
+0x59df 022504 call twspi_write 
+0x59e0 022505 nop 12000 
+0x59e1 022506 rtn 
+:      022508 mouse_sensor_poweron_init:
+0x59e2 022509 arg mem_sensor_poweron_init ,regc 
+0x59e3 022510 fetch 1 ,mem_config_sensor_type 
+0x59e4 022511 rtnne ka8g2 
+0x59e5 022512 arg mem_sensor_ka8g2_poweron_init ,regc 
+0x59e6 022513 rtn 
+:      022515 mouse_sensor_poweron:
+0x59e7 022516 bpatch patch10_2 ,mem_patch10 
+0x59e8 022517 call mouse_sensor_spi_init 
+0x59e9 022518 call mouse_sensor_reset 
+0x59ea 022519 call mouse_sensor_poweron_init 
+0x59eb 022520 call mouse_sensor_wr_seq 
+0x59ec 022521 branch mouse_setting_sensor_type 
+:      022523 mouse_sensor_powerdown:
+0x59ed 022524 bpatch patch10_3 ,mem_patch10 
+0x59ee 022525 call mouse_init_sunt 
+0x59ef 022526 call mouse_sensor_spi_init 
+0x59f0 022527 arg 0x0806 ,temp 
+0x59f1 022528 fetch 1 ,mem_config_sensor_type 
+0x59f2 022529 bne ka8g2 ,mouse_sensor_powerdown_end 
+0x59f3 022530 arg 0x1f06 ,temp 
+:      022531 mouse_sensor_powerdown_end:
+0x59f4 022532 copy temp ,pdata 
+0x59f5 022533 branch twspi_write 
+:      022539 mouse_check_sensor_data:
+0x59f6 022540 fetch 1 ,mem_spi_write_flash_sm 
+0x59f7 022541 rtnne flash_sm_no_buys 
+0x59f8 022542 fetch 1 ,mem_config_sensor_type 
+0x59f9 022543 beq p3205 ,mouse_p32xx_sensor_motion 
+0x59fa 022544 beq p3065 ,mouse_p32xx_sensor_motion 
+0x59fb 022545 beq ka8 ,mouse_p32xx_sensor_motion 
+0x59fc 022546 beq p3204 ,mouse_p32xx_sensor_motion 
+0x59fd 022547 beq p3212 ,mouse_p3212_sensor_motion 
+0x59fe 022548 beq p3065_xy ,mouse_p32xx_sensor_motion 
+0x59ff 022549 beq p8009 ,mouse_p8009_sensor_motion 
+0x5a00 022550 beq ka8g2 ,mouse_pka8g2_sensor_motion 
+0x5a01 022551 branch mouse_p32xx_sensor_motion 
+:      022554 mouse_p32xx_sensor_motion:
+0x5a02 022555 call mouse_clear_sensor_data 
+0x5a03 022556 disable user 
+0x5a04 022557 fetch 1 ,mem_sensor_motion_gpio 
+0x5a05 022558 beq gpio_disable ,mouse_p32xx_sensor_motion_2 
+0x5a06 022559 fetcht 1 ,mem_sensor_motion_gpio 
+0x5a07 022560 call gpio_get_bit 
+0x5a08 022561 nrtn true 
+:      022562 mouse_p32xx_sensor_motion_2:
+0x5a09 022563 setarg pan_reg_pid_l 
+0x5a0a 022564 call twspi_read 
+0x5a0b 022565 bne p32xx_id1 ,mouse_p3065_judge 
+:      022566 mouse_p32xx_sensor_motion_1:
+0x5a0c 022567 setarg pan_reg_motion_staus 
+0x5a0d 022568 call twspi_read 
+0x5a0e 022569 rtnbit0 7 
+0x5a0f 022570 call mouse_read_sensor_common 
+0x5a10 022571 fetch 1 ,mem_mouse_x 
+0x5a11 022572 call mouse_data_extsign 
+0x5a12 022573 store 2 ,mem_mouse_x 
+0x5a13 022574 fetch 1 ,mem_mouse_y 
+0x5a14 022575 call mouse_data_extsign 
+0x5a15 022576 store 2 ,mem_mouse_y 
+0x5a16 022577 fetch 1 ,mem_config_sensor_angle 
+0x5a17 022578 beq mouse_6clk_angle ,mouse_motion32xx_6clk_direction_selection 
+0x5a18 022579 beq mouse_9clk_angle ,mouse_motion32xx_9clk_direction_selection 
+0x5a19 022580 beq mouse_12clk_angle ,mouse_motion32xx_12clk_direction_selection 
+0x5a1a 022581 beq mouse_3clk_angle ,mouse_motion32xx_3clk_direction_selection 
+0x5a1b 022582 rtn 
+:      022584 mouse_p3065_judge:
+0x5a1c 022585 beq p3065_id1 ,mouse_p32xx_sensor_motion_1 
+0x5a1d 022586 branch mouse_twspi_reset 
+:      022588 mouse_motion32xx_6clk_direction_selection:
+0x5a1e 022589 call mouse_motion_6clk_direction_dispose 
+0x5a1f 022590 branch mouse_sensor_sdio_low 
+:      022591 mouse_motion32xx_9clk_direction_selection:
+0x5a20 022592 call mouse_motion_9clk_direction_dispose 
+0x5a21 022593 branch mouse_sensor_sdio_low 
+:      022594 mouse_motion32xx_12clk_direction_selection:
+0x5a22 022595 call mouse_motion_12clk_direction_dispose 
+0x5a23 022596 branch mouse_sensor_sdio_low 
+:      022597 mouse_motion32xx_3clk_direction_selection:
+0x5a24 022598 call mouse_motion_3clk_direction_dispose 
+0x5a25 022599 branch mouse_sensor_sdio_low 
+:      022603 mouse_p3212_sensor_motion:
+0x5a26 022604 call mouse_clear_sensor_data 
+0x5a27 022605 fetch 1 ,mem_sensor_motion_gpio 
+0x5a28 022606 beq gpio_disable ,mouse_p3212_sensor_motion_1 
+0x5a29 022607 fetcht 1 ,mem_sensor_motion_gpio 
+0x5a2a 022608 call gpio_get_bit 
+0x5a2b 022609 nrtn true 
+:      022610 mouse_p3212_sensor_motion_1:
+0x5a2c 022611 setarg pan_reg_pid_l 
+0x5a2d 022612 call twspi_read 
+0x5a2e 022613 bne p32xx_id1 ,mouse_twspi_reset 
+:      022614 mouse_p3212_sensor_motion_2:
+0x5a2f 022615 setarg pan_reg_motion_staus 
+0x5a30 022616 call twspi_read 
+0x5a31 022617 rtnbit0 7 
+0x5a32 022618 call mouse_read_sensor_common 
+0x5a33 022619 call mouse_read_3212sensor_xy_high 
+0x5a34 022620 store 1 ,mem_mouse_xy_h 
+0x5a35 022621 rshift4 pdata ,pdata 
+0x5a36 022622 call mouse_data_extsign_bit3 
+0x5a37 022623 store 1 ,mem_mouse_x + 1 
+0x5a38 022624 fetch 1 ,mem_mouse_xy_h 
+0x5a39 022625 and pdata ,0x0f ,pdata 
+0x5a3a 022626 call mouse_data_extsign_bit3 
+0x5a3b 022627 store 1 ,mem_mouse_y + 1 
+0x5a3c 022628 fetch 1 ,mem_config_sensor_angle 
+0x5a3d 022629 beq mouse_6clk_angle ,mouse_motion_6clk_direction_dispose 
+0x5a3e 022630 beq mouse_9clk_angle ,mouse_motion_9clk_direction_dispose 
+0x5a3f 022631 beq mouse_12clk_angle ,mouse_motion_12clk_direction_dispose 
+0x5a40 022632 beq mouse_3clk_angle ,mouse_motion_3clk_direction_dispose 
+0x5a41 022633 rtn 
+:      022635 mouse_read_3212sensor_xy_high:
+0x5a42 022636 setarg 0x12 
+0x5a43 022637 branch twspi_read 
+:      022639 mouse_pka8g2_sensor_motion:
+0x5a44 022640 call mouse_clear_sensor_data 
+0x5a45 022641 fetch 1 ,mem_sensor_motion_gpio 
+0x5a46 022642 beq gpio_disable ,mouse_pka8g2_sensor_motion_1 
+0x5a47 022643 fetcht 1 ,mem_sensor_motion_gpio 
+0x5a48 022644 call gpio_get_bit 
+0x5a49 022645 nrtn true 
+:      022646 mouse_pka8g2_sensor_motion_1:
+0x5a4a 022647 branch mouse_p3212_sensor_motion_2 
+:      022650 mouse_p8009_sensor_motion:
+0x5a4b 022651 call mouse_clear_sensor_data 
+0x5a4c 022652 disable user 
+0x5a4d 022653 setarg pan_reg_motion_staus 
+0x5a4e 022654 call twspi_read 
+0x5a4f 022655 rtnbit0 7 
+0x5a50 022656 setarg pan_reg_opration_state 
+0x5a51 022657 call twspi_read 
+0x5a52 022658 branch mouse_p32xx_sensor_motion_1 + 3 ,blank 
+0x5a53 022659 setarg 0 
+0x5a54 022660 store 6 ,mem_mouse_x 
+0x5a55 022661 rtn 
+:      022663 mouse_motion_6clk_direction_dispose:
+0x5a56 022664 fetch 2 ,mem_mouse_x 
+0x5a57 022665 sub pdata ,0 ,pdata 
+0x5a58 022666 store 2 ,mem_mouse_x 
+0x5a59 022667 branch enable_user 
+:      022668 mouse_motion_12clk_direction_dispose:
+0x5a5a 022669 fetch 2 ,mem_mouse_y 
+0x5a5b 022670 sub pdata ,0 ,pdata 
+0x5a5c 022671 store 2 ,mem_mouse_y 
+0x5a5d 022672 branch enable_user 
+:      022673 mouse_motion_9clk_direction_dispose:
+0x5a5e 022674 fetch 2 ,mem_mouse_y 
+0x5a5f 022675 sub pdata ,0 ,pdata 
+0x5a60 022676 store 2 ,mem_mouse_y 
+0x5a61 022677 fetch 2 ,mem_mouse_x 
+0x5a62 022678 sub pdata ,0 ,pdata 
+0x5a63 022679 store 2 ,mem_mouse_x 
+0x5a64 022680 call mouse_sensor_data_swap_places 
+0x5a65 022681 branch enable_user 
+:      022682 mouse_motion_3clk_direction_dispose:
+0x5a66 022683 call mouse_sensor_data_swap_places 
+0x5a67 022684 branch enable_user 
+:      022686 mouse_sensor_data_swap_places:
+0x5a68 022687 fetch 2 ,mem_mouse_y 
+0x5a69 022688 fetcht 2 ,mem_mouse_x 
+0x5a6a 022689 store 2 ,mem_mouse_x 
+0x5a6b 022690 storet 2 ,mem_mouse_y 
+0x5a6c 022691 rtn 
+:      022694 mouse_clear_sensor_data:
+0x5a6d 022695 fetch 1 ,mem_mouse_move_flag 
+0x5a6e 022696 call mouse_read_sensor_common ,blank 
+0x5a6f 022697 jam 1 ,mem_mouse_move_flag 
+0x5a70 022698 rtn 
+:      022700 mouse_clear_sensor_data_by_reset:
+0x5a71 022701 jam 1 ,mem_mouse_clear_sensor_data_flag 
+0x5a72 022702 call le_set_config_more_data 
+:      022703 mouse_init_sensor_reset:
+0x5a73 022704 branch mouse_init_sunt 
+:      022706 mouse_data_xy_release:
+0x5a74 022707 fetch 1 ,mem_sensor_motion_gpio 
+0x5a75 022708 rtnne gpio_disable 
+0x5a76 022709 fetch 1 ,mem_mouse_long_mult_flag 
+0x5a77 022710 rtnne 1 
+0x5a78 022711 setarg 0 
+0x5a79 022712 store 1 ,mem_mouse_long_mult_flag 
+0x5a7a 022713 store 4 ,mem_mouse_x 
+0x5a7b 022714 branch mouse_init_sensor_reset 
+:      022716 mouse_data_extsign:
+0x5a7c 022717 rtnbit0 7 
+0x5a7d 022718 arg 0xff00 ,temp 
+0x5a7e 022719 ior temp ,pdata 
+0x5a7f 022720 rtn 
+:      022722 mouse_data_extsign_bit3:
+0x5a80 022723 rtnbit0 3 
+0x5a81 022724 arg 0xf0 ,temp 
+0x5a82 022725 ior temp ,pdata 
+0x5a83 022726 rtn 
+:      022728 mouse_read_sensor_common:
+0x5a84 022729 arg pan_reg_delta_x ,pdata 
+0x5a85 022730 call twspi_read 
+0x5a86 022731 store 2 ,mem_mouse_x 
+0x5a87 022732 arg pan_reg_delta_y ,pdata 
+0x5a88 022733 call twspi_read 
+0x5a89 022734 store 2 ,mem_mouse_y 
+0x5a8a 022735 rtn 
+:      022738 mouse_sensor_sdio_low:
+0x5a8b 022739 fetcht 1 ,mem_mouse_sensor_sdio_gpio 
+0x5a8c 022740 call gpio_get_bit 
+0x5a8d 022741 rtn true 
+0x5a8e 022742 setarg 0x0a 
+0x5a8f 022743 call twspi_read 
+0x5a90 022744 nop 1000 
+0x5a91 022745 branch mouse_sensor_sdio_low 
+:      022747 mouse_set_sdio_high:
+0x5a92 022748 setarg 0x8100 
+0x5a93 022749 branch twspi_write 
+:      022754 mouse_bluetooth_fast_conn_init:
+0x5a94 022755 jam 0xff ,mem_mouse_bluetooth_fast_conn_flag 
+:      022756 mouse_ble_fast_conn_init:
+0x5a95 022757 jam 0x34 ,mem_xrecord_mode 
+0x5a96 022758 setarg 0x0f0f0f 
+0x5a97 022759 store 3 ,mem_le_lap 
+0x5a98 022760 store 3 ,mem_le_lap + 3 
+0x5a99 022761 branch mouse_start_reconnect 
+:      022763 mouse_buletooth_fast_conn_end:
+0x5a9a 022764 bpatch patch10_4 ,mem_patch10 
+0x5a9b 022765 call mouse_select_reconn_device 
+0x5a9c 022766 call mouse_bluetooth_fast_conn_disable 
+0x5a9d 022767 fetch 1 ,mem_device_flag 
+0x5a9e 022768 beq mode_bt_device1 ,mouse_device1_check_auto_discover 
+0x5a9f 022769 beq mode_bt_device2 ,mouse_device2_check_auto_discover 
+0x5aa0 022770 rtn 
+:      022771 mouse_device1_check_auto_discover:
+0x5aa1 022772 fetch 6 ,mem_device1_addr 
+0x5aa2 022773 branch mouse_device_check_auto_discover 
+:      022774 mouse_device2_check_auto_discover:
+0x5aa3 022775 fetch 6 ,mem_device2_addr 
+:      022776 mouse_device_check_auto_discover:
+0x5aa4 022777 fetcht 6 ,mem_mouse_compare_addr 
+0x5aa5 022778 isub temp ,null 
+0x5aa6 022779 branch mouse_start_discovery ,zero 
+0x5aa7 022780 branch mouse_start_reconnect_device 
+:      022782 mouse_bluetooth_fast_conn_disable:
+0x5aa8 022783 jam 0x5a ,mem_mouse_bluetooth_fast_conn_flag 
+0x5aa9 022784 rtn 
+:      022787 mouse_stop_bluetooth_mode:
+0x5aaa 022788 fetch 2 ,mem_ui_state_map 
+0x5aab 022789 bbit1 ui_state_ble_connected ,app_ble_disconnect 
+0x5aac 022790 branch mouse_stop_discovery 
+:      022791 mouse_disconnect:
+0x5aad 022792 setarg 0 
+0x5aae 022793 store 2 ,mem_mouse_no_data_timer 
+0x5aaf 022794 fetch 2 ,mem_ui_state_map 
+0x5ab0 022795 bbit1 ui_state_ble_connected ,app_ble_disconnect 
+0x5ab1 022796 rtn 
+:      022798 mouse_check_125hz:
+0x5ab2 022799 fetch mouse_flag_len ,mem_mouse_flag 
+0x5ab3 022800 rtnbit0 mouse_enable_bt_125hz 
+:      022801 mouse_bluetooth_125hz:
+0x5ab4 022802 nbranch mouse_bluetooth_125hz_clear ,user 
+0x5ab5 022803 fetch 1 ,mem_bluetooth_125hz_cnt 
+0x5ab6 022804 increase 1 ,pdata 
+0x5ab7 022805 and_into 0x0f ,pdata 
+0x5ab8 022806 store 1 ,mem_bluetooth_125hz_cnt 
+0x5ab9 022807 nrtn blank 
+:      022808 mouse_bluetooth_125hz_clear:
+0x5aba 022809 jam 0 ,mem_bluetooth_125hz_cnt 
+0x5abb 022810 branch disable_user 
+:      022812 mouse_current_mult_update:
+0x5abc 022813 fetch 1 ,mem_sensor_motion_gpio 
+0x5abd 022814 rtnne gpio_disable 
+0x5abe 022815 jam 0 ,mem_lpm_mult 
+0x5abf 022816 jam 30 ,mem_mouse_current_mult_timer 
+0x5ac0 022817 rtn 
+:      022820 mouse_priority_bb_event:
+0x5ac1 022821 bpatch patch10_5 ,mem_patch10 
+0x5ac2 022822 copy regc ,pdata 
+0x5ac3 022823 beq bt_evt_le_connected ,mouse_le_bb_event_connected 
+0x5ac4 022824 beq bt_evt_le_disconnected ,mouse_le_bb_disconnected 
+0x5ac5 022825 beq bt_evt_button_long_pressed ,mouse_bb_event_discovery_btn 
+0x5ac6 022826 beq bt_evt_le_pairing_success ,mouse_le_pairing_success 
+0x5ac7 022827 beq bt_evt_le_enc_info ,mouse_le_enc_info 
+0x5ac8 022828 beq bt_evt_le_start_enc ,mouse_le_ll_start_encryt 
+0x5ac9 022829 beq bt_evt_le_pairing_complete ,app_ble_store_reconn_info 
+0x5aca 022830 beq bt_evt_le_parse_conn_papa_update_rsp ,mouse_le_conn_param_update_rsp_recieved 
+0x5acb 022831 beq bt_evt_24g_pairing_complete ,mouse_24g_pairing_complete 
+0x5acc 022832 beq bt_evt_24g_attempt_fail ,mouse_24g_attempt_fail 
+0x5acd 022833 beq bt_evt_24g_attempt_success ,mouse_24g_attempt_success 
+0x5ace 022834 beq bt_evt_le_parse_conn_param_accepted ,mouse_le_parse_conn_param_accepted 
+0x5acf 022835 rtn 
+:      022838 mouse_le_bb_event_connected:
+0x5ad0 022839 call mouse_device_poweron_led_config 
+0x5ad1 022840 jam 0 ,mem_mouse_long_mult_flag 
+0x5ad2 022841 call mouse_init_sensor_reset 
+0x5ad3 022842 jam 1 ,mem_mouse_le_bb_connected_flag 
+0x5ad4 022843 call mouse_24g_first_store_reconn_info 
+0x5ad5 022844 fetch 1 ,mem_mouse_le_reconnect_flag 
+0x5ad6 022845 nbranch mouse_le_bb_event_connected_next ,blank 
+0x5ad7 022846 jam 0x14 ,mem_mouse_send_secutiry_request_timer 
+:      022847 mouse_le_bb_event_connected_next:
+0x5ad8 022848 fetch app_disc_rsn_size ,mem_app_disconn_reason_flag 
+0x5ad9 022849 set0 app_disc_by_button ,pdata 
+0x5ada 022850 store app_disc_rsn_size ,mem_app_disconn_reason_flag 
+0x5adb 022851 jam 0 ,mem_mouse_direct_timer 
+0x5adc 022852 fetch 2 ,mem_le_battery_level_updata_timer_init 
+0x5add 022853 store 2 ,mem_le_battery_level_updata_timer 
+0x5ade 022854 call mouse_no_data_timer_init 
+0x5adf 022855 branch mouse_stop_discovery 
+:      022857 mouse_le_bb_disconnected:
+0x5ae0 022858 setarg 0 
+0x5ae1 022859 store 2 ,mem_le_battery_level_updata_timer 
+0x5ae2 022860 jam 0 ,mem_mouse_le_bb_connected_flag 
+0x5ae3 022861 arg le_interval_7_5ms ,temp 
+0x5ae4 022862 fetch mouse_flag_len ,mem_mouse_flag 
+0x5ae5 022863 bbit1 mouse_enable_bt_125hz ,mouse_le_bb_disconnected_next 
+0x5ae6 022864 arg le_interval_8_75ms ,temp 
+:      022865 mouse_le_bb_disconnected_next:
+0x5ae7 022866 storet 2 ,mem_le_interval_min 
+0x5ae8 022867 storet 2 ,mem_le_interval_min + 2 
+0x5ae9 022868 jam le_lpm_enable ,mem_mouse_le_conn_param_reject 
+0x5aea 022869 jam 0 ,mem_mouse_clear_sensor_data_flag 
+0x5aeb 022870 call le_clr_config_more_data 
+0x5aec 022871 branch mouse_bb_disconnected 
+:      022873 mouse_le_pairing_success:
+0x5aed 022874 arg ll_pairing_success_flag ,queue 
+0x5aee 022875 branch mouse_le_enable_connect_flag 
+:      022877 mouse_le_enc_info:
+:      022878 mouse_updata_le_param:
+0x5aef 022879 jam bt_cmd_le_update_conn ,mem_fifo_temp 
+0x5af0 022880 branch ui_ipc_send_cmd 
+:      022882 mouse_le_ll_start_encryt:
+0x5af1 022883 fetch 1 ,mem_mouse_le_reconnect_flag 
+0x5af2 022884 beq 1 ,mouse_le_ll_reconn_start_encryt 
+0x5af3 022885 branch mouse_le_ll_enable_start_enc_flag 
+:      022886 mouse_le_ll_reconn_start_encryt:
+0x5af4 022887 call mouse_updata_le_param 
+0x5af5 022888 jam 20 ,mem_le_start_encrypt_timer 
+:      022889 mouse_le_ll_enable_start_enc_flag:
+0x5af6 022890 arg ll_start_enc_flag ,queue 
+0x5af7 022891 branch mouse_le_enable_connect_flag 
+:      022893 mouse_le_enable_connect_flag:
+0x5af8 022894 fetch 1 ,mem_le_connect_status_flag 
+0x5af9 022895 qset1 pdata 
+0x5afa 022896 store 1 ,mem_le_connect_status_flag 
+0x5afb 022897 rtn 
+:      022899 mouse_le_conn_param_update_rsp_recieved:
+0x5afc 022900 fetch 2 ,mem_le_l2cap_signaling_conn_param_update_rsp_result 
+0x5afd 022901 rtneq ble_signaling_connect_parameter_update_accepted 
+0x5afe 022902 fetch 1 ,mem_le_tsniff 
+0x5aff 022903 rshift2 pdata ,pdata 
+0x5b00 022904 sub pdata ,le_interval_15ms ,null 
+0x5b01 022905 rtn positive 
+0x5b02 022906 setarg le_interval_11_25ms 
+0x5b03 022907 store 2 ,mem_le_interval_min 
+0x5b04 022908 store 2 ,mem_le_interval_min + 2 
+0x5b05 022909 call mouse_updata_le_param 
+:      022910 mouse_le_conn_param_lpm_disable:
+0x5b06 022911 jam le_lpm_disable ,mem_mouse_le_conn_param_reject 
+0x5b07 022912 rtn 
+:      022914 mouse_le_bb_event_connect_complete:
+0x5b08 022915 fetch 1 ,mem_mouse_le_reconnect_flag 
+0x5b09 022916 nrtn blank 
+0x5b0a 022917 fetch 1 ,mem_le_att_handle 
+0x5b0b 022918 sub pdata ,34 ,pdata 
+0x5b0c 022919 nrtn zero 
+0x5b0d 022920 jam 0 ,mem_le_start_encrypt_timer 
+:      022921 mouse_le_write_enable:
+0x5b0e 022922 arg write_req_enable_flag ,queue 
+0x5b0f 022923 branch mouse_le_enable_connect_flag 
+:      022925 mouse_le_parse_conn_param_accepted:
+0x5b10 022926 fetch 1 ,mem_le_new_conninterval 
+0x5b11 022927 sub pdata ,le_interval_15ms ,null 
+0x5b12 022928 nbranch mouse_le_conn_param_lpm_disable ,positive 
+0x5b13 022929 store 2 ,mem_le_interval_min 
+0x5b14 022930 store 2 ,mem_le_interval_min + 2 
+0x5b15 022931 fetch 1 ,mem_le_new_connslavelatency 
+0x5b16 022932 branch mouse_le_lpm_mult_reinit ,blank 
+0x5b17 022933 fetcht 1 ,mem_lpm_mult_init 
+0x5b18 022934 isub temp ,null 
+0x5b19 022935 branch mouse_le_lpm_mult_reinit ,positive 
+0x5b1a 022936 fetch 1 ,mem_le_new_connslavelatency 
+0x5b1b 022937 store 1 ,mem_lpm_mult 
+0x5b1c 022938 branch mouse_le_conn_param_lpm_enable 
+:      022939 mouse_le_lpm_mult_reinit:
+0x5b1d 022940 fetch 1 ,mem_lpm_mult_init 
+0x5b1e 022941 store 1 ,mem_lpm_mult 
+:      022942 mouse_le_conn_param_lpm_enable:
+0x5b1f 022943 jam le_lpm_enable ,mem_mouse_le_conn_param_reject 
+0x5b20 022944 rtn 
+:      022946 mouse_le_clean_connect_flag:
+0x5b21 022947 jam 0 ,mem_le_connect_status_flag 
+0x5b22 022948 rtn 
+:      022950 mouse_le:
+0x5b23 022951 bpatch patch10_6 ,mem_patch10 
+0x5b24 022952 call le_fifo_check_nearly_full 
+0x5b25 022953 nrtn blank 
+0x5b26 022954 fetch 1 ,mem_mouse_bluetooth_fast_conn_flag 
+0x5b27 022955 beq 0xff ,mouse_le_next 
+0x5b28 022956 fetch 1 ,mem_le_connect_status_flag 
+0x5b29 022957 and pdata ,0x03 ,pdata 
+0x5b2a 022958 rtnne 0x03 
+:      022959 mouse_le_next:
+0x5b2b 022960 fetch 1 ,mem_mouse_clear_sensor_data_flag 
+0x5b2c 022961 call mouse_clear_sensor_data_by_reset ,blank 
+0x5b2d 022962 fetch mouse_flag_len ,mem_mouse_flag 
+0x5b2e 022963 bbit1 mouse_24g_pairing_flag ,mouse_le_send_empty_packet 
+0x5b2f 022964 bbit1 mouse_select_device_flag ,mouse_le_send_empty_packet 
+0x5b30 022965 bbit1 mouse_bt_discovery_button_down_flag ,mouse_le_send_empty_packet 
+0x5b31 022966 bbit1 mouse_bt_discovery_button_long_down_flag ,mouse_le_send_empty_packet 
+0x5b32 022967 call mouse_motion 
+0x5b33 022968 call mouse_check_125hz 
+0x5b34 022969 nrtn user 
+0x5b35 022970 call mouse_current_mult_update 
+0x5b36 022971 call mouse_data_xy_release 
+0x5b37 022972 call mouse_wheel_trigger 
+0x5b38 022973 fetch mouse_flag_len ,mem_mouse_flag 
+0x5b39 022974 bbit0 mouse_enable_keyboard ,mouse_le_send_mouse_data 
+0x5b3a 022975 fetch 1 ,mem_customer_key 
+0x5b3b 022976 beq 1 ,mouse_le_send_keyboard_package_data 
+:      022977 mouse_le_send_mouse_data:
+0x5b3c 022978 branch mouse_fill_mouse_data_le 
+:      022981 mouse_le_send_keyboard_package_data:
+0x5b3d 022982 fetch 1 ,mem_customer_data_trigger 
+0x5b3e 022983 branch mouse_le_release_keyboard_data ,blank 
+0x5b3f 022984 fetch 8 ,mem_customer_key_press + 1 
+:      022985 mouse_fill_keyboard_package_data_le:
+0x5b40 022986 store 8 ,mem_pdatatemp 
+0x5b41 022987 fetch 1 ,mem_customer_key_press 
+0x5b42 022988 beq kb_multikey_report_id ,mouse_fill_multimedia_key_data_le 
+0x5b43 022989 beq kb_system_conctrl_report_id ,mouse_fill_systemctrl_key_data_le 
+0x5b44 022990 jam 8 ,mem_le_data_len 
+0x5b45 022991 fetcht 2 ,mem_le_keyboard_handle 
+:      022992 mouse_fill_data_le:
+0x5b46 022993 fetch 1 ,mem_le_data_len 
+0x5b47 022994 copy pdata ,rega 
+0x5b48 022995 call le_att_malloc_tx_notify 
+0x5b49 022996 fetcht 1 ,mem_le_data_len 
+0x5b4a 022997 copy temp ,loopcnt 
+0x5b4b 022998 arg mem_pdatatemp ,contr 
+0x5b4c 022999 branch memcpy 
+:      023001 mouse_le_release_keyboard_data:
+0x5b4d 023002 fetch 8 ,mem_customer_key_release + 1 
+0x5b4e 023003 branch mouse_fill_keyboard_package_data_le 
+:      023005 mouse_fill_multimedia_key_data_le:
+0x5b4f 023006 jam 3 ,mem_le_data_len 
+0x5b50 023007 fetcht 2 ,mem_le_multimedia_handle 
+0x5b51 023008 branch mouse_fill_data_le 
+:      023010 mouse_fill_systemctrl_key_data_le:
+0x5b52 023011 jam 2 ,mem_le_data_len 
+0x5b53 023012 fetcht 2 ,mem_le_systemctrl_handle 
+0x5b54 023013 branch mouse_fill_data_le 
+:      023015 mouse_fill_battery_level_le:
+0x5b55 023016 arg 1 ,rega 
+0x5b56 023017 fetcht 2 ,mem_le_battery_level_handle 
+0x5b57 023018 call le_att_malloc_tx_notify 
+0x5b58 023019 fetch 1 ,mem_le_battery_level_percentage 
+0x5b59 023020 istore 1 ,contw 
+0x5b5a 023021 rtn 
+:      023023 mouse_le_send_empty_packet:
+0x5b5b 023024 setarg 0 
+0x5b5c 023025 store 7 ,mem_mouse_key 
+:      023026 mouse_fill_mouse_data_le:
+0x5b5d 023027 jam 7 ,mem_le_data_len 
+0x5b5e 023028 fetch 7 ,mem_mouse_key 
+0x5b5f 023029 store 7 ,mem_pdatatemp 
+0x5b60 023030 fetcht 2 ,mem_le_notify_handle 
+0x5b61 023031 branch mouse_fill_data_le 
+:      023033 mouse_check_51cmd_adv:
+0x5b62 023034 jam 0 ,mem_mouse_le_reconnect_flag 
+0x5b63 023035 fetch 3 ,mem_le_adv_ind 
+0x5b64 023036 store 3 ,mem_le_adv_data + 4 
+0x5b65 023037 call mouse_le_check_adv_flag 
+0x5b66 023038 setarg adv_flag_bredr_not_supported | adv_flag_limited_discoverable 
+0x5b67 023039 istore 1 ,contr 
+0x5b68 023040 arg mem_le_adv_swift_pair ,contr 
+0x5b69 023041 call mouse_le_adv_data_update 
+0x5b6a 023042 branch check_51cmd_adv 
+:      023044 mouse_le_check_adv_flag:
+0x5b6b 023045 arg mem_le_adv_data ,rega 
+:      023046 mouse_le_check_adv_flag_loop:
+0x5b6c 023047 ifetch 1 ,rega 
+0x5b6d 023048 rtn blank 
+0x5b6e 023049 iadd contr ,rega 
+0x5b6f 023050 ifetch 1 ,contr 
+0x5b70 023051 rtneq 0x01 
+0x5b71 023052 branch mouse_le_check_adv_flag_loop 
+:      023054 mouse_le_adv_data_update:
+0x5b72 023055 arg mem_le_adv_data + 11 ,contw 
+0x5b73 023056 arg 19 ,loopcnt 
+0x5b74 023057 call memcpy 
+0x5b75 023058 branch le_modified_name_adv 
+:      023064 mouse_bb_disconnected:
+0x5b76 023065 call mouse_bb_discon_clear_stack 
+0x5b77 023066 fetch app_disc_rsn_size ,mem_app_disconn_reason 
+0x5b78 023067 bbit1 app_disc_ble ,mouse4_0_event_bb_disconn 
+0x5b79 023068 bbit1 app_disc_by_button ,app_disconn_reason_clear 
+0x5b7a 023069 branch mouse_start_discovery 
+:      023071 mouse_bb_discon_clear_stack:
+0x5b7b 023072 setarg 0 
+0x5b7c 023073 store 8 ,mem_wheel_tb_old_pinlevel 
+0x5b7d 023074 istore 4 ,contw 
+0x5b7e 023075 jam 0 ,mem_mouse_move_flag 
+0x5b7f 023076 jam 0 ,mem_ltk_exists 
+0x5b80 023077 rtn 
+:      023079 mouse4_0_event_bb_disconn:
+0x5b81 023080 call mouse_le_clean_connect_flag 
+0x5b82 023081 fetch app_disc_rsn_size ,mem_app_disconn_reason 
+0x5b83 023082 bbit1 app_disc_by_button ,app_disconn_reason_clear 
+0x5b84 023083 branch mouse_app_enter_hibernate 
+:      023087 mouse_bb_event_timer:
+0x5b85 023088 bpatch patch10_7 ,mem_patch10 
+0x5b86 023090 call mouse_low_voltage_led_timer 
+0x5b87 023091 call mouse_adc_read 
+0x5b88 023093 call mouse_logo_led_on_timer 
+0x5b89 023094 call mouse_led_multi_timer 
+0x5b8a 023095 call mouse_dpi_led_blink_delay_timer 
+0x5b8b 023097 call g24_pair_timeout_timer 
+0x5b8c 023098 call g24_reconn_timeout_timer 
+0x5b8d 023099 call mouse_24g_long_sleep_param_update_timer 
+0x5b8e 023101 call mouse_dpi_key_check_long_press 
+0x5b8f 023102 call mouse_bt_discovery_check 
+0x5b90 023103 call mouse_commbination_key_process 
+0x5b91 023104 call mouse_check_discovery_timeout_timer 
+0x5b92 023106 call mouse_check_direct_timeout_timer 
+0x5b93 023107 call mouse_le_enable_att_list_timer 
+0x5b94 023108 call mouse_le_battery_updata_timer 
+0x5b95 023109 call mouse_le_send_smp_security_request_timer 
+0x5b96 023111 call mouse_check_reconnect_delay_long_sleep 
+0x5b97 023112 call mouse_current_mult_update_timer 
+0x5b98 023113 call mouse_wheel_trigger_timer 
+0x5b99 023114 call mouse_store_information_delay_timer 
+0x5b9a 023115 branch mouse_check_no_data_timeout_timer 
+:      023117 mouse_bt_discovery_check:
+0x5b9b 023118 fetch mouse_flag_len ,mem_mouse_flag 
+0x5b9c 023119 bbit1 mouse_enable_pb_button_long_press_disconvery ,mouse_bt_discovery_by_pb_button 
+0x5b9d 023120 rtn 
+:      023122 mouse_bt_discovery_by_pb_button:
+0x5b9e 023123 fetch 1 ,mem_select_device_button_statue 
+0x5b9f 023124 rtnne pb_button_state_down 
+0x5ba0 023125 arg mem_bt_discovery_count ,regc 
+0x5ba1 023126 arg mouse_long_button_bt_discovery ,regb 
+0x5ba2 023127 branch timer_single_step 
+:      023129 mouse_long_button_bt_discovery:
+0x5ba3 023130 fetch 1 ,mem_device_flag 
+0x5ba4 023131 rtneq mode_24g_device 
+0x5ba5 023132 fetch mouse_flag_len ,mem_mouse_flag 
+0x5ba6 023133 rtnbit1 mouse_bt_discovery_button_long_down_flag 
+0x5ba7 023134 arg mouse_bt_discovery_button_long_down_flag ,queue 
+0x5ba8 023135 call mouse_enable_function_flag 
+0x5ba9 023136 call app_evt_button_long_pressed 
+0x5baa 023137 branch mouse_bb_event_discovery_btn 
+:      023139 mouse_commbination_key_process:
+0x5bab 023140 fetch 1 ,mem_device_flag 
+0x5bac 023141 beq mode_24g_device ,mouse_24g_commbination_key_process 
+0x5bad 023142 fetch mouse_flag_len ,mem_mouse_flag 
+0x5bae 023143 rtnbit0 mouse_enable_commbination_key_by_bt_discovery 
+0x5baf 023144 fetcht 1 ,mem_mouse_commbination_key_bt 
+0x5bb0 023145 branch mouse_commbination_key_start 
+:      023147 mouse_24g_commbination_key_process:
+0x5bb1 023148 fetch mouse_flag_len ,mem_mouse_flag 
+0x5bb2 023149 rtnbit0 mouse_enable_commbination_key_by_24g_pairing 
+0x5bb3 023150 fetcht 1 ,mem_mouse_commbination_key_24g 
+:      023151 mouse_commbination_key_start:
+0x5bb4 023152 storet 1 ,mem_mouse_commbination_key 
+0x5bb5 023153 call mouse_check_key_gpio 
+0x5bb6 023154 and pdata ,0x07 ,pdata 
+0x5bb7 023155 fetcht 1 ,mem_mouse_commbination_key 
+0x5bb8 023156 isub temp ,null 
+0x5bb9 023157 branch mouse_commbination_key_down ,zero 
+:      023158 mouse_commbination_key_up:
+0x5bba 023159 fetch 1 ,mem_ui_button_timeout 
+0x5bbb 023160 store 1 ,mem_combination_ui_button_count 
+0x5bbc 023161 fetch 1 ,mem_commbination_key_statue 
+0x5bbd 023162 rtneq commbination_key_state_up 
+0x5bbe 023163 jam commbination_key_state_up ,mem_commbination_key_statue 
+0x5bbf 023164 rtn 
+:      023166 mouse_commbination_key_down:
+0x5bc0 023167 call mouse_combination_ui_timer 
+0x5bc1 023168 fetch 1 ,mem_commbination_key_statue 
+0x5bc2 023169 rtneq commbination_key_state_down 
+0x5bc3 023170 jam commbination_key_state_down ,mem_commbination_key_statue 
+0x5bc4 023171 rtn 
+:      023173 mouse_combination_ui_timer:
+0x5bc5 023174 arg mouse_24g_start_pair_mode ,regb 
+0x5bc6 023175 arg mem_combination_ui_button_count ,regc 
+0x5bc7 023176 fetch 1 ,mem_device_flag 
+0x5bc8 023177 beq mode_24g_device ,timer_single_step 
+0x5bc9 023178 arg mouse_long_button_bt_discovery ,regb 
+0x5bca 023179 call timer_single_step 
+0x5bcb 023180 fetch 1 ,mem_combination_ui_button_count 
+0x5bcc 023181 beq 1 ,mouse_bt_discovery_button_down_enable 
+0x5bcd 023182 rtn 
+:      023184 mouse_check_discovery_timeout_timer:
+0x5bce 023185 arg mem_mouse_discovery_timer ,regc 
+0x5bcf 023186 arg mouse_check_discovery_timeout ,regb 
+0x5bd0 023187 branch timer_single_step_2b 
+:      023189 mouse_check_discovery_timeout:
+0x5bd1 023190 call mouse_stop_discovery 
+0x5bd2 023191 branch mouse_app_enter_hibernate 
+:      023193 mouse_check_direct_timeout_timer:
+0x5bd3 023194 arg mem_mouse_direct_timer ,regc 
+0x5bd4 023195 arg mouse_check_direct_timeout ,regb 
+0x5bd5 023196 call timer_single_step 
+0x5bd6 023197 fetch 1 ,mem_mouse_direct_timer 
+0x5bd7 023198 beq 1 ,app_ble_stop_direct_adv 
+0x5bd8 023199 rtn 
+:      023201 mouse_check_direct_timeout:
+0x5bd9 023202 fetch 1 ,mem_mouse_bluetooth_fast_conn_flag 
+0x5bda 023203 beq 0xff ,mouse_buletooth_fast_conn_end 
+0x5bdb 023204 fetch 1 ,mem_reconn_times 
+0x5bdc 023205 nbranch mouse_polling_device ,blank 
+0x5bdd 023206 fetch mouse_flag_len ,mem_mouse_flag 
+0x5bde 023207 bbit1 mouse_enable_bt_reconnect_timeout_enter_discovery ,mouse_start_discovery 
+0x5bdf 023208 bbit1 mouse_enable_24g_first_auto_pairing ,mouse_24g_first_bb_event_reconn_timeout 
+0x5be0 023209 branch mouse_app_enter_hibernate 
+:      023211 mouse_le_enable_att_list_timer:
+0x5be1 023212 arg mem_le_start_encrypt_timer ,regc 
+0x5be2 023213 arg mouse_le_write_enable ,regb 
+0x5be3 023214 branch timer_single_step 
+:      023216 mouse_le_send_smp_security_request_timer:
+0x5be4 023217 fetch 1 ,mem_mouse_le_bb_connected_flag 
+0x5be5 023218 rtn blank 
+0x5be6 023219 arg mem_mouse_send_secutiry_request_timer ,regc 
+0x5be7 023220 arg mouse_le_pairing_sm_start_check ,regb 
+0x5be8 023221 branch timer_single_step 
+:      023222 mouse_le_pairing_sm_start_check:
+0x5be9 023223 fetch 1 ,mem_mouse_le_reconnect_flag 
+0x5bea 023224 nrtn blank 
+0x5beb 023225 fetch 1 ,mem_le_pairing_state 
+0x5bec 023226 rtnne flag_le_pairing_null 
+0x5bed 023227 branch le_pairing_sm_start 
+:      023229 mouse_le_battery_updata_timer:
+0x5bee 023230 fetch mouse_flag_len ,mem_mouse_flag 
+0x5bef 023231 rtnbit1 mouse_enable_le_battery_service_cancel 
+0x5bf0 023232 arg mem_le_battery_level_updata_timer ,regc 
+0x5bf1 023233 arg mouse_le_battery_level_updata ,regb 
+0x5bf2 023234 branch timer_single_step 
+:      023236 mouse_le_battery_level_updata:
+0x5bf3 023237 fetch 2 ,mem_le_battery_level_updata_timer_init 
+0x5bf4 023238 store 2 ,mem_le_battery_level_updata_timer 
+0x5bf5 023239 branch mouse_fill_battery_level_le 
+:      023241 mouse_le_enable_att_list:
+0x5bf6 023242 fetch 1 ,mem_le_connect_status_flag 
+0x5bf7 023243 rtnbit1 ll_pairing_success_flag 
+0x5bf8 023244 call mouse_updata_le_param 
+0x5bf9 023245 arg write_req_enable_flag ,queue 
+0x5bfa 023246 branch mouse_le_enable_connect_flag 
+:      023248 mouse_check_reconnect_delay_long_sleep:
+0x5bfb 023249 arg mem_mouse_bluetooth_reconnect_timeout ,regc 
+0x5bfc 023250 arg mouse_app_enter_hibernate ,regb 
+0x5bfd 023251 branch timer_single_step 
+:      023253 mouse_current_mult_update_timer:
+0x5bfe 023254 arg mem_mouse_current_mult_timer ,regc 
+0x5bff 023255 arg mouse_current_mult_reinit ,regb 
+0x5c00 023256 branch timer_single_step 
+:      023257 mouse_current_mult_reinit:
+0x5c01 023258 fetch 1 ,mem_lpm_mult_init 
+0x5c02 023259 store 1 ,mem_lpm_mult 
+0x5c03 023260 jam 1 ,mem_mouse_long_mult_flag 
+0x5c04 023261 rtn 
+:      023264 mouse_check_no_data_timeout_timer:
+0x5c05 023265 arg mem_mouse_no_data_timer ,regc 
+0x5c06 023266 arg mouse_check_no_data_timeout ,regb 
+0x5c07 023267 branch timer_single_step_2b 
+:      023269 mouse_check_no_data_timeout:
+0x5c08 023270 fetch 1 ,mem_device_flag 
+0x5c09 023271 beq mode_24g_device ,mouse_24g_hibernate_set 
+0x5c0a 023272 branch mouse_disconnect 
+:      023274 mouse_no_data_timer_init:
+0x5c0b 023275 fetch 2 ,mem_mouse_no_data_timeout 
+0x5c0c 023276 store 2 ,mem_mouse_no_data_timer 
+0x5c0d 023277 rtn 
+:      023279 mouse_store_information_delay_timer:
+0x5c0e 023280 arg mem_store_information_delay_timer ,regc 
+0x5c0f 023281 arg mouse_store_device_info_check ,regb 
+0x5c10 023282 branch timer_single_step 
+:      023284 mouse_store_device_info_check:
+0x5c11 023285 call mouse_store_device_info 
+0x5c12 023286 fetch 1 ,mem_mouse_need_soft_reset 
+0x5c13 023287 nbranch mouse_soft_reset ,blank 
+0x5c14 023288 rtn 
+:      023290 mouse_bb_event_discovery_btn:
+0x5c15 023291 isolate1 mark_24g ,mark 
+0x5c16 023292 call mouse_24g_stop ,true 
+0x5c17 023293 call mouse_disconnect 
+0x5c18 023294 call mouse_le_clean_connect_flag 
+0x5c19 023295 branch mouse_start_discovery 
+:      023297 mouse_start_discovery:
+0x5c1a 023298 bpatch patch11_0 ,mem_patch11 
+0x5c1b 023299 call mouse_device_discovery_led_config 
+0x5c1c 023300 fetch 2 ,mem_ui_state_map 
+0x5c1d 023301 isolate1 ui_state_ble_adv ,pdata 
+0x5c1e 023302 call mouse_stop_le_adv ,true 
+0x5c1f 023303 call mouse_bluetooth_fast_conn_disable 
+0x5c20 023304 fetch 2 ,mem_ui_state_map 
+0x5c21 023305 bbit1 ui_state_ble_adv ,mouse_start_discovery_norandom 
+0x5c22 023306 fetch mouse_flag_len ,mem_mouse_flag 
+0x5c23 023307 bbit0 mouse_enable_ble_random_addre ,mouse_start_discovery_norandom 
+0x5c24 023308 fetcht 2 ,mem_random_addr_increase_count 
+0x5c25 023309 increase 1 ,temp 
+0x5c26 023310 storet 2 ,mem_random_addr_increase_count 
+0x5c27 023311 storet 2 ,mem_le_lap + 1 
+0x5c28 023312 random pdata 
+0x5c29 023313 store 1 ,mem_le_lap 
+:      023314 mouse_start_discovery_norandom:
+0x5c2a 023315 fetch 3 ,mem_mouse_le_lap_temp 
+0x5c2b 023316 store 3 ,mem_le_lap + 3 
+0x5c2c 023317 call app_lpm_mult_disable 
+0x5c2d 023318 fetch 2 ,mem_mouse_discovery_timeout 
+0x5c2e 023319 store 2 ,mem_mouse_discovery_timer 
+0x5c2f 023320 setarg 0 
+0x5c30 023321 store 2 ,mem_mouse_no_data_timer 
+0x5c31 023322 store 2 ,mem_le_battery_level_updata_timer 
+0x5c32 023323 store 1 ,mem_mouse_direct_timer 
+0x5c33 023324 store 1 ,mem_mouse_bluetooth_reconnect_timeout 
+0x5c34 023325 store 1 ,mem_mouse_clear_sensor_data_flag 
+0x5c35 023326 arg mouse_store_eeprom_flag ,queue 
+0x5c36 023327 call mouse_enable_function_flag 
+0x5c37 023328 call mouse_bt_discovery_button_down_disable 
+0x5c38 023329 branch mouse_check_51cmd_adv 
+:      023331 mouse_stop_discovery:
+0x5c39 023332 bpatch patch11_1 ,mem_patch11 
+0x5c3a 023333 arg mouse_bt_discovery_button_long_down_flag ,queue 
+0x5c3b 023334 call mouse_disable_function_flag 
+0x5c3c 023335 jam 0 ,mem_mouse_bluetooth_reconnect_timeout 
+0x5c3d 023336 branch mouse_stop_le_adv 
+:      023337 mouse_stop_le_adv:
+0x5c3e 023338 setarg 0 
+0x5c3f 023339 store 1 ,mem_mouse_direct_timer 
+0x5c40 023340 store 2 ,mem_mouse_discovery_timer 
+0x5c41 023341 branch check_51cmd_stop_adv 
+:      023343 mouse_store_remote_bdaddr:
+0x5c42 023344 bpatch patch11_2 ,mem_patch11 
+0x5c43 023345 fetch mouse_flag_len ,mem_mouse_flag 
+0x5c44 023346 rtnbit0 mouse_store_eeprom_flag 
+0x5c45 023347 arg mouse_store_eeprom_flag ,queue 
+0x5c46 023348 call mouse_disable_function_flag 
+0x5c47 023349 call mouse_check_device_addr 
+:      023350 mouse_unplug_clean_bdaddr:
+0x5c48 023351 call mouse_before_store_reconn_info 
+0x5c49 023352 branch mouse_store_device_info_delay 
+:      023354 mouse_check_device_addr:
+0x5c4a 023355 fetch 1 ,mem_record_bt_mode 
+0x5c4b 023356 beq rec_4_mode ,mouse_check_le_device_addr 
+0x5c4c 023357 rtn 
+:      023358 mouse_check_le_device_addr:
+0x5c4d 023359 store 1 ,mem_device_addr_temp 
+0x5c4e 023360 fetch 6 ,mem_le_plap 
+:      023361 mouse_check_bt_device_addr_common:
+0x5c4f 023362 store 6 ,mem_device_addr_temp + 1 
+0x5c50 023363 fetch 7 ,mem_device_addr_temp 
+0x5c51 023364 arg mem_device1_type ,contr 
+0x5c52 023365 arg 3 ,loopcnt 
+:      023366 mouse_check_device_addr_end:
+0x5c53 023367 ifetcht 7 ,contr 
+0x5c54 023368 isub temp ,null 
+0x5c55 023369 branch mouse_clean_addr ,zero 
+0x5c56 023370 increase 22 ,contr 
+0x5c57 023371 loop mouse_check_device_addr_end 
+0x5c58 023372 rtn 
+:      023373 mouse_before_store_reconn_info:
+0x5c59 023374 arg mem_device1_type ,rega 
+0x5c5a 023375 fetch 1 ,mem_device_flag 
+0x5c5b 023376 increase -1 ,pdata 
+0x5c5c 023377 mul32 pdata ,29 ,pdata 
+0x5c5d 023378 iadd rega ,rega 
+0x5c5e 023379 fetch 1 ,mem_record_bt_mode 
+0x5c5f 023380 istore 1 ,rega 
+0x5c60 023381 beq rec_4_mode ,mouse_store_le_device 
+0x5c61 023382 rtn 
+:      023384 mouse_store_le_device:
+0x5c62 023385 fetch 6 ,mem_le_plap 
+0x5c63 023386 istore 6 ,contw 
+0x5c64 023387 arg mem_le_ltk ,contr 
+0x5c65 023388 call memcpy16 
+0x5c66 023389 fetch 6 ,mem_le_lap 
+0x5c67 023390 istore 6 ,contw 
+0x5c68 023391 rtn 
+:      023393 mouse_clean_addr:
+0x5c69 023394 increase -6 ,contr 
+0x5c6a 023395 copy contr ,contw 
+0x5c6b 023396 fetcht 6 ,mem_device_addr_temp + 1 
+0x5c6c 023397 increase 3 ,temp 
+0x5c6d 023398 istoret 6 ,contw 
+0x5c6e 023399 rtn 
+:      023401 mouse_select_reconn_device:
+0x5c6f 023402 arg mem_device1_type ,rega 
+0x5c70 023403 fetch 1 ,mem_device_flag 
+0x5c71 023404 rtneq mode_24g_device 
+0x5c72 023405 increase -1 ,pdata 
+0x5c73 023406 mul32 pdata ,29 ,pdata 
+0x5c74 023407 iadd rega ,rega 
+0x5c75 023408 ifetch 1 ,rega 
+0x5c76 023409 store 1 ,mem_xrecord_mode 
+0x5c77 023410 beq rec_4_mode ,mouse_load_le_device 
+0x5c78 023411 rtn 
+:      023413 mouse_load_le_device:
+0x5c79 023414 ifetch 6 ,contr 
+:      023415 mouse_load_le_device_end:
+0x5c7a 023416 store 6 ,mem_hci_plap 
+0x5c7b 023417 arg mem_le_ltk ,contw 
+0x5c7c 023418 call memcpy16 
+0x5c7d 023419 ifetch 6 ,contr 
+0x5c7e 023420 store 6 ,mem_le_lap 
+0x5c7f 023421 rtn 
+:      023423 mouse_app_initflag_check:
+0x5c80 023424 bpatch patch11_3 ,mem_patch11 
+0x5c81 023425 fetch 2 ,mem_store_flag 
+0x5c82 023426 arg eeprom_init_flag ,temp 
+0x5c83 023427 isub temp ,null 
+0x5c84 023428 branch mouse_load_device_info ,zero 
+:      023429 mouse_app_initflag_check_next:
+0x5c85 023430 storet 2 ,mem_store_flag 
+0x5c86 023431 call mouse_ble_init_address 
+0x5c87 023432 fetch 1 ,mem_device_flag_temp 
+0x5c88 023433 store 1 ,mem_device_flag 
+0x5c89 023434 fetch 4 ,mem_24g_fast_conn_addr 
+0x5c8a 023435 store 4 ,mem_24g_receiver_addr 
+0x5c8b 023436 store 4 ,mem_24g_addr 
+:      023437 mouse_load_default_dpi:
+0x5c8c 023438 fetch 1 ,mem_config_sensor_dpi 
+0x5c8d 023439 store 1 ,mem_mouse_dpi 
+0x5c8e 023440 rtn 
+:      023442 mouse_load_device_info:
+0x5c8f 023443 call mouse_otp_load_dpi 
+0x5c90 023445 fetch 4 ,mem_mouse_24g_addr 
+0x5c91 023446 store 4 ,mem_24g_receiver_addr 
+0x5c92 023447 store 4 ,mem_24g_addr 
+0x5c93 023448 rtn 
+:      023450 mouse_otp_load_dpi:
+0x5c94 023451 fetch mouse_flag_len ,mem_mouse_flag 
+0x5c95 023452 rtnbit0 mouse_enable_load_and_store_dpi 
+0x5c96 023453 fetch 2 ,mem_otp_offset_dpi 
+0x5c97 023454 copy pdata ,regb 
+0x5c98 023455 call mouse_read_otp_dpi_common 
+0x5c99 023456 fetch 1 ,mem_mouse_dpi_temp 
+0x5c9a 023457 call mouse_load_default_dpi ,blank 
+0x5c9b 023458 rtn 
+:      023460 mouse_ble_init_address:
+0x5c9c 023461 fetch 6 ,mem_le_lap 
+0x5c9d 023462 store 6 ,mem_device1_locall_addr 
+0x5c9e 023463 add pdata ,0x0100 ,pdata 
+0x5c9f 023464 store 6 ,mem_device2_locall_addr 
+0x5ca0 023465 add pdata ,0x0100 ,pdata 
+0x5ca1 023466 store 6 ,mem_device3_locall_addr 
+0x5ca2 023467 rtn 
+:      023471 mouse_store_device_info_delay:
+0x5ca3 023472 fetch 1 ,mem_store_information_delay_timer_init 
+0x5ca4 023473 store 1 ,mem_store_information_delay_timer 
+0x5ca5 023474 rtn 
+:      023476 mouse_store_device_info:
+0x5ca6 023477 bpatch patch11_4 ,mem_patch11 
+0x5ca7 023478 fetch mouse_flag_len ,mem_mouse_flag 
+0x5ca8 023479 bbit1 mouse_enable_eeprom ,mouse_store_eeprom_device_info 
+0x5ca9 023480 bbit1 mouse_enable_flash ,mouse_store_flash_device_info 
+0x5caa 023481 bbit1 mouse_enable_otp ,mouse_store_otp_device_info 
+0x5cab 023482 rtn 
+:      023484 mouse_store_dpi_info_check:
+0x5cac 023485 bpatch patch11_5 ,mem_patch11 
+0x5cad 023486 fetch mouse_flag_len ,mem_mouse_flag 
+0x5cae 023487 bbit1 mouse_enable_eeprom ,mouse_store_eerpom_dpi 
+0x5caf 023488 bbit1 mouse_enable_otp ,mouse_store_otp_dpi 
+0x5cb0 023489 rtn 
+:      023493 mouse_store_eeprom_device_info:
+0x5cb1 023494 arg 128 ,temp 
+0x5cb2 023495 arg mem_device_flag ,rega 
+0x5cb3 023496 arg mouse_info_eeprom_offect ,regb 
+0x5cb4 023497 branch iicd_write_protect_eep_data 
+:      023499 mouse_store_eerpom_dpi:
+0x5cb5 023500 arg 1 ,temp 
+0x5cb6 023501 arg mem_mouse_dpi ,rega 
+0x5cb7 023502 arg mouse_dpi_eeprom_offect ,regb 
+0x5cb8 023503 branch iicd_write_protect_eep_data 
+:      023507 mouse_store_flash_device_info:
+0x5cb9 023508 call spid_init_flash 
+0x5cba 023509 call mouse_spid_flash_release_form_powerdown 
+0x5cbb 023510 call mouse_flash_erase_sector 
+0x5cbc 023512 call mouse_information_flash_parameters 
+0x5cbd 023513 call mouse_spid_write_flash 
+0x5cbe 023514 call mouse_spid_flash_powerdown 
+0x5cbf 023515 branch mouse_sensor_spi_init 
+:      023520 mouse_store_otp_device_info:
+0x5cc0 023521 call mouse_write_otp_device_flag 
+0x5cc1 023522 call mouse_write_otp_device_info 
+0x5cc2 023523 branch mouse_write_otp_le_addr_increase_count_info 
+:      023527 mouse_write_otp_device_flag:
+0x5cc3 023528 fetchr regb ,2 ,mem_otp_offset_device_flag 
+0x5cc4 023529 copy regb ,regc 
+:      023530 mouse_write_otp_device_flag_loop:
+0x5cc5 023531 call mouse_read_otp_device_flag_common 
+0x5cc6 023532 fetch 1 ,mem_device_flag_temp 
+0x5cc7 023533 branch mouse_device_flag_store ,blank 
+0x5cc8 023534 store 1 ,mem_device_flag_last 
+0x5cc9 023535 increase 1 ,regc 
+0x5cca 023536 fetch 2 ,mem_otp_offset_device_flag_end 
+0x5ccb 023537 isub regc ,null 
+0x5ccc 023538 nrtn positive 
+0x5ccd 023539 copy regc ,regb 
+0x5cce 023540 branch mouse_write_otp_device_flag_loop 
+:      023542 mouse_device_flag_store:
+0x5ccf 023543 fetch 1 ,mem_device_flag_last 
+0x5cd0 023544 and pdata ,0xf0 ,pdata 
+0x5cd1 023545 branch mouse_device_flag_store_check ,blank 
+0x5cd2 023546 fetch 1 ,mem_device_flag 
+0x5cd3 023547 store 1 ,mem_device_flag_value 
+:      023548 mouse_devoce_flag_store_end:
+0x5cd4 023549 arg 1 ,loopcnt 
+0x5cd5 023550 copy regc ,regb 
+0x5cd6 023551 arg mem_device_flag_value ,rega 
+0x5cd7 023552 branch otp_write 
+:      023554 mouse_device_flag_store_check:
+0x5cd8 023555 fetch 1 ,mem_device_flag_last 
+0x5cd9 023556 fetcht 1 ,mem_device_flag 
+0x5cda 023557 isub temp ,null 
+0x5cdb 023558 rtn zero 
+0x5cdc 023559 lshift4 temp ,temp 
+0x5cdd 023560 iadd temp ,pdata 
+0x5cde 023561 store 1 ,mem_device_flag_value 
+0x5cdf 023563 copy regc ,pdata 
+0x5ce0 023564 fetcht 2 ,mem_otp_offset_device_flag 
+0x5ce1 023565 isub temp ,null 
+0x5ce2 023566 branch mouse_devoce_flag_store_end ,zero 
+0x5ce3 023568 increase -1 ,regc 
+0x5ce4 023569 branch mouse_devoce_flag_store_end 
+:      023573 mouse_write_otp_device_info:
+0x5ce5 023574 fetch 1 ,mem_device_flag 
+0x5ce6 023575 beq mode_24g_device ,mouse_write_otp_24g_addr 
+0x5ce7 023576 beq mode_bt_device1 ,mouse_write_otp_le_device1 
+0x5ce8 023577 beq mode_bt_device2 ,mouse_write_otp_le_device2 
+0x5ce9 023578 rtn 
+:      023580 mouse_write_otp_24g_addr:
+0x5cea 023581 fetchr regb ,2 ,mem_otp_offset_24g_addr 
+0x5ceb 023582 copy regb ,regc 
+:      023583 mouse_otp_store_24g_addr_loop:
+0x5cec 023584 call mouse_read_otp_24g_addr_common 
+0x5ced 023585 fetch 4 ,mem_mouse_24g_addr_temp 
+0x5cee 023586 branch mouse_24g_addr_store ,blank 
+0x5cef 023587 store 4 ,mem_mouse_24g_addr_last 
+0x5cf0 023588 increase 4 ,regc 
+0x5cf1 023589 fetch 2 ,mem_otp_offset_24g_addr_end 
+0x5cf2 023590 isub regc ,null 
+0x5cf3 023591 nrtn positive 
+0x5cf4 023592 copy regc ,regb 
+0x5cf5 023593 branch mouse_otp_store_24g_addr_loop 
+:      023595 mouse_24g_addr_store:
+0x5cf6 023596 fetch 4 ,mem_mouse_24g_addr_last 
+0x5cf7 023597 fetcht 4 ,mem_mouse_24g_addr 
+0x5cf8 023598 isub temp ,null 
+0x5cf9 023599 rtn zero 
+0x5cfa 023600 arg 4 ,loopcnt 
+0x5cfb 023601 arg mem_mouse_24g_addr ,rega 
+0x5cfc 023602 copy regc ,regb 
+0x5cfd 023603 branch otp_write 
+:      023605 mouse_write_otp_le_device1:
+0x5cfe 023606 fetchr regb ,2 ,mem_otp_offset_le_addr1 
+0x5cff 023607 copy regb ,regc 
+:      023608 mouse_otp_store_le_addr1_loop:
+0x5d00 023609 call mouse_read_otp_le_addr1_common 
+0x5d01 023610 fetch 6 ,mem_mouse_le_addr1_temp 
+0x5d02 023611 branch mouse_le_addr1_store ,blank 
+0x5d03 023612 store 6 ,mem_mouse_le_addr1_last 
+0x5d04 023613 increase 6 ,regc 
+0x5d05 023614 fetch 2 ,mem_otp_offset_le_addr1_end 
+0x5d06 023615 isub regc ,null 
+0x5d07 023616 nrtn positive 
+0x5d08 023617 copy regc ,regb 
+0x5d09 023618 branch mouse_otp_store_le_addr1_loop 
+:      023620 mouse_le_addr1_store:
+0x5d0a 023621 fetch 6 ,mem_mouse_le_addr1_last 
+0x5d0b 023622 fetcht 6 ,mem_device1_addr 
+0x5d0c 023623 isub temp ,null 
+0x5d0d 023624 rtn zero 
+0x5d0e 023625 arg 6 ,loopcnt 
+0x5d0f 023626 arg mem_device1_addr ,rega 
+0x5d10 023627 copy regc ,regb 
+0x5d11 023628 branch otp_write 
+:      023631 mouse_write_otp_le_device2:
+0x5d12 023632 fetchr regb ,2 ,mem_otp_offset_le_addr2 
+0x5d13 023633 copy regb ,regc 
+:      023634 mouse_otp_store_le_addr2_loop:
+0x5d14 023635 call mouse_read_otp_le_addr2_common 
+0x5d15 023636 fetch 6 ,mem_mouse_le_addr2_temp 
+0x5d16 023637 branch mouse_le_addr2_store ,blank 
+0x5d17 023638 store 6 ,mem_mouse_le_addr2_last 
+0x5d18 023639 increase 6 ,regc 
+0x5d19 023640 fetch 2 ,mem_otp_offset_le_addr2_end 
+0x5d1a 023641 isub regc ,null 
+0x5d1b 023642 nrtn positive 
+0x5d1c 023643 copy regc ,regb 
+0x5d1d 023644 branch mouse_otp_store_le_addr2_loop 
+:      023646 mouse_le_addr2_store:
+0x5d1e 023647 fetch 6 ,mem_mouse_le_addr2_last 
+0x5d1f 023648 fetcht 6 ,mem_device2_addr 
+0x5d20 023649 isub temp ,null 
+0x5d21 023650 rtn zero 
+0x5d22 023651 arg 6 ,loopcnt 
+0x5d23 023652 arg mem_device2_addr ,rega 
+0x5d24 023653 copy regc ,regb 
+0x5d25 023654 branch otp_write 
+:      023658 mouse_write_otp_le_addr_increase_count_info:
+0x5d26 023659 fetch 1 ,mem_device_flag 
+0x5d27 023660 rtneq mode_24g_device 
+0x5d28 023661 fetchr regb ,2 ,mem_otp_offset_le_addr_increase_count 
+0x5d29 023662 copy regb ,regc 
+:      023663 mouse_otp_store_le_addr_increase_count_loop:
+0x5d2a 023664 call mouse_read_otp_le_addr_increase_count_common 
+0x5d2b 023665 fetch 2 ,mem_random_addr_increase_count_temp 
+0x5d2c 023666 branch mouse_le_addr_increase_count_store ,blank 
+0x5d2d 023667 store 2 ,mem_random_addr_increase_count_last 
+0x5d2e 023668 increase 2 ,regc 
+0x5d2f 023669 fetch 2 ,mem_otp_offset_le_addr_increase_count_end 
+0x5d30 023670 isub regc ,null 
+0x5d31 023671 nrtn positive 
+0x5d32 023672 copy regc ,regb 
+0x5d33 023673 branch mouse_otp_store_le_addr_increase_count_loop 
+:      023675 mouse_le_addr_increase_count_store:
+0x5d34 023676 fetch 2 ,mem_random_addr_increase_count_last 
+0x5d35 023677 fetcht 2 ,mem_random_addr_increase_count 
+0x5d36 023678 isub temp ,null 
+0x5d37 023679 rtn zero 
+0x5d38 023680 arg 2 ,loopcnt 
+0x5d39 023681 arg mem_random_addr_increase_count ,rega 
+0x5d3a 023682 copy regc ,regb 
+0x5d3b 023683 branch otp_write 
+:      023687 mouse_store_otp_dpi:
+0x5d3c 023688 fetch mouse_flag_len ,mem_mouse_flag 
+0x5d3d 023689 rtnbit0 mouse_enable_load_and_store_dpi 
+0x5d3e 023690 fetchr regb ,2 ,mem_otp_offset_dpi 
+0x5d3f 023691 copy regb ,regc 
+:      023692 mouse_otp_store_dpi_loop:
+0x5d40 023693 call mouse_read_otp_dpi_common 
+0x5d41 023694 fetch 1 ,mem_mouse_dpi_temp 
+0x5d42 023695 branch mouse_otp_dpi_store ,blank 
+0x5d43 023696 store 1 ,mem_mouse_dpi_last 
+0x5d44 023697 increase 1 ,regc 
+0x5d45 023698 fetch 2 ,mem_otp_offset_dpi_end 
+0x5d46 023699 isub regc ,null 
+0x5d47 023700 nrtn positive 
+0x5d48 023701 copy regc ,regb 
+0x5d49 023702 branch mouse_otp_store_dpi_loop 
+:      023704 mouse_otp_dpi_store:
+0x5d4a 023705 fetch 1 ,mem_mouse_dpi_last 
+0x5d4b 023706 and pdata ,0xf0 ,pdata 
+0x5d4c 023707 branch mouse_dpi_store_last ,blank 
+0x5d4d 023708 fetch 1 ,mem_mouse_dpi 
+0x5d4e 023709 store 1 ,mem_mouse_otp_dpi_value 
+:      023710 mouse_dpi_store_end:
+0x5d4f 023711 arg 1 ,loopcnt 
+0x5d50 023712 copy regc ,regb 
+0x5d51 023713 arg mem_mouse_otp_dpi_value ,rega 
+0x5d52 023714 branch otp_write 
+:      023716 mouse_dpi_store_last:
+0x5d53 023717 fetch 1 ,mem_mouse_dpi_last 
+0x5d54 023718 fetcht 1 ,mem_mouse_dpi 
+0x5d55 023719 isub temp ,null 
+0x5d56 023720 rtn zero 
+0x5d57 023721 lshift4 temp ,temp 
+0x5d58 023722 iadd temp ,pdata 
+0x5d59 023723 store 1 ,mem_mouse_otp_dpi_value 
+0x5d5a 023725 copy regc ,pdata 
+0x5d5b 023726 fetcht 2 ,mem_otp_offset_dpi 
+0x5d5c 023727 isub temp ,null 
+0x5d5d 023728 branch mouse_dpi_store_end ,zero 
+0x5d5e 023730 increase -1 ,regc 
+0x5d5f 023731 branch mouse_dpi_store_end 
+:      023740 mouse_load_eeprom_info_check:
+0x5d60 023741 call iicd_read_init_pin 
+0x5d61 023742 fetch mouse_flag_len ,mem_mouse_flag 
+0x5d62 023743 isolate1 mouse_enable_2k_eeprom ,pdata 
+0x5d63 023744 ncall clear_eeprom_size_2k ,true 
+0x5d64 023745 call mouse_eeprom_load_recon_info 
+0x5d65 023746 branch mouse_app_initflag_check 
+:      023748 mouse_eeprom_load_recon_info:
+0x5d66 023749 arg 128 ,temp 
+0x5d67 023750 arg mem_device_flag ,rega 
+0x5d68 023751 arg mouse_info_eeprom_offect ,regb 
+0x5d69 023752 branch iicd_read_eep_data 
+:      023754 mouse_load_eeprom_dpi:
+0x5d6a 023755 arg 1 ,temp 
+0x5d6b 023756 arg mem_mouse_dpi ,rega 
+0x5d6c 023757 arg mouse_dpi_eeprom_offect ,regb 
+0x5d6d 023758 branch iicd_read_eep_data 
+:      023762 mouse_load_flash_info_check:
+0x5d6e 023763 call spid_init_flash 
+0x5d6f 023764 call mouse_spid_flash_release_form_powerdown 
+0x5d70 023765 call mouse_information_flash_parameters 
+0x5d71 023766 call spid_read_flash 
+0x5d72 023767 call mouse_spid_flash_powerdown 
+0x5d73 023768 call mouse_app_initflag_check 
+0x5d74 023769 branch mouse_sensor_spi_init 
+:      023771 mouse_information_flash_parameters:
+0x5d75 023772 setarg mem_mouse_information_end 
+0x5d76 023773 arg mem_mouse_information_start ,temp 
+0x5d77 023774 isub temp ,temp 
+0x5d78 023775 fetch 3 ,mem_flash_base 
+0x5d79 023776 arg mem_mouse_information_start ,rega 
+0x5d7a 023777 rtn 
+:      023779 mouse_spid_flash_release_form_powerdown:
+0x5d7b 023780 jam flash_command_release_from_powerdown ,mem_temp 
+:      023781 mouse_spid_write_flash_cmd:
+0x5d7c 023782 call delay_nop100 
+0x5d7d 023783 call spid_unlock_flash 
+0x5d7e 023784 arg mem_write_flash_head_temp ,rega 
+0x5d7f 023785 fetcht 1 ,mem_temp 
+0x5d80 023786 call mouse_spid_write_flash_cmd_common 
+0x5d81 023787 branch delay_nop100 
+:      023789 mouse_spid_flash_powerdown:
+0x5d82 023790 jam flash_command_powerdown ,mem_temp 
+0x5d83 023791 branch mouse_spid_write_flash_cmd 
+:      023793 mouse_spid_write_flash_cmd_common:
+0x5d84 023794 istoret 1 ,rega 
+0x5d85 023795 rshift16 pdata ,temp 
+0x5d86 023796 istoret 1 ,contw 
+0x5d87 023797 rshift8 pdata ,temp 
+0x5d88 023798 istoret 1 ,contw 
+0x5d89 023799 istore 1 ,contw 
+0x5d8a 023800 deposit rega 
+0x5d8b 023801 store 2 ,core_spid_txaddr 
+0x5d8c 023802 setarg 0 
+0x5d8d 023803 store 2 ,core_spid_rxlen 
+0x5d8e 023804 jam spid_start ,core_misc_ctrl 
+0x5d8f 023805 branch wait_spid_done 
+:      023807 mouse_flash_erase_sector:
+0x5d90 023808 fetch 3 ,mem_flash_base 
+0x5d91 023809 store 3 ,mem_spi_write_addr 
+0x5d92 023810 branch spid_flash_erase_sector + 2 
+:      023812 mouse_spid_write_flash:
+0x5d93 023813 copy pdata ,regc 
+0x5d94 023814 copy rega ,pdata 
+0x5d95 023815 increase -4 ,pdata 
+0x5d96 023816 copy pdata ,regb 
+0x5d97 023817 ifetch 4 ,regb 
+0x5d98 023818 store 4 ,mem_write_flash_head_temp 
+0x5d99 023819 copy regc ,pdata 
+0x5d9a 023820 call spid_write_flash 
+0x5d9b 023821 fetch 4 ,mem_write_flash_head_temp 
+0x5d9c 023822 istore 4 ,regb 
+0x5d9d 023823 rtn 
+:      023825 mouse_flash_power_down:
+0x5d9e 023826 fetch mouse_flag_len ,mem_mouse_flag 
+0x5d9f 023827 rtnbit0 mouse_enable_flash 
+0x5da0 023828 call mouse_spid_flash_powerdown 
+0x5da1 023829 call twspi_enable 
+0x5da2 023830 fetcht 1 ,mem_spi_cs_gpio 
+0x5da3 023831 call gpio_out_inactive 
+0x5da4 023832 fetcht 1 ,mem_spi_hold_gpio 
+0x5da5 023833 branch mouse_gpio_config_input_pd 
+:      023837 mouse_load_otp_info_check:
+0x5da6 023838 call mouse_read_otp_dpi 
+0x5da7 023839 call mouse_read_otp_device_flag 
+0x5da8 023840 call mouse_read_otp_device_info 
+0x5da9 023841 call mouse_read_otp_le_addr_increase_count_info 
+:      023842 mouse_otp_load_app_initflag:
+0x5daa 023843 arg 2 ,loopcnt 
+0x5dab 023844 fetch 2 ,mem_otp_offset_app_initflag 
+0x5dac 023845 copy pdata ,regb 
+0x5dad 023846 arg mem_store_flag ,rega 
+0x5dae 023847 call otp_read_data 
+0x5daf 023848 call mouse_app_initflag_check 
+:      023849 mouse_otp_store_app_initflag:
+0x5db0 023850 arg 2 ,loopcnt 
+0x5db1 023851 arg mem_store_flag ,rega 
+0x5db2 023852 fetchr regb ,2 ,mem_otp_offset_app_initflag 
+0x5db3 023853 branch otp_write 
+:      023857 mouse_read_otp_device_flag:
+0x5db4 023858 fetchr regb ,2 ,mem_otp_offset_device_flag 
+0x5db5 023859 copy regb ,regc 
+:      023860 mouse_read_otp_device_flag_loop:
+0x5db6 023861 call mouse_read_otp_device_flag_common 
+0x5db7 023862 fetch 1 ,mem_device_flag_temp 
+0x5db8 023863 branch mouse_device_flag_load ,blank 
+0x5db9 023864 store 1 ,mem_device_flag_last 
+0x5dba 023865 increase 1 ,regc 
+0x5dbb 023866 fetch 2 ,mem_otp_offset_device_flag_end 
+0x5dbc 023867 isub regc ,null 
+0x5dbd 023868 nbranch mouse_device_flag_load ,positive 
+0x5dbe 023869 copy regc ,regb 
+0x5dbf 023870 branch mouse_read_otp_device_flag_loop 
+:      023872 mouse_read_otp_device_flag_common:
+0x5dc0 023873 arg 1 ,loopcnt 
+0x5dc1 023874 arg mem_device_flag_temp ,rega 
+0x5dc2 023875 branch otp_read_data 
+:      023877 mouse_device_flag_load:
+0x5dc3 023878 fetch 1 ,mem_device_flag_last 
+0x5dc4 023879 copy pdata ,temp 
+0x5dc5 023880 and pdata ,0xf0 ,pdata 
+0x5dc6 023881 branch mouse_device_flag_load_last ,blank 
+0x5dc7 023882 rshift4 pdata ,pdata 
+0x5dc8 023883 branch mouse_device_flag_load_end 
+:      023885 mouse_device_flag_load_last:
+0x5dc9 023886 copy temp ,pdata 
+:      023887 mouse_device_flag_load_end:
+0x5dca 023888 store 1 ,mem_device_flag 
+0x5dcb 023889 rtn 
+:      023892 mouse_read_otp_device_info:
+0x5dcc 023893 fetch 1 ,mem_device_flag 
+0x5dcd 023894 beq mode_24g_device ,mouse_read_otp_24g_addr 
+0x5dce 023895 beq mode_bt_device1 ,mouse_read_otp_le_device1 
+0x5dcf 023896 beq mode_bt_device2 ,mouse_read_otp_le_device2 
+0x5dd0 023897 rtn 
+:      023899 mouse_read_otp_le_device1:
+0x5dd1 023900 call mouse_read_otp_le_device1_addr 
+0x5dd2 023901 branch mouse_read_otp_le_device1_locall_addr 
+:      023903 mouse_read_otp_le_device2:
+0x5dd3 023904 call mouse_read_otp_le_device2_addr 
+0x5dd4 023905 branch mouse_read_otp_le_device2_locall_addr 
+:      023908 mouse_read_otp_le_device1_addr:
+0x5dd5 023909 fetchr regb ,2 ,mem_otp_offset_le_addr1 
+0x5dd6 023910 copy regb ,regc 
+:      023911 mouse_read_otp_le_device1_addr_loop:
+0x5dd7 023912 call mouse_read_otp_le_addr1_common 
+0x5dd8 023913 fetch 6 ,mem_mouse_le_addr1_temp 
+0x5dd9 023914 branch mouse_le_addr1_load ,blank 
+0x5dda 023915 store 6 ,mem_mouse_le_addr1_last 
+0x5ddb 023916 increase 6 ,regc 
+0x5ddc 023917 fetch 2 ,mem_otp_offset_le_addr1_end 
+0x5ddd 023918 isub regc ,null 
+0x5dde 023919 nbranch mouse_le_addr1_load ,positive 
+0x5ddf 023920 copy regc ,regb 
+0x5de0 023921 branch mouse_read_otp_le_device1_addr_loop 
+:      023923 mouse_read_otp_le_addr1_common:
+0x5de1 023924 arg 6 ,loopcnt 
+0x5de2 023925 arg mem_mouse_le_addr1_temp ,rega 
+0x5de3 023926 branch otp_read_data 
+:      023928 mouse_le_addr1_load:
+0x5de4 023929 fetch 6 ,mem_mouse_le_addr1_last 
+0x5de5 023930 store 6 ,mem_device1_addr 
+0x5de6 023931 rtn 
+:      023934 mouse_read_otp_le_device1_locall_addr:
+0x5de7 023935 fetchr regb ,2 ,mem_otp_offset_le_locall_addr1 
+0x5de8 023936 copy regb ,regc 
+:      023937 mouse_read_otp_le_device1_locall_addr_loop:
+0x5de9 023938 call mouse_read_otp_le_locall_addr1_common 
+0x5dea 023939 fetch 6 ,mem_mouse_le_locall_addr1_temp 
+0x5deb 023940 branch mouse_le_locall_addr1_load ,blank 
+0x5dec 023941 store 6 ,mem_mouse_le_locall_addr1_last 
+0x5ded 023942 increase 6 ,regc 
+0x5dee 023943 fetch 2 ,mem_otp_offset_le_locall_addr1_end 
+0x5def 023944 isub regc ,null 
+0x5df0 023945 nbranch mouse_le_locall_addr1_load ,positive 
+0x5df1 023946 copy regc ,regb 
+0x5df2 023947 branch mouse_read_otp_le_device1_locall_addr_loop 
+:      023949 mouse_read_otp_le_locall_addr1_common:
+0x5df3 023950 arg 6 ,loopcnt 
+0x5df4 023951 arg mem_mouse_le_locall_addr1_temp ,rega 
+0x5df5 023952 branch otp_read_data 
+:      023954 mouse_le_locall_addr1_load:
+0x5df6 023955 fetch 6 ,mem_mouse_le_locall_addr1_last 
+0x5df7 023956 store 6 ,mem_device1_locall_addr 
+0x5df8 023957 rtn 
+:      023961 mouse_read_otp_le_device2_addr:
+0x5df9 023962 fetchr regb ,2 ,mem_otp_offset_le_addr2 
+0x5dfa 023963 copy regb ,regc 
+:      023964 mouse_read_otp_le_device2_addr_loop:
+0x5dfb 023965 call mouse_read_otp_le_addr2_common 
+0x5dfc 023966 fetch 6 ,mem_mouse_le_addr2_temp 
+0x5dfd 023967 branch mouse_le_addr2_load ,blank 
+0x5dfe 023968 store 6 ,mem_mouse_le_addr2_last 
+0x5dff 023969 increase 6 ,regc 
+0x5e00 023970 fetch 2 ,mem_otp_offset_le_addr2_end 
+0x5e01 023971 isub regc ,null 
+0x5e02 023972 nbranch mouse_le_addr2_load ,positive 
+0x5e03 023973 copy regc ,regb 
+0x5e04 023974 branch mouse_read_otp_le_device2_addr_loop 
+:      023976 mouse_read_otp_le_addr2_common:
+0x5e05 023977 arg 6 ,loopcnt 
+0x5e06 023978 arg mem_mouse_le_addr2_temp ,rega 
+0x5e07 023979 branch otp_read_data 
+:      023981 mouse_le_addr2_load:
+0x5e08 023982 fetch 6 ,mem_mouse_le_addr2_last 
+0x5e09 023983 store 6 ,mem_device2_addr 
+0x5e0a 023984 rtn 
+:      023987 mouse_read_otp_le_device2_locall_addr:
+0x5e0b 023988 fetchr regb ,2 ,mem_otp_offset_le_locall_addr2 
+0x5e0c 023989 copy regb ,regc 
+:      023990 mouse_read_otp_le_device2_locall_addr_loop:
+0x5e0d 023991 call mouse_read_otp_le_locall_addr2_common 
+0x5e0e 023992 fetch 6 ,mem_mouse_le_locall_addr2_temp 
+0x5e0f 023993 branch mouse_le_locall_addr2_load ,blank 
+0x5e10 023994 store 6 ,mem_mouse_le_locall_addr2_last 
+0x5e11 023995 increase 6 ,regc 
+0x5e12 023996 fetch 2 ,mem_otp_offset_le_locall_addr2_end 
+0x5e13 023997 isub regc ,null 
+0x5e14 023998 nbranch mouse_le_locall_addr2_load ,positive 
+0x5e15 023999 copy regc ,regb 
+0x5e16 024000 branch mouse_read_otp_le_device2_locall_addr_loop 
+:      024002 mouse_read_otp_le_locall_addr2_common:
+0x5e17 024003 arg 6 ,loopcnt 
+0x5e18 024004 arg mem_mouse_le_locall_addr2_temp ,rega 
+0x5e19 024005 branch otp_read_data 
+:      024007 mouse_le_locall_addr2_load:
+0x5e1a 024008 fetch 6 ,mem_mouse_le_locall_addr2_last 
+0x5e1b 024009 store 6 ,mem_device2_locall_addr 
+0x5e1c 024010 rtn 
+:      024014 mouse_read_otp_24g_addr:
+0x5e1d 024015 fetchr regb ,2 ,mem_otp_offset_24g_addr 
+0x5e1e 024016 copy regb ,regc 
+:      024017 mouse_read_otp_24g_addr_loop:
+0x5e1f 024018 call mouse_read_otp_24g_addr_common 
+0x5e20 024019 fetch 4 ,mem_mouse_24g_addr_temp 
+0x5e21 024020 branch mouse_24g_addr_load ,blank 
+0x5e22 024021 store 4 ,mem_mouse_24g_addr_last 
+0x5e23 024022 increase 4 ,regc 
+0x5e24 024023 fetch 2 ,mem_otp_offset_24g_addr_end 
+0x5e25 024024 isub regc ,null 
+0x5e26 024025 nbranch mouse_24g_addr_load ,positive 
+0x5e27 024026 copy regc ,regb 
+0x5e28 024027 branch mouse_read_otp_24g_addr_loop 
+:      024029 mouse_read_otp_24g_addr_common:
+0x5e29 024030 arg 4 ,loopcnt 
+0x5e2a 024031 arg mem_mouse_24g_addr_temp ,rega 
+0x5e2b 024032 branch otp_read_data 
+:      024034 mouse_24g_addr_load:
+0x5e2c 024035 fetch 4 ,mem_mouse_24g_addr_last 
+0x5e2d 024036 store 4 ,mem_mouse_24g_addr 
+0x5e2e 024037 rtn 
+:      024040 mouse_read_otp_le_addr_increase_count_info:
+0x5e2f 024041 fetch 1 ,mem_device_flag 
+0x5e30 024042 rtneq mode_24g_device 
+0x5e31 024043 fetchr regb ,2 ,mem_otp_offset_le_addr_increase_count 
+0x5e32 024044 copy regb ,regc 
+:      024045 mouse_read_otp_le_addr_increase_count_loop:
+0x5e33 024046 call mouse_read_otp_le_addr_increase_count_common 
+0x5e34 024047 fetch 2 ,mem_random_addr_increase_count_temp 
+0x5e35 024048 branch mouse_le_addr_increase_count_load ,blank 
+0x5e36 024049 store 2 ,mem_random_addr_increase_count_last 
+0x5e37 024050 increase 2 ,regc 
+0x5e38 024051 fetch 2 ,mem_otp_offset_le_addr_increase_count_end 
+0x5e39 024052 isub regc ,null 
+0x5e3a 024053 nbranch mouse_le_addr_increase_count_load ,positive 
+0x5e3b 024054 copy regc ,regb 
+0x5e3c 024055 branch mouse_read_otp_le_addr_increase_count_loop 
+:      024057 mouse_read_otp_le_addr_increase_count_common:
+0x5e3d 024058 arg 2 ,loopcnt 
+0x5e3e 024059 arg mem_random_addr_increase_count_temp ,rega 
+0x5e3f 024060 branch otp_read_data 
+:      024062 mouse_le_addr_increase_count_load:
+0x5e40 024063 fetch 2 ,mem_random_addr_increase_count_temp 
+0x5e41 024064 store 2 ,mem_random_addr_increase_count 
+0x5e42 024065 rtn 
+:      024068 mouse_read_otp_dpi:
+0x5e43 024069 fetch mouse_flag_len ,mem_mouse_flag 
+0x5e44 024070 bbit0 mouse_enable_load_and_store_dpi ,mouse_load_default_dpi 
+0x5e45 024071 fetchr regb ,2 ,mem_otp_offset_dpi 
+0x5e46 024072 copy regb ,regc 
+:      024073 mouse_read_otp_dpi_loop:
+0x5e47 024074 call mouse_read_otp_dpi_common 
+0x5e48 024075 fetch 1 ,mem_mouse_dpi_temp 
+0x5e49 024076 branch mouse_dpi_load ,blank 
+0x5e4a 024077 store 1 ,mem_mouse_dpi_last 
+0x5e4b 024078 increase 1 ,regc 
+0x5e4c 024079 fetch 2 ,mem_otp_offset_dpi_end 
+0x5e4d 024080 isub regc ,null 
+0x5e4e 024081 nbranch mouse_dpi_load ,positive 
+0x5e4f 024082 copy regc ,regb 
+0x5e50 024083 branch mouse_read_otp_dpi_loop 
+:      024085 mouse_read_otp_dpi_common:
+0x5e51 024086 arg 1 ,loopcnt 
+0x5e52 024087 arg mem_mouse_dpi_temp ,rega 
+0x5e53 024088 branch otp_read_data 
+:      024090 mouse_dpi_load:
+0x5e54 024091 fetch 1 ,mem_mouse_dpi_last 
+0x5e55 024092 copy pdata ,temp 
+0x5e56 024093 and pdata ,0xf0 ,pdata 
+0x5e57 024094 branch mouse_dpi_load_last ,blank 
+0x5e58 024095 rshift4 pdata ,pdata 
+0x5e59 024096 branch mouse_dpi_load_end 
+:      024098 mouse_dpi_load_last:
+0x5e5a 024099 copy temp ,pdata 
+:      024100 mouse_dpi_load_end:
+0x5e5b 024101 store 1 ,mem_mouse_dpi 
+0x5e5c 024102 rtn 
+:      024107 mouse_idle:
+0x5e5d 024108 bpatch patch11_6 ,mem_patch11 
+0x5e5e 024109 call mouse_low_voltage_led_no_enter_lpm 
+0x5e5f 024110 call ui_check_paring_button 
+0x5e60 024111 call mouse_dpi_check 
+0x5e61 024112 call mouse_dpi_another_gpio_check 
+0x5e62 024113 call mouse_select_device_check 
+0x5e63 024114 call mouse_check_select_device_by_switch 
+0x5e64 024115 call mouse_bt_button_check 
+0x5e65 024116 branch mouse_wheel_check 
+:      024118 mouse_select_device_check:
+0x5e66 024119 fetch mouse_flag_len ,mem_mouse_flag 
+0x5e67 024120 bbit1 mouse_enable_select_device_by_pb_button ,mouse_select_device_by_pb_button 
+0x5e68 024121 bbit1 mouse_enable_pb_button_long_press_disconvery ,mouse_select_device_by_pb_button 
+0x5e69 024122 rtn 
+:      024124 mouse_select_device_by_pb_button_check_once:
+0x5e6a 024125 jam 0x03 ,mem_mouse_pbkey_press_status 
+:      024126 mouse_select_device_by_pb_button:
+0x5e6b 024127 call mouse_select_device_by_pb_button_check 
+0x5e6c 024128 branch mouse_select_device_by_pb_button_exit 
+:      024130 mouse_select_device_by_pb_button_check:
+0x5e6d 024131 bpatch patch11_7 ,mem_patch11 
+0x5e6e 024132 fetch 1 ,mem_config_select_device_button_gpio 
+0x5e6f 024133 rtneq gpio_disable 
+0x5e70 024134 arg 0 ,rega 
+0x5e71 024135 jam mouse_pb_key ,mem_mouse_key_temp 
+0x5e72 024136 fetcht 1 ,mem_config_select_device_button_gpio 
+0x5e73 024137 call mouse_pb_button_check 
+0x5e74 024138 store 1 ,mem_mouse_pbkey_press_status 
+0x5e75 024139 fetch 1 ,mem_matrix_public_gpio 
+0x5e76 024140 beq gpio_disable ,mouse_3io6key_pb_button_check_end 
+0x5e77 024141 branch mouse_matrix_public_gpio_reset 
+:      024143 mouse_retransmit_select_device_by_pb_button:
+0x5e78 024144 call mouse_select_device_by_pb_button_check 
+0x5e79 024145 copy rega ,pdata 
+0x5e7a 024146 bbit1 mouse_pb_key ,mouse_select_device_button_down + 2 
+0x5e7b 024147 branch mouse_select_device_button_up 
+:      024149 mouse_3io6key_pb_button_check_end:
+0x5e7c 024150 fetcht 1 ,mem_config_select_device_button_gpio 
+0x5e7d 024151 call mouse_gpio_config_input_pu 
+:      024152 mouse_select_device_by_pb_button_exit:
+0x5e7e 024153 copy rega ,pdata 
+0x5e7f 024154 bbit1 mouse_pb_key ,mouse_select_device_button_down 
+0x5e80 024155 branch mouse_select_device_button_up 
+:      024157 mouse_pb_button_check:
+0x5e81 024158 fetch mouse_flag_len ,mem_mouse_flag 
+0x5e82 024159 bbit1 mouse_enable_pb_button_connect_gnd ,mouse_pb_button_connect_gnd 
+0x5e83 024160 fetch 1 ,mem_mouse_pbkey_press_status 
+0x5e84 024161 copy pdata ,regc 
+0x5e85 024162 fetch 1 ,mem_matrix_public_gpio 
+0x5e86 024163 beq gpio_disable ,mouse_3io6key_check 
+0x5e87 024164 fetch 1 ,mem_mouse_ghost_flag 
+0x5e88 024165 nbranch mouse_select_device_by_pb_button_end ,blank 
+0x5e89 024166 branch mouse_pb_button_connect_matrix 
+:      024168 mouse_select_device_by_pb_button_end:
+0x5e8a 024169 jam pb_button_state_up ,mem_select_device_button_statue 
+0x5e8b 024170 jam 0 ,mem_mouse_pbkey_press_status 
+0x5e8c 024171 rtn 
+:      024173 mouse_pb_button_connect_gnd:
+0x5e8d 024174 fetch 1 ,mem_mouse_pbkey_press_status 
+0x5e8e 024175 branch mouse_check_key_connect_gnd 
+:      024177 mouse_pb_button_connect_matrix:
+0x5e8f 024178 call gpio_get_bit 
+0x5e90 024179 fetcht 1 ,mem_matrix_public_gpio 
+0x5e91 024180 branch mouse_pb_button_connect_gnd ,true 
+0x5e92 024181 fetcht 1 ,mem_matrix_public_gpio 
+0x5e93 024182 call gpio_out_active 
+0x5e94 024183 fetcht 1 ,mem_config_select_device_button_gpio 
+0x5e95 024184 fetch 1 ,mem_mouse_pbkey_press_status 
+0x5e96 024185 branch mouse_check_key_connect_gnd 
+:      024187 mouse_select_device_button_up:
+0x5e97 024188 fetch 1 ,mem_select_device_button_statue 
+0x5e98 024189 rtneq pb_button_state_up 
+0x5e99 024190 jam pb_button_state_up ,mem_select_device_button_statue 
+0x5e9a 024191 fetch mouse_flag_len ,mem_mouse_flag 
+0x5e9b 024192 rtnbit1 mouse_enable_pb_button_short_press_enter_discovery 
+0x5e9c 024193 fetch 1 ,mem_bt_discovery_count 
+0x5e9d 024194 sub pdata ,20 ,null 
+0x5e9e 024195 ncall mouse_ready_reconnection_by_button ,positive 
+0x5e9f 024196 fetch 1 ,mem_ui_button_timeout 
+0x5ea0 024197 store 1 ,mem_bt_discovery_count 
+0x5ea1 024198 rtn 
+:      024200 mouse_select_device_button_down:
+0x5ea2 024201 call mouse_select_device_ghost_check 
+0x5ea3 024202 rtn user 
+0x5ea4 024203 fetch 1 ,mem_select_device_button_statue 
+0x5ea5 024204 rtneq pb_button_state_down 
+0x5ea6 024205 jam pb_button_state_down ,mem_select_device_button_statue 
+0x5ea7 024206 fetch mouse_flag_len ,mem_mouse_flag 
+0x5ea8 024207 bbit1 mouse_enable_pb_button_short_press_enter_discovery ,mouse_long_button_bt_discovery 
+0x5ea9 024208 fetch 1 ,mem_mouse_direct_timer 
+0x5eaa 024209 rtn blank 
+0x5eab 024210 fetch 1 ,mem_mouse_direct_timeout 
+0x5eac 024211 store 1 ,mem_mouse_direct_timer 
+0x5ead 024212 rtn 
+:      024214 mouse_select_device_ghost_check:
+0x5eae 024215 disable user 
+0x5eaf 024216 fetch mouse_flag_len ,mem_mouse_flag 
+0x5eb0 024217 rtnbit1 mouse_enable_pb_button_connect_gnd 
+:      024218 mouse_ghost_key_value_check:
+0x5eb1 024219 fetch 1 ,mem_mouse_lkey_press_status 
+0x5eb2 024220 rtn blank 
+0x5eb3 024221 fetch 1 ,mem_mouse_rkey_press_status 
+0x5eb4 024222 rtn blank 
+0x5eb5 024223 branch enable_user 
+:      024225 mouse_check_select_device_by_switch:
+0x5eb6 024226 bpatch patch12_0 ,mem_patch12 
+0x5eb7 024227 fetch mouse_flag_len ,mem_mouse_flag 
+0x5eb8 024228 rtnbit0 mouse_enable_select_device_by_switch_gpio 
+0x5eb9 024229 fetcht 1 ,mem_device_switch_gpio 
+0x5eba 024230 call mouse_gpio_config_input_pu 
+0x5ebb 024231 fetcht 1 ,mem_device_switch_gpio 
+0x5ebc 024232 call gpio_get_bit 
+0x5ebd 024233 branch mouse_check_select_24g_device ,true 
+:      024234 mouse_select_btdevice:
+0x5ebe 024235 fetch 1 ,mem_device_flag 
+0x5ebf 024236 rtneq mode_bt_device1 
+0x5ec0 024237 jam mode_bt_device1 ,mem_device_flag 
+0x5ec1 024238 branch mouse_stop_bluetooth_mode 
+:      024240 mouse_check_select_24g_device:
+0x5ec2 024241 fetch 1 ,mem_device_flag 
+0x5ec3 024242 rtneq mode_24g_device 
+0x5ec4 024243 jam mode_24g_device ,mem_device_flag 
+0x5ec5 024244 branch mouse_24g_stop 
+:      024246 mouse_ready_reconnection_by_button:
+0x5ec6 024247 bpatch patch12_1 ,mem_patch12 
+0x5ec7 024248 fetch 1 ,mem_device_number 
+0x5ec8 024249 rtneq 1 
+0x5ec9 024250 call mouse_select_device_number 
+0x5eca 024251 storet 1 ,mem_device_flag 
+:      024252 mouse_store_device_number_before_reset:
+0x5ecb 024254 call mouse_select_device_enable 
+0x5ecc 024255 call mouse_stop_bluetooth_mode 
+0x5ecd 024256 call app_evt_button_long_pressed 
+0x5ece 024257 call mouse_select_device_disable 
+0x5ecf 024258 jam 1 ,mem_mouse_need_soft_reset 
+0x5ed0 024259 branch mouse_store_device_info_delay 
+:      024261 mouse_soft_reset:
+0x5ed1 024262 call mouse_select_device_enable 
+0x5ed2 024263 branch soft_reset_chip 
+:      024265 mouse_select_device_number:
+0x5ed3 024266 fetcht 1 ,mem_device_flag 
+0x5ed4 024267 increase 1 ,temp 
+0x5ed5 024268 fetch mouse_flag_len ,mem_mouse_flag 
+0x5ed6 024269 bbit1 mouse_enable_24g ,mouse_select_device_number_24g 
+0x5ed7 024270 sub temp ,2 ,null 
+0x5ed8 024271 ncall mouse_select_device_count_clean_bt ,positive 
+0x5ed9 024272 rtn 
+:      024274 mouse_select_device_number_24g:
+0x5eda 024275 fetch 1 ,mem_device_number 
+0x5edb 024276 increase -1 ,pdata 
+0x5edc 024277 isub temp ,null 
+0x5edd 024278 ncall mouse_select_device_count_clean_24g ,positive 
+0x5ede 024279 rtn 
+:      024281 mouse_select_device_count_clean_24g:
+0x5edf 024282 arg 0 ,temp 
+0x5ee0 024283 rtn 
+:      024284 mouse_select_device_count_clean_bt:
+0x5ee1 024285 arg 1 ,temp 
+0x5ee2 024286 rtn 
+:      024288 mouse_store_device_number2eeprom:
+0x5ee3 024289 arg 1 ,temp 
+0x5ee4 024290 arg mem_device_flag ,rega 
+0x5ee5 024291 arg 0 ,regb 
+0x5ee6 024292 branch iicd_write_protect_eep_data 
+:      024294 mouse_bt_button_check:
+0x5ee7 024295 fetch mouse_flag_len ,mem_mouse_flag 
+0x5ee8 024296 rtnbit0 mouse_enable_pb_button_short_press_enter_discovery 
+0x5ee9 024297 branch mouse_select_device_by_pb_button 
+:      024299 mouse_select_device_enable:
+0x5eea 024300 arg mouse_select_device_flag ,queue 
+0x5eeb 024301 branch mouse_enable_function_flag 
+:      024302 mouse_select_device_disable:
+0x5eec 024303 arg mouse_select_device_flag ,queue 
+0x5eed 024304 branch mouse_disable_function_flag 
+:      024305 mouse_bt_cannel_reconn_enable:
+0x5eee 024306 arg mouse_bt_cannel_reconn_flag ,queue 
+0x5eef 024307 branch mouse_enable_function_flag 
+:      024308 mouse_bt_cannel_reconn_disable:
+0x5ef0 024309 arg mouse_bt_cannel_reconn_flag ,queue 
+0x5ef1 024310 branch mouse_disable_function_flag 
+:      024311 mouse_bt_discovery_button_down_enable:
+0x5ef2 024312 arg mouse_bt_discovery_button_down_flag ,queue 
+0x5ef3 024313 branch mouse_enable_function_flag 
+:      024314 mouse_bt_discovery_button_down_disable:
+0x5ef4 024315 arg mouse_bt_discovery_button_down_flag ,queue 
+0x5ef5 024316 branch mouse_disable_function_flag 
+:      024318 mouse_adc_read_enable:
+0x5ef6 024319 arg mouse_enable_adc ,queue 
+0x5ef7 024320 branch mouse_enable_function_flag 
+:      024322 mouse_24g_set_250hz:
+0x5ef8 024323 arg mouse_enable_24g_250hz ,queue 
+0x5ef9 024324 branch mouse_enable_function_flag 
+:      024326 mouse_24g_search_dongle_enable:
+0x5efa 024327 arg mouse_enable_24g_search_dongle ,queue 
+0x5efb 024328 branch mouse_enable_function_flag 
+:      024330 mouse_16m_enable:
+0x5efc 024331 arg mouse_enable_16m ,queue 
+0x5efd 024332 branch mouse_enable_function_flag 
+:      024334 mouse_dpi_4level_enable:
+0x5efe 024335 arg mouse_enable_dpi_level_4 ,queue 
+0x5eff 024336 branch mouse_enable_function_flag 
+:      024338 mouse_enable_function_flag:
+0x5f00 024339 fetch mouse_flag_len ,mem_mouse_flag 
+0x5f01 024340 qset1 pdata 
+0x5f02 024341 store mouse_flag_len ,mem_mouse_flag 
+0x5f03 024342 rtn 
+:      024344 mouse_disable_function_flag:
+0x5f04 024345 fetch mouse_flag_len ,mem_mouse_flag 
+0x5f05 024346 qset0 pdata 
+0x5f06 024347 store mouse_flag_len ,mem_mouse_flag 
+0x5f07 024348 rtn 
+:      024350 mouse_customer_key_enable:
+0x5f08 024351 setarg 0 
+0x5f09 024352 store 8 ,mem_customer_key_press 
+0x5f0a 024353 store 8 ,mem_customer_key_release 
+0x5f0b 024354 fetch 1 ,mem_mouse_customer_function 
+0x5f0c 024355 beq 2 ,mouse_customer_key_ctrl_alt_a 
+0x5f0d 024356 beq 3 ,mouse_customer_ac_home 
+0x5f0e 024357 beq 4 ,mouse_customer_key_play 
+0x5f0f 024358 setarg 0x070008 
+:      024359 mouse_customer_standrad_key_set:
+0x5f10 024360 store 8 ,mem_customer_key_press + 1 
+0x5f11 024361 rtn 
+:      024363 mouse_customer_key_ctrl_alt_a:
+0x5f12 024364 setarg 0x040005 
+0x5f13 024365 branch mouse_customer_standrad_key_set 
+:      024367 mouse_customer_ac_home:
+0x5f14 024368 setarg 0x022303 
+:      024369 mouse_customer_media_key_set:
+0x5f15 024370 store 8 ,mem_customer_key_press 
+0x5f16 024371 setarg 0x03 
+0x5f17 024372 store 8 ,mem_customer_key_release 
+0x5f18 024373 rtn 
+:      024375 mouse_customer_key_play:
+0x5f19 024376 setarg 0x00cd03 
+0x5f1a 024377 branch mouse_customer_media_key_set 
+:      024380 mouse_polling_device:
+0x5f1b 024381 bpatch patch12_2 ,mem_patch12 
+0x5f1c 024382 fetch 1 ,mem_reconn_times 
+0x5f1d 024383 increase -1 ,pdata 
+0x5f1e 024384 store 1 ,mem_reconn_times 
+0x5f1f 024385 fetcht 1 ,mem_device_flag 
+0x5f20 024386 sub temp ,1 ,null 
+0x5f21 024387 ncall mouse_select_device_number ,zero 
+0x5f22 024388 storet 1 ,mem_device_flag 
+0x5f23 024389 call mouse_store_device_number2eeprom 
+0x5f24 024390 call mouse_before_store_reconn_info 
+0x5f25 024391 branch mouse_start_reconnect_device 
+:      024395 mouse_drawing_optima:
+0x5f26 024396 bpatch patch12_3 ,mem_patch12 
+0x5f27 024397 fetch 1 ,mem_config_sensor_type 
+0x5f28 024398 rtneq p3212 
+0x5f29 024399 fetch mouse_flag_len ,mem_mouse_flag 
+0x5f2a 024400 rtnbit0 mouse_enable_smoother 
+0x5f2b 024401 fetch 4 ,mem_mouse_x 
+0x5f2c 024402 rtn blank 
+0x5f2d 024403 call mouse_data_abs_check 
+0x5f2e 024404 setarg 0x03 
+0x5f2f 024405 call mouse_pdata_greater_than_check 
+0x5f30 024406 call mouse_disable_asm ,blank 
+0x5f31 024407 ncall mouse_enable_asm ,blank 
+0x5f32 024408 setarg 0x02 
+0x5f33 024409 call mouse_data_less_than_check 
+0x5f34 024410 call mouse_disable_asm ,blank 
+0x5f35 024411 fetch 1 ,mem_mouse_asm_flag 
+0x5f36 024412 beq 1 ,mouse_drawing_optima_modify 
+:      024413 mouse_drawing_optima_init:
+0x5f37 024414 fetch mouse_flag_len ,mem_mouse_flag 
+0x5f38 024415 rtnbit0 mouse_enable_smoother 
+0x5f39 024416 arg 5 ,loopcnt 
+0x5f3a 024417 arg mem_mouse_asm_flag ,contw 
+0x5f3b 024418 branch clear_mem 
+:      024420 mouse_drawing_optima_modify:
+0x5f3c 024421 call mouse_drawing_optima_xy_offset_modify 
+0x5f3d 024422 fetch 2 ,mem_mouse_x_pre 
+0x5f3e 024423 store 2 ,mem_data_pre 
+0x5f3f 024424 fetch 2 ,mem_mouse_x 
+0x5f40 024425 store 2 ,mem_data_current 
+0x5f41 024426 call mouse_drawing_optima_data_x 
+0x5f42 024427 fetch 2 ,mem_data_pre 
+0x5f43 024428 store 2 ,mem_mouse_x_pre 
+0x5f44 024429 fetch 2 ,mem_data_current 
+0x5f45 024430 store 2 ,mem_mouse_x 
+0x5f46 024432 fetch 2 ,mem_mouse_y_pre 
+0x5f47 024433 store 2 ,mem_data_pre 
+0x5f48 024434 fetch 2 ,mem_mouse_y 
+0x5f49 024435 store 2 ,mem_data_current 
+0x5f4a 024436 call mouse_drawing_optima_data_y 
+0x5f4b 024437 fetch 2 ,mem_data_pre 
+0x5f4c 024438 store 2 ,mem_mouse_y_pre 
+0x5f4d 024439 fetch 2 ,mem_data_current 
+0x5f4e 024440 store 2 ,mem_mouse_y 
+0x5f4f 024441 rtn 
+:      024443 mouse_drawing_optima_xy_offset_modify:
+0x5f50 024444 fetch mouse_flag_len ,mem_mouse_flag 
+0x5f51 024445 rtnbit0 mouse_enable_xy_offset 
+0x5f52 024446 bpatch patch12_4 ,mem_patch12 
+0x5f53 024447 fetch 2 ,mem_mouse_x_pre 
+0x5f54 024448 store 2 ,mem_data_value 
+0x5f55 024449 call mouse_pre_xy_data_judge 
+0x5f56 024450 store 2 ,mem_mouse_x_pre 
+0x5f57 024451 fetch 2 ,mem_mouse_x 
+0x5f58 024452 store 2 ,mem_data_value 
+0x5f59 024453 call mouse_current_xy_data_judge 
+0x5f5a 024454 store 2 ,mem_mouse_x 
+0x5f5b 024455 fetch 2 ,mem_mouse_y_pre 
+0x5f5c 024456 store 2 ,mem_data_value 
+0x5f5d 024457 call mouse_pre_xy_data_judge 
+0x5f5e 024458 store 2 ,mem_mouse_y_pre 
+0x5f5f 024459 fetch 2 ,mem_mouse_y 
+0x5f60 024460 store 2 ,mem_data_value 
+0x5f61 024461 call mouse_current_xy_data_judge 
+0x5f62 024462 store 2 ,mem_mouse_y 
+0x5f63 024463 rtn 
+:      024465 mouse_pre_xy_data_judge:
+0x5f64 024466 fetch 1 ,mem_data_value + 1 
+0x5f65 024467 branch mouse_pre_xy_pdata_offset ,blank 
+0x5f66 024468 branch mouse_pre_xy_ndata_offset 
+:      024470 mouse_pre_xy_pdata_offset:
+0x5f67 024471 fetch 1 ,mem_data_value 
+0x5f68 024472 call mouse_pre_xy_get_0_4_times 
+0x5f69 024473 store 1 ,mem_data_value 
+:      024474 mouse_xy_data_offset_new:
+0x5f6a 024475 fetch 2 ,mem_data_value 
+0x5f6b 024476 rtn 
+:      024477 mouse_pre_xy_ndata_offset:
+0x5f6c 024478 fetch 1 ,mem_data_value 
+0x5f6d 024479 call mouse_pdata_invert 
+0x5f6e 024480 call mouse_pre_xy_get_0_4_times 
+0x5f6f 024481 call disable_blank ,blank 
+0x5f70 024482 call mouse_pdata_get_new_value 
+0x5f71 024483 branch mouse_xy_data_offset_new 
+:      024485 mouse_current_xy_data_judge:
+0x5f72 024486 fetch 1 ,mem_data_value + 1 
+0x5f73 024487 branch mouse_current_xy_pdata_offset ,blank 
+0x5f74 024488 branch mouse_current_xy_ndata_offset 
+:      024489 mouse_current_xy_pdata_offset:
+0x5f75 024490 fetch 1 ,mem_data_value 
+0x5f76 024491 call mouse_current_xy_get_0_6_times 
+0x5f77 024492 store 1 ,mem_data_value 
+0x5f78 024493 branch mouse_xy_data_offset_new 
+:      024494 mouse_current_xy_ndata_offset:
+0x5f79 024495 fetch 1 ,mem_data_value 
+0x5f7a 024496 call mouse_pdata_invert 
+0x5f7b 024497 call mouse_current_xy_get_0_6_times 
+0x5f7c 024498 call disable_blank ,blank 
+0x5f7d 024499 call mouse_pdata_get_new_value 
+0x5f7e 024500 branch mouse_xy_data_offset_new 
+:      024502 mouse_pre_xy_get_0_4_times:
+0x5f7f 024503 mul32 pdata ,4 ,pdata 
+0x5f80 024504 div pdata ,5 
+0x5f81 024505 call wait_div_end 
+0x5f82 024506 quotient pdata 
+0x5f83 024507 rtn 
+:      024508 mouse_current_xy_get_0_6_times:
+0x5f84 024509 mul32 pdata ,12 ,pdata 
+0x5f85 024510 div pdata ,10 
+0x5f86 024511 call wait_div_end 
+0x5f87 024512 quotient pdata 
+0x5f88 024513 rtn 
+:      024515 mouse_drawing_optima_data_x:
+0x5f89 024516 fetch 2 ,mem_data_pre 
+0x5f8a 024517 fetcht 2 ,mem_data_current 
+0x5f8b 024518 iadd temp ,pdata 
+0x5f8c 024519 fetcht 1 ,mem_mouse_data_xtemp 
+0x5f8d 024520 iadd temp ,pdata 
+0x5f8e 024521 and pdata ,0x01 ,temp 
+0x5f8f 024522 storet 1 ,mem_mouse_data_xtemp 
+0x5f90 024523 branch mouse_drawing_optima_data 
+:      024525 mouse_drawing_optima_data_y:
+0x5f91 024526 fetch 2 ,mem_data_pre 
+0x5f92 024527 fetcht 2 ,mem_data_current 
+0x5f93 024528 iadd temp ,pdata 
+0x5f94 024529 fetcht 1 ,mem_mouse_data_ytemp 
+0x5f95 024530 iadd temp ,pdata 
+0x5f96 024531 and pdata ,0x01 ,temp 
+0x5f97 024532 storet 1 ,mem_mouse_data_ytemp 
+0x5f98 024533 branch mouse_drawing_optima_data 
+:      024535 mouse_drawing_optima_data:
+0x5f99 024536 store 3 ,mem_data_sum 
+0x5f9a 024537 isolate1 16 ,pdata 
+0x5f9b 024538 branch mouse_data_sum_overflow ,true 
+0x5f9c 024539 fetch 1 ,mem_data_sum + 1 
+0x5f9d 024540 beq 0xff ,mouse_data_sum_n 
+0x5f9e 024541 fetch 1 ,mem_data_sum 
+:      024542 mouse_data_store_pre:
+0x5f9f 024543 rshift pdata ,pdata 
+0x5fa0 024544 store 2 ,mem_data_pre 
+0x5fa1 024545 store 2 ,mem_data_current 
+0x5fa2 024546 rtn 
+:      024547 mouse_data_sum_overflow:
+0x5fa3 024548 fetch 1 ,mem_data_sum + 1 
+0x5fa4 024549 beq 0 ,mouse_data_sum_overflow_p 
+0x5fa5 024550 fetch 3 ,mem_data_sum 
+0x5fa6 024551 branch mouse_data_store_pre 
+:      024552 mouse_data_sum_overflow_p:
+0x5fa7 024553 jam 0 ,mem_data_sum + 2 
+0x5fa8 024554 fetch 1 ,mem_data_sum 
+0x5fa9 024555 branch mouse_data_store_pre 
+:      024557 mouse_data_sum_n:
+0x5faa 024558 fetch 1 ,mem_data_sum 
+0x5fab 024559 call mouse_pdata_get_half 
+0x5fac 024560 store 1 ,mem_data_pre 
+0x5fad 024561 store 1 ,mem_data_current 
+0x5fae 024562 branch mouse_data_zero ,blank 
+0x5faf 024563 setarg 0xff 
+:      024564 mouse_data_set_direction:
+0x5fb0 024565 store 1 ,mem_data_pre + 1 
+0x5fb1 024566 store 1 ,mem_data_current + 1 
+0x5fb2 024567 rtn 
+:      024568 mouse_data_zero:
+0x5fb3 024569 setarg 0 
+0x5fb4 024570 branch mouse_data_set_direction 
+:      024572 mouse_pdata_get_half:
+0x5fb5 024573 call mouse_pdata_invert 
+0x5fb6 024574 rshift pdata ,pdata 
+:      024575 mouse_pdata_get_new_value:
+0x5fb7 024576 call mouse_rega_in_out 
+0x5fb8 024577 sub pdata ,0 ,pdata 
+0x5fb9 024578 store 1 ,mem_data_value 
+0x5fba 024579 rtn 
+:      024581 mouse_pdata_invert:
+0x5fbb 024582 sub pdata ,0 ,pdata 
+:      024583 mouse_rega_in_out:
+0x5fbc 024584 store 1 ,mem_rega 
+0x5fbd 024585 fetch 1 ,mem_rega 
+0x5fbe 024586 rtn 
+:      024588 mouse_disable_asm:
+0x5fbf 024589 jam 0 ,mem_mouse_asm_flag 
+0x5fc0 024590 rtn 
+:      024591 mouse_enable_asm:
+0x5fc1 024592 jam 1 ,mem_mouse_asm_flag 
+0x5fc2 024593 rtn 
+:      024596 mouse_pdata_greater_than_check:
+0x5fc3 024597 isub rega ,null 
+0x5fc4 024598 nbranch disable_blank ,positive 
+0x5fc5 024599 isub regb ,null 
+0x5fc6 024600 nbranch disable_blank ,positive 
+0x5fc7 024601 branch enable_blank 
+:      024602 mouse_data_less_than_check:
+0x5fc8 024603 isub rega ,null 
+0x5fc9 024604 nrtn positive 
+0x5fca 024605 isub regb ,null 
+0x5fcb 024606 nrtn positive 
+0x5fcc 024607 branch enable_blank 
+:      024609 mouse_data_abs_check:
+0x5fcd 024610 fetch 2 ,mem_mouse_x 
+0x5fce 024611 call mouse_data_abs 
+0x5fcf 024612 copy pdata ,rega 
+0x5fd0 024613 fetch 2 ,mem_mouse_y 
+0x5fd1 024614 call mouse_data_abs 
+0x5fd2 024615 copy pdata ,regb 
+0x5fd3 024616 rtn 
+:      024618 mouse_data_abs:
+0x5fd4 024619 store 2 ,mem_data_current 
+0x5fd5 024620 fetch 1 ,mem_data_current + 1 
+0x5fd6 024621 beq 0xff ,mouse_data_reversal 
+0x5fd7 024622 fetch 1 ,mem_data_current 
+:      024623 mouse_data_abs_store:
+0x5fd8 024624 and_into 0xff ,pdata 
+0x5fd9 024626 rtn 
+:      024627 mouse_data_reversal:
+0x5fda 024628 fetch 2 ,mem_data_current 
+0x5fdb 024629 sub pdata ,0 ,pdata 
+0x5fdc 024630 branch mouse_data_abs_store 
+:      024632 mouse_24g_long_sleep_param_update_timer:
+0x5fdd 024633 arg mem_24g_long_sleep_param_update_timer ,regc 
+0x5fde 024634 arg mouse_24g_long_sleep_normal_param ,regb 
+0x5fdf 024635 branch timer_single_step 
+:      024636 mouse_24g_long_sleep_normal_param:
+0x5fe0 024637 fetch 4 ,mem_24g_long_sleep_set1 
+0x5fe1 024638 store 4 ,mem_24g_enter_hibernate 
+0x5fe2 024639 jam 1 ,mem_mouse_long_mult_flag 
+0x5fe3 024640 rtn 
+:      024643 mouse_24g_long_sleep_set:
+0x5fe4 024644 fetch 1 ,mem_24g_long_sleep_set_level 
+0x5fe5 024645 beq 0x00 ,mouse_24g_long_sleep_set_30ms 
+0x5fe6 024646 beq 0x01 ,mouse_24g_long_sleep_set_50ms 
+0x5fe7 024647 beq 0x02 ,mouse_24g_long_sleep_set_80ms 
+0x5fe8 024648 beq 0x03 ,mouse_24g_long_sleep_set_100ms 
+:      024649 mouse_24g_long_sleep_set_80ms:
+0x5fe9 024650 setarg 0x0ea600 
+:      024651 mouse_24g_long_sleep_set_end:
+0x5fea 024652 store 4 ,mem_24g_long_sleep_set1 
+0x5feb 024653 rtn 
+:      024654 mouse_24g_long_sleep_set_30ms:
+0x5fec 024655 setarg 0x05e740 
+0x5fed 024656 branch mouse_24g_long_sleep_set_end 
+:      024657 mouse_24g_long_sleep_set_50ms:
+0x5fee 024658 setarg 0x0927c0 
+0x5fef 024659 branch mouse_24g_long_sleep_set_end 
+:      024660 mouse_24g_long_sleep_set_100ms:
+0x5ff0 024661 setarg 0x124f80 
+0x5ff1 024662 branch mouse_24g_long_sleep_set_end 
+:      024664 mouse_24g_hibernate_set:
+0x5ff2 024665 bpatch patch12_5 ,mem_patch12 
+0x5ff3 024666 jam 0 ,mem_24g_attempt_fail_flag 
+0x5ff4 024667 call g24_transmit_next_packet 
+0x5ff5 024668 setarg -1 
+0x5ff6 024669 store 4 ,mem_24g_enter_hibernate 
+0x5ff7 024670 setarg 0 
+0x5ff8 024671 store 7 ,mem_mouse_key 
+0x5ff9 024672 jam 1 ,mem_sensor_shutdown_flag 
+0x5ffa 024673 call mouse_sensor_powerdown 
+0x5ffb 024674 call mouse_setgpio_hibernate 
+0x5ffc 024675 branch mouse_24g_long_sleep 
+:      024677 mouse_wakeup_24g:
+0x5ffd 024678 fetch 1 ,mem_sensor_shutdown_flag 
+0x5ffe 024679 ncall mouse_wakeup_24g_from_long_sleep ,blank 
+0x5fff 024680 jam 0 ,mem_sensor_shutdown_flag 
+0x6000 024681 rtn 
+:      024683 mouse_wakeup_24g_from_long_sleep:
+0x6001 024684 call mouse_init_sensor_wakeup 
+0x6002 024685 fetch mouse_flag_len ,mem_mouse_flag 
+0x6003 024686 rtnbit0 mouse_enable_wheel_wake_up_cancel 
+:      024687 mouse_wheel_gpio_init:
+0x6004 024688 fetch 1 ,mem_whee_a_data_gpio 
+0x6005 024689 arg gpcfg_pullup ,temp 
+0x6006 024690 call gpio_config_function_int 
+0x6007 024691 fetch 1 ,mem_whee_b_data_gpio 
+0x6008 024692 arg gpcfg_pullup ,temp 
+0x6009 024693 branch gpio_config_function_int 
+:      024695 mouse_24g_transmit_start:
+0x600a 024696 call mouse_24g_fast_conn_mode_check 
+0x600b 024697 fetch 1 ,mem_sensor_shutdown_flag 
+0x600c 024698 nbranch mouse_24g_short_sleep ,blank 
+0x600d 024699 branch g24_transmit_start_next 
+:      024701 mouse_24g_fast_conn_mode_check:
+0x600e 024702 fetch 4 ,mem_24g_receiver_addr 
+0x600f 024703 fetcht 4 ,mem_24g_fast_conn_addr 
+0x6010 024704 isub temp ,null 
+0x6011 024705 branch mouse_soft_agc_enable ,zero 
+0x6012 024706 branch mouse_soft_agc_disable 
+:      024708 mouse_soft_agc_enable:
+0x6013 024709 jam 0 ,mem_gain_fix 
+0x6014 024710 jam tx_power_factory ,mem_tx_power 
+0x6015 024711 rtn 
+:      024712 mouse_soft_agc_disable:
+0x6016 024713 jam 0xff ,mem_gain_fix 
+0x6017 024714 rtn 
+:      024716 mouse_24g_stop:
+0x6018 024717 set0 mark_24g ,mark 
+0x6019 024718 jam state_24g_stop ,mem_24g_conn_sm 
+0x601a 024719 arg mouse_24g_pairing_flag ,queue 
+0x601b 024720 branch mouse_disable_function_flag 
+:      024722 mouse_24g_start_mode:
+0x601c 024723 fetch mouse_flag_len ,mem_mouse_flag 
+0x601d 024724 bbit0 mouse_enable_24g ,mouse_24g_mode_setup_error 
+0x601e 024725 call mouse_device_24g_pair_led_config 
+0x601f 024726 call mouse_wakeup_from_power_check 
+0x6020 024727 branch mouse_24g_reconn_dongle_start ,user 
+0x6021 024728 fetch mouse_flag_len ,mem_mouse_flag 
+0x6022 024729 bbit1 mouse_enable_auto_24g_paring ,mouse_24g_reconn_general_dongle 
+0x6023 024730 bbit0 mouse_enable_24g_power_on_pairing ,mouse_24g_reconn_general_dongle 
+0x6024 024731 call mouse_key_check_once 
+0x6025 024732 and rega ,0x07 ,pdata 
+0x6026 024733 fetcht 1 ,mem_mouse_commbination_key_24g 
+0x6027 024734 isub temp ,null 
+0x6028 024735 branch mouse_24g_start_pair_mode ,zero 
+0x6029 024736 branch mouse_24g_reconn_general_dongle 
+:      024738 mouse_24g_mode_setup_error:
+0x602a 024739 fetch 1 ,mem_reconn_times 
+0x602b 024740 nbranch mouse_polling_device ,blank 
+0x602c 024741 rtn 
+:      024743 mouse_24g_first_start_auto_pair_mode:
+0x602d 024744 call mouse_wakeup_from_power_check 
+0x602e 024745 branch mouse_24g_first_start_reconn ,user 
+:      024746 mouse_24g_reconn_general_dongle:
+0x602f 024747 jam mode_24g_device ,mem_device_flag 
+0x6030 024748 fetch 2 ,mem_mouse_24g_power_on_fast_conn_timer 
+0x6031 024749 store 2 ,mem_24g_reconn_timeout 
+0x6032 024750 jam fast_conn_and_3_0_addr ,mem_24g_reconn_type 
+0x6033 024751 branch g24_reconn_start 
+:      024753 mouse_24g_start_auto_pair:
+0x6034 024754 fetch 2 ,mem_24g_pair_timeout_init 
+0x6035 024755 store 2 ,mem_24g_reconn_timeout 
+0x6036 024756 jam pair_and_3_0_addr ,mem_24g_reconn_type 
+0x6037 024757 branch g24_reconn_start 
+:      024759 mouse_24g_first_start_reconn:
+0x6038 024760 fetch 1 ,mem_device_flag 
+0x6039 024761 beq mode_24g_device ,mouse_24g_reconn_dongle_start 
+0x603a 024762 call mouse_bluetooth_fast_conn_disable 
+:      024763 mouse_24g_first_bluetooth_reconnect:
+0x603b 024764 call mouse_24g_stop 
+0x603c 024765 jam mode_bt_device1 ,mem_device_flag 
+0x603d 024766 call mouse_select_reconn_device 
+0x603e 024767 branch mouse_start_reconnect_device 
+:      024769 mouse_24g_first_bb_event_reconn_timeout:
+0x603f 024770 call mouse_wakeup_from_power_check 
+0x6040 024771 branch mouse_app_enter_hibernate ,user 
+0x6041 024772 branch mouse_start_discovery 
+:      024774 mouse_24g_first_store_reconn_info:
+0x6042 024775 call mouse_wakeup_from_power_check 
+0x6043 024776 rtn user 
+0x6044 024777 fetch mouse_flag_len ,mem_mouse_flag 
+0x6045 024778 bbit1 mouse_enable_24g_first_auto_pairing ,mouse_store_device_info_delay 
+0x6046 024779 rtn 
+:      024781 mouse_24g_start_pair_mode:
+0x6047 024782 call mouse_device_24g_pair_led_config 
+0x6048 024783 jam 0 ,mem_24g_reconn_type 
+0x6049 024784 arg mouse_24g_pairing_flag ,queue 
+0x604a 024785 call mouse_enable_function_flag 
+0x604b 024786 setarg 0 
+0x604c 024787 store 2 ,mem_24g_reconn_timeout 
+0x604d 024788 call mouse_stop_discovery 
+0x604e 024789 jam type_ms ,mem_24g_data_type 
+0x604f 024790 fetch mouse_flag_len ,mem_mouse_flag 
+0x6050 024791 bbit0 mouse_enable_keyboard ,g24_pair_start 
+0x6051 024792 jam type_kb ,mem_24g_data_type 
+0x6052 024793 branch g24_pair_start 
+:      024795 mouse_24g_attempt_fail:
+0x6053 024796 fetch 1 ,mem_24g_attempt_fail_flag 
+0x6054 024797 nbranch mouse_24g_hibernate_set ,blank 
+0x6055 024798 fetch 1 ,mem_24g_reconn_type 
+0x6056 024799 beq fast_conn_and_3_0_addr ,mouse_24g_fast_conn_attempt_fail 
+0x6057 024800 beq pair_and_3_0_addr ,mouse_24g_auto_pair_attempt_fail 
+0x6058 024801 beq receiver_and_3_0_addr ,mouse_reconn_dongle_attempt_fail 
+:      024802 mouse_24g_attempt_fail_enter_hibernate:
+0x6059 024803 call mouse_24g_stop 
+0x605a 024804 fetch 1 ,mem_reconn_times 
+0x605b 024805 nbranch mouse_polling_device ,blank 
+0x605c 024806 fetch 1 ,mem_device_flag 
+0x605d 024807 beq mode_24g_device ,mouse_app_enter_hibernate 
+0x605e 024808 rtn 
+:      024810 mouse_24g_fast_conn_attempt_fail:
+0x605f 024811 fetch mouse_flag_len ,mem_mouse_flag 
+0x6060 024812 bbit1 mouse_enable_24g_first_auto_pairing ,mouse_24g_start_auto_pair 
+0x6061 024813 bbit1 mouse_enable_auto_24g_paring ,mouse_24g_start_auto_pair 
+0x6062 024814 bbit0 mouse_enable_24g_auto_pair_nerver_been_paired ,mouse_24g_reconn_dongle_start 
+0x6063 024815 fetch 4 ,mem_mouse_24g_addr 
+0x6064 024816 fetcht 4 ,mem_mouse_compare_addr 
+0x6065 024817 isub temp ,null 
+0x6066 024818 branch mouse_24g_start_pair_mode ,zero 
+:      024819 mouse_24g_reconn_dongle_start:
+0x6067 024820 fetch 2 ,mem_24g_reconn_timeout_init 
+0x6068 024821 store 2 ,mem_24g_reconn_timeout 
+0x6069 024822 jam receiver_and_3_0_addr ,mem_24g_reconn_type 
+0x606a 024823 branch g24_reconn_start 
+:      024825 mouse_24g_auto_pair_attempt_fail:
+0x606b 024826 fetch mouse_flag_len ,mem_mouse_flag 
+0x606c 024827 bbit0 mouse_enable_24g_first_auto_pairing ,mouse_24g_attempt_fail_enter_hibernate 
+0x606d 024828 fetch 1 ,mem_device_number 
+0x606e 024829 beq 1 ,mouse_24g_attempt_fail_enter_hibernate 
+0x606f 024830 branch mouse_24g_first_bluetooth_reconnect 
+:      024832 mouse_reconn_dongle_attempt_fail:
+0x6070 024833 fetch mouse_flag_len ,mem_mouse_flag 
+0x6071 024834 bbit0 mouse_enable_24g_first_auto_pairing ,mouse_24g_attempt_fail_enter_hibernate 
+0x6072 024835 bbit1 mouse_enable_eeprom ,mouse_24g_attempt_fail_enter_hibernate 
+0x6073 024836 bbit1 mouse_enable_flash ,mouse_24g_attempt_fail_enter_hibernate 
+0x6074 024837 branch mouse_24g_start_auto_pair + 1 
+:      024839 mouse_24g_attempt_success:
+0x6075 024840 fetch 4 ,mem_24g_addr 
+0x6076 024841 store 4 ,mem_24g_receiver_addr 
+0x6077 024842 store 4 ,mem_mouse_24g_addr 
+0x6078 024843 call g24_ch_syncword_crc8_init 
+0x6079 024844 call mouse_no_data_timer_init 
+0x607a 024845 call mouse_device_poweron_led_config 
+0x607b 024846 call mouse_init_sensor_reset 
+0x607c 024847 jam 0 ,mem_mouse_long_mult_flag 
+0x607d 024848 jam 0 ,mem_24g_conn_sm 
+0x607e 024849 jam 0 ,mem_24g_reconn_type 
+0x607f 024850 fetch 4 ,mem_24g_receiver_addr 
+0x6080 024851 fetch 4 ,mem_24g_fast_conn_addr 
+0x6081 024852 isub temp ,null 
+0x6082 024853 rtn zero 
+0x6083 024854 branch mouse_24g_first_store_reconn_info 
+:      024856 mouse_24g_pairing_complete:
+0x6084 024857 call mouse_init_sensor_reset 
+0x6085 024858 call mouse_read_sensor_common 
+:      024859 mouse_24g_pairing_complete_common:
+0x6086 024860 call mouse_device_poweron_led_config 
+0x6087 024861 call mouse_no_data_timer_init 
+0x6088 024862 arg mouse_24g_pairing_flag ,queue 
+0x6089 024863 call mouse_disable_function_flag 
+0x608a 024864 setarg 0 
+0x608b 024865 store 2 ,mem_24g_pair_timeout 
+0x608c 024866 store 2 ,mem_24g_reconn_timeout 
+0x608d 024867 store 1 ,mem_24g_conn_sm 
+0x608e 024868 store 1 ,mem_mouse_move_flag 
+0x608f 024869 store 1 ,mem_24g_reconn_type 
+0x6090 024872 fetch 4 ,mem_24g_addr 
+0x6091 024873 store 4 ,mem_24g_receiver_addr 
+0x6092 024874 store 4 ,mem_mouse_24g_addr 
+0x6093 024875 branch mouse_store_device_info_delay 
+:      024877 mouse_24g_short_sleep_clear_wake:
+0x6094 024878 call clear_wake 
+0x6095 024879 branch lpm_write_gpio_wakeup 
+:      024881 mouse_24g_package_data:
+0x6096 024882 bpatch patch12_6 ,mem_patch12 
+0x6097 024883 rtnmark0 mark_24g 
+0x6098 024884 call mouse_motion 
+0x6099 024885 nrtn user 
+0x609a 024886 fetch 1 ,mem_mouse_24g_long_sleep_flag 
+0x609b 024887 jam 0 ,mem_mouse_24g_long_sleep_flag 
+0x609c 024888 ncall mouse_24g_short_sleep_clear_wake ,blank 
+0x609d 024890 fetch mouse_flag_len ,mem_mouse_flag 
+0x609e 024891 bbit0 mouse_enable_keyboard ,mouse_24g_mouse_package_data 
+0x609f 024892 fetch 1 ,mem_customer_key 
+0x60a0 024893 nbranch mouse_24g_keyboard_package_data ,blank 
+:      024894 mouse_24g_mouse_package_data:
+0x60a1 024895 call mouse_data_xy_release 
+0x60a2 024896 fetch 1 ,mem_24g_data_type 
+0x60a3 024897 bbit1 1 ,mouse_24g_mouse_package_data_now 
+0x60a4 024898 fetcht 1 ,mem_24g_txbuf + 1 
+0x60a5 024899 fetch 1 ,mem_mouse_key 
+0x60a6 024900 ior temp ,pdata 
+0x60a7 024901 store 1 ,mem_mouse_key 
+0x60a8 024902 fetcht 1 ,mem_24g_txbuf + 6 
+0x60a9 024903 fetch 1 ,mem_mouse_z 
+0x60aa 024904 iadd temp ,pdata 
+0x60ab 024905 store 1 ,mem_mouse_z 
+0x60ac 024906 fetcht 1 ,mem_24g_txbuf + 7 
+0x60ad 024907 fetch 1 ,mem_mouse_tz 
+0x60ae 024908 iadd temp ,pdata 
+0x60af 024909 store 1 ,mem_mouse_tz 
+:      024910 mouse_24g_mouse_package_data_now:
+0x60b0 024911 jam type_ms ,mem_24g_data_type 
+0x60b1 024912 arg 7 ,rega 
+0x60b2 024913 arg mem_mouse_key ,regb 
+0x60b3 024914 fetch 2 ,mem_mouse_z 
+0x60b4 024915 rtn blank 
+0x60b5 024916 branch g24_transmit_by_interrupt_enable 
+:      024918 mouse_24g_keyboard_package_data:
+0x60b6 024919 jam type_kb ,mem_24g_data_type 
+0x60b7 024920 arg 9 ,rega 
+0x60b8 024921 fetch 1 ,mem_customer_data_trigger 
+0x60b9 024922 nbranch mouse_customer_key_press ,blank 
+0x60ba 024923 arg mem_customer_key_release ,regb 
+0x60bb 024924 rtn 
+:      024925 mouse_customer_key_press:
+0x60bc 024926 arg mem_customer_key_press ,regb 
+0x60bd 024927 rtn 
+:      024932 mouse_24g_search_dongle_init:
+0x60be 024933 setarg 0 
+0x60bf 024934 store 3 ,mem_mouse_search_dongle_action 
+0x60c0 024935 rtn 
+:      024937 mouse_24g_search_dongle:
+0x60c1 024938 fetch mouse_flag_len ,mem_mouse_flag 
+0x60c2 024939 rtnbit0 mouse_enable_24g_search_dongle 
+0x60c3 024940 fetch 1 ,mem_mouse_long_mult_flag 
+0x60c4 024941 rtn blank 
+0x60c5 024942 fetch 1 ,mem_24g_abort_pac 
+0x60c6 024943 rtn blank 
+0x60c7 024944 fetch 1 ,mem_mouse_search_dongle_interval 
+0x60c8 024945 increase 1 ,pdata 
+0x60c9 024946 and_into 3 ,pdata 
+0x60ca 024947 store 1 ,mem_mouse_search_dongle_interval 
+0x60cb 024948 nrtn blank 
+0x60cc 024949 jam 0 ,mem_mouse_search_dongle_ch 
+:      024950 mouse_24g_search_dongle_loop:
+0x60cd 024951 bpatch patch12_7 ,mem_patch12 
+0x60ce 024952 fetch 1 ,mem_mouse_search_dongle_ch 
+0x60cf 024953 increase 1 ,pdata 
+0x60d0 024954 store 1 ,mem_mouse_search_dongle_ch 
+0x60d1 024955 sub pdata ,g24_ch_number ,null 
+0x60d2 024956 nbranch mouse_24g_search_dongle_loop_end ,positive 
+0x60d3 024957 call g24_reconn_data_prep 
+0x60d4 024958 call g24_transmit_receive_ack 
+0x60d5 024959 nbranch mouse_24g_search_dongle_loop_retry ,sync 
+0x60d6 024960 nbranch mouse_24g_search_dongle_loop_retry ,user3 
+0x60d7 024961 call mouse_g24_ackpayload_parse 
+0x60d8 024962 call mouse_24g_search_dongle_success 
+:      024963 mouse_24g_search_dongle_loop_end:
+0x60d9 024964 call g24_txbuf_clear 
+0x60da 024965 fetch 1 ,mem_mouse_search_dongle_count 
+0x60db 024966 increase 1 ,pdata 
+0x60dc 024967 store 1 ,mem_mouse_search_dongle_count 
+0x60dd 024968 beq g24_ch_poll_count ,mouse_24g_search_dongle_check 
+0x60de 024969 rtn 
+:      024971 mouse_24g_search_dongle_loop_retry:
+0x60df 024972 call g24_ch 
+0x60e0 024973 branch mouse_24g_search_dongle_loop 
+:      024975 mouse_24g_search_dongle_check:
+0x60e1 024976 jam 0 ,mem_mouse_search_dongle_count 
+0x60e2 024977 fetch 1 ,mem_mouse_search_dongle_action 
+0x60e3 024978 rtnbit1 g24_disconn_state 
+0x60e4 024979 set1 g24_disconn_state ,pdata 
+0x60e5 024980 store 1 ,mem_mouse_search_dongle_action 
+0x60e6 024981 fetch 2 ,mem_mouse_24g_search_dongle_time_init 
+0x60e7 024982 store 2 ,mem_mouse_no_data_timer 
+0x60e8 024983 branch mouse_sensor_powerdown 
+:      024985 mouse_24g_search_dongle_success:
+0x60e9 024986 fetch 1 ,mem_24g_abort_pac 
+0x60ea 024987 branch mouse_24g_search_dongle_init ,blank 
+0x60eb 024988 jam 0 ,mem_mouse_search_dongle_count 
+0x60ec 024989 fetch 1 ,mem_mouse_search_dongle_action 
+0x60ed 024990 rtnbit0 g24_disconn_state 
+0x60ee 024991 set0 g24_disconn_state ,pdata 
+0x60ef 024992 store 1 ,mem_mouse_search_dongle_action 
+0x60f0 024993 call mouse_no_data_timer_init 
+0x60f1 024994 branch mouse_init_sensor_wakeup 
+:      024996 mouse_g24_ackpayload_parse:
+0x60f2 024997 call g24_ackpayload_parse 
+0x60f3 024998 fetch 1 ,mem_24g_rxbuf + 1 
+0x60f4 024999 compare 0x08 ,pdata ,0xf8 
+0x60f5 025000 nrtn true 
+0x60f6 025001 fetch 1 ,mem_24g_rxbuf + 2 
+0x60f7 025002 beq 0xff ,mouse_24g_hibernate_set 
+0x60f8 025003 rtn 
+:      025008 mouse_g24_retransmit:
+0x60f9 025009 fetch 1 ,mem_mouse_need_soft_reset 
+0x60fa 025010 nrtn blank 
+0x60fb 025011 call mouse_retransmit_select_device_by_pb_button 
+0x60fc 025012 call mouse_select_device_by_dpi_button_once 
+0x60fd 025013 branch g24_retransmit0 
+:      025015 mouse_select_device_by_dpi_button_once:
+0x60fe 025016 arg 12 ,queue 
+0x60ff 025017 call timer_check 
+0x6100 025018 nrtn blank 
+0x6101 025019 call mouse_dpi_check_once 
+0x6102 025020 call mouse_dpi_key_check_long_press 
+:      025021 mouse_g24_retransmit_100ms_timer_init:
+0x6103 025022 arg 12 ,queue 
+0x6104 025023 setarg 160 
+0x6105 025024 branch timer_init 
+:      025026 mouse_dpi_check_once:
+0x6106 025027 fetch mouse_flag_len ,mem_mouse_flag 
+0x6107 025028 rtnbit0 mouse_enable_select_device_by_dpi_button 
+0x6108 025030 branch mouse_dpi_check 
+:      025033 mouse_24g_before_lpm_sleep:
+0x6109 025034 fetch 1 ,mem_device_flag 
+0x610a 025035 bne mode_24g_device ,lpm_sleep_skip_cb_function 
+0x610b 025036 fetch 1 ,mem_24g_disable_fec1 
+0x610c 025037 rtn blank 
+:      025038 mouse_peripheral_clock_off:
+0x610d 025039 jam 2 ,core_clksel 
+0x610e 025040 jam 0xf8 ,core_lpm_ctrl 
+0x610f 025041 rtn 
+:      025046 mouse_logo_led_on_timer:
+0x6110 025047 fetch 1 ,mem_mouse_logo_led_gpio 
+0x6111 025048 rtneq gpio_disable 
+0x6112 025049 fetch 2 ,mem_mouse_no_data_timer 
+0x6113 025050 rtn blank 
+0x6114 025051 fetch 2 ,mem_mouse_no_data_timeout 
+0x6115 025052 fetcht 2 ,mem_mouse_no_data_timer 
+0x6116 025053 isub temp ,temp 
+0x6117 025054 fetch 2 ,mem_mouse_logo_led_on_time_init 
+0x6118 025055 isub temp ,pdata 
+0x6119 025056 branch mouse_logo_led_on ,positive 
+:      025057 mouse_logo_led_off:
+0x611a 025058 fetcht 1 ,mem_mouse_logo_led_gpio 
+0x611b 025059 branch mouse_led_off 
+:      025060 mouse_logo_led_on:
+0x611c 025061 fetcht 1 ,mem_mouse_logo_led_gpio 
+0x611d 025062 branch mouse_led_on 
+:      025069 mouse_dpi_led_blink_delay_timer:
+0x611e 025070 arg mem_mouse_dpi_led_delay_count ,regc 
+0x611f 025071 arg mouse_dpi_led_blink_init ,regb 
+0x6120 025072 branch timer_single_step 
+:      025074 mouse_dpi_led_blink_init:
+0x6121 025075 bpatch patch13_0 ,mem_patch13 
+0x6122 025076 fetch 1 ,mem_config_sensor_type 
+0x6123 025077 beq p3212 ,mouse_dpi_led_blink_init_another 
+0x6124 025078 beq ka8g2 ,mouse_dpi_led_blink_init_another 
+0x6125 025079 fetcht 1 ,mem_mouse_dpi 
+0x6126 025080 increase 2 ,temp 
+:      025081 mouse_dpi_led_blink_init_next:
+0x6127 025082 sub temp ,3 ,null 
+0x6128 025083 call mouse_dpi_led_blink_init_level_4 ,positive 
+0x6129 025084 ncall mouse_dpi_led_blink_count_clean ,positive 
+0x612a 025085 copy temp ,pdata 
+0x612b 025086 iadd pdata ,pdata 
+0x612c 025087 store 1 ,mem_mouse_multi_led_blink_count 
+:      025088 mouse_multi_dpi_led_blink_enable:
+0x612d 025089 jam 4 ,mem_mouse_multi_led_blink_type 
+0x612e 025090 call mouse_multi_dpi_led_blink_timer_init 
+0x612f 025091 jam multi_led_blink ,mem_mouse_multi_led_type 
+0x6130 025092 branch mouse_multi_led_enable 
+:      025094 mouse_dpi_led_blink_init_another:
+0x6131 025095 fetcht 1 ,mem_mouse_dpi 
+0x6132 025096 increase 1 ,temp 
+0x6133 025097 branch mouse_dpi_led_blink_init_next 
+:      025099 mouse_dpi_led_blink_init_level_4:
+0x6134 025100 fetch mouse_flag_len ,mem_mouse_flag 
+0x6135 025101 rtnbit0 mouse_enable_dpi_level_4 
+0x6136 025102 increase 1 ,temp 
+0x6137 025103 rtn 
+:      025104 mouse_dpi_led_blink_count_clean:
+0x6138 025105 increase -3 ,temp 
+0x6139 025106 rtn 
+:      025109 mouse_dpi_led_blink_delay:
+0x613a 025110 fetch 1 ,mem_mouse_dpi_gpio 
+0x613b 025111 rtneq gpio_disable 
+0x613c 025112 fetch 2 ,mem_mouse_discovery_timer 
+0x613d 025113 nrtn blank 
+0x613e 025114 fetch 2 ,mem_24g_pair_timeout 
+0x613f 025115 nrtn blank 
+0x6140 025116 fetch 2 ,mem_24g_reconn_timeout 
+0x6141 025117 nrtn blank 
+0x6142 025118 fetch 1 ,mem_mouse_multi_led_powon_timer 
+0x6143 025119 nrtn blank 
+0x6144 025120 fetch 1 ,mem_mouse_dpi_led_delay_count_init 
+0x6145 025121 branch mouse_dpi_led_blink_init ,blank 
+0x6146 025122 store 1 ,mem_mouse_dpi_led_delay_count 
+0x6147 025123 rtn 
+:      025131 mouse_check_dpi_blink:
+0x6148 025132 disable user 
+0x6149 025133 fetch 1 ,mem_mouse_multi_led_blink_type 
+0x614a 025134 sub pdata ,4 ,null 
+0x614b 025135 nrtn zero 
+0x614c 025136 branch enable_user 
+:      025138 mouse_low_voltage_led_timer:
+0x614d 025139 fetch mouse_flag_len ,mem_mouse_flag 
+0x614e 025140 rtnbit0 mouse_enable_low_led 
+0x614f 025141 rtnbit0 mouse_low_voltage_flag 
+0x6150 025142 fetch 2 ,mem_mouse_discovery_timer 
+0x6151 025143 nrtn blank 
+0x6152 025144 fetch 2 ,mem_24g_pair_timeout 
+0x6153 025145 nrtn blank 
+0x6154 025146 fetch 2 ,mem_24g_reconn_timeout 
+0x6155 025147 nrtn blank 
+0x6156 025148 fetch 1 ,mem_mouse_multi_led_powon_timer 
+0x6157 025149 nrtn blank 
+0x6158 025150 call mouse_check_dpi_blink 
+0x6159 025151 rtn user 
+0x615a 025153 fetch 1 ,mem_mouse_multi_low_led_blink_count 
+0x615b 025154 branch mouse_low_led_blink_count_init_judge ,blank 
+:      025155 mouse_low_led_blink_timer:
+0x615c 025156 fetcht 1 ,mem_adc_low_volatage_led_timer_count 
+0x615d 025157 increase 1 ,temp 
+0x615e 025158 storet 1 ,mem_adc_low_volatage_led_timer_count 
+0x615f 025159 fetch 1 ,mem_mouse_low_led_blink_timer 
+0x6160 025160 isub temp ,null 
+0x6161 025161 ncall mouse_low_led_timer_count_clean ,positive 
+0x6162 025162 fetch 1 ,mem_mouse_low_led_blink_half_timer 
+0x6163 025163 isub temp ,null 
+0x6164 025164 nbranch mouse_low_voltage_led_off_judge ,positive 
+:      025165 mouse_low_voltage_led_on_judge:
+0x6165 025166 fetch mouse_flag_len ,mem_mouse_flag 
+0x6166 025167 bbit1 mouse_enable_low_for_led ,mouse_device_led_on 
+0x6167 025168 bbit1 mouse_enable_dpi_low_for_led ,mouse_device_led_on 
+:      025169 mouse_low_voltage_led_on:
+0x6168 025170 fetcht 1 ,mem_mouse_low_voltage_alarm_gpio 
+0x6169 025171 branch mouse_led_on 
+:      025173 mouse_low_led_timer_count_clean:
+0x616a 025174 jam 1 ,mem_adc_low_volatage_led_timer_count 
+0x616b 025175 fetch 1 ,mem_mouse_multi_low_led_blink_count 
+0x616c 025176 increase -1 ,pdata 
+0x616d 025177 store 1 ,mem_mouse_multi_low_led_blink_count 
+:      025178 mouse_low_voltage_led_off_judge:
+0x616e 025179 fetch mouse_flag_len ,mem_mouse_flag 
+0x616f 025180 bbit1 mouse_enable_low_for_led ,mouse_device_led_off 
+0x6170 025181 bbit1 mouse_enable_dpi_low_for_led ,mouse_device_led_off 
+:      025182 mouse_low_voltage_led_off:
+0x6171 025183 fetcht 1 ,mem_mouse_low_voltage_alarm_gpio 
+0x6172 025184 branch mouse_led_off 
+:      025186 mouse_low_led_blink_count_init_judge:
+0x6173 025187 fetch mouse_flag_len ,mem_mouse_flag 
+0x6174 025188 bbit1 mouse_enable_low_led_blink_limit ,mouse_low_voltage_led_off_judge 
+0x6175 025189 call mouse_multi_low_led_blink_count_init 
+0x6176 025190 branch mouse_low_led_blink_timer 
+:      025198 mouse_device_multi_led_parm_init:
+0x6177 025199 jam 0 ,mem_mouse_multi_led_blink_enable 
+0x6178 025200 call mouse_device_multi_led_all_off 
+0x6179 025201 jam 0 ,mem_mouse_multi_led_blink_type 
+0x617a 025202 fetch 1 ,mem_mouse_low_led_blink_timer 
+0x617b 025203 rshift pdata ,pdata 
+0x617c 025204 store 1 ,mem_mouse_low_led_blink_half_timer 
+0x617d 025205 rtn 
+:      025206 mouse_multi_low_led_blink_count_init:
+0x617e 025207 fetch 1 ,mem_mouse_multi_lowled_blink_count_init 
+0x617f 025208 store 1 ,mem_mouse_multi_low_led_blink_count 
+0x6180 025209 rtn 
+:      025211 mouse_multi_led_blink_timer_init:
+0x6181 025212 fetch 1 ,mem_mouse_multi_led_blink_type 
+0x6182 025213 beq 1 ,mouse_device_24g_led_blink_timer_init 
+0x6183 025214 beq 2 ,mouse_device_le_discovery_led_blink_timer_init 
+0x6184 025215 beq 3 ,mouse_device_le_reconn_led_blink_timer_init 
+:      025216 mouse_multi_dpi_led_blink_timer_init:
+0x6185 025217 fetch 1 ,mem_mouse_dpi_led_blink_timer_init 
+:      025218 mouse_store_multi_led_blink_timer:
+0x6186 025219 store 1 ,mem_mouse_multi_led_blink_timer 
+0x6187 025220 rtn 
+:      025221 mouse_device_24g_led_blink_timer_init:
+0x6188 025222 fetch 1 ,mem_mouse_multi_24gled_blink_timer_init 
+0x6189 025223 branch mouse_store_multi_led_blink_timer 
+:      025224 mouse_device_le_discovery_led_blink_timer_init:
+0x618a 025225 fetch 1 ,mem_mouse_multi_le_discovery_blink_timer_init 
+0x618b 025226 branch mouse_store_multi_led_blink_timer 
+:      025227 mouse_device_le_reconn_led_blink_timer_init:
+0x618c 025228 fetch 1 ,mem_mouse_multi_le_reconn_blink_timer_init 
+0x618d 025229 branch mouse_store_multi_led_blink_timer 
+:      025232 mouse_device_poweron_led_config:
+0x618e 025233 bpatch patch13_1 ,mem_patch13 
+0x618f 025234 fetch 1 ,mem_mouse_multi_led_powon_timer_init 
+0x6190 025235 store 1 ,mem_mouse_multi_led_powon_timer 
+0x6191 025236 jam multi_led_on ,mem_mouse_multi_led_type 
+:      025237 mouse_multi_led_enable:
+0x6192 025238 jam off ,mem_mouse_multi_led_state 
+0x6193 025239 jam on ,mem_mouse_multi_led_blink_enable 
+0x6194 025240 rtn 
+:      025243 mouse_device_24g_pair_led_config:
+0x6195 025244 bpatch patch13_2 ,mem_patch13 
+0x6196 025245 fetch 1 ,mem_device_flag 
+0x6197 025246 rtnne mode_24g_device 
+0x6198 025247 call mouse_multi_led_blink_enable_init 
+0x6199 025248 jam 1 ,mem_mouse_multi_led_blink_type 
+0x619a 025249 call mouse_device_24g_led_blink_timer_init 
+0x619b 025250 fetch 1 ,mem_mouse_le_reconn_blink_limit 
+0x619c 025251 rtn blank 
+0x619d 025252 fetch 1 ,mem_mouse_multi_24gled_blink_count_init 
+0x619e 025253 branch mouse_device_led_blink_count_init 
+:      025255 mouse_device_le_reconn_led_config:
+0x619f 025256 fetch 1 ,mem_device_flag 
+0x61a0 025257 rtneq mode_24g_device 
+0x61a1 025258 call mouse_multi_led_blink_enable_init 
+0x61a2 025259 fetch mouse_flag_len ,mem_mouse_flag 
+0x61a3 025260 rtnbit0 mouse_enable_bt_reconn_led_effect 
+0x61a4 025261 jam 3 ,mem_mouse_multi_led_blink_type 
+0x61a5 025262 call mouse_device_le_reconn_led_blink_timer_init 
+0x61a6 025263 fetch 1 ,mem_mouse_le_reconn_blink_limit 
+0x61a7 025264 rtn blank 
+0x61a8 025265 fetch 1 ,mem_mouse_multi_le_reconn_blink_count_init 
+:      025266 mouse_device_led_blink_count_init:
+0x61a9 025267 store 1 ,mem_mouse_multi_led_blink_count 
+0x61aa 025268 rtn 
+:      025270 mouse_device_discovery_led_config:
+0x61ab 025271 jam 0 ,mem_mouse_le_reconn_blink_limit 
+0x61ac 025272 jam 2 ,mem_mouse_multi_led_blink_type 
+0x61ad 025273 call mouse_device_le_discovery_led_blink_timer_init 
+:      025274 mouse_multi_led_blink_enable_init:
+0x61ae 025275 jam 1 ,mem_mouse_multi_led_blink_enable 
+0x61af 025276 jam multi_led_blink ,mem_mouse_multi_led_type 
+0x61b0 025277 branch mouse_device_multi_led_on 
+:      025281 mouse_led_multi_timer:
+0x61b1 025282 fetch 1 ,mem_mouse_multi_led_blink_enable 
+0x61b2 025283 rtn blank 
+0x61b3 025284 fetch 1 ,mem_mouse_multi_led_type 
+0x61b4 025285 beq multi_led_blink ,mouse_multi_led_type_blink 
+:      025286 mouse_device_multi_led_type_on:
+0x61b5 025287 fetch 1 ,mem_mouse_multi_led_powon_timer 
+0x61b6 025288 branch mouse_device_poweron_led_off ,blank 
+0x61b7 025289 increase -1 
+0x61b8 025290 store 1 ,mem_mouse_multi_led_powon_timer 
+0x61b9 025291 branch mouse_device_led_on 
+:      025293 mouse_device_poweron_led_off:
+0x61ba 025294 jam 0 ,mem_mouse_multi_led_blink_enable 
+0x61bb 025295 call mouse_multi_low_led_blink_count_init 
+0x61bc 025296 branch mouse_device_led_off 
+:      025298 mouse_multi_led_type_blink:
+0x61bd 025299 bpatch patch13_3 ,mem_patch13 
+0x61be 025300 fetch 1 ,mem_mouse_multi_led_blink_type 
+0x61bf 025301 rtn blank 
+0x61c0 025302 beq 4 ,mouse_device_led_blink_limit 
+0x61c1 025303 branch mouse_device_led_blink_judge 
+:      025305 mouse_device_led_blink_judge:
+0x61c2 025306 fetch 1 ,mem_mouse_le_reconn_blink_limit 
+0x61c3 025307 beq 1 ,mouse_device_led_blink_limit 
+0x61c4 025308 branch mouse_multi_led_type_blink_next 
+:      025310 mouse_device_led_blink_limit:
+0x61c5 025311 fetch 1 ,mem_mouse_multi_led_blink_count 
+0x61c6 025312 branch mouse_multi_led_off_judge ,blank 
+:      025313 mouse_multi_led_type_blink_next:
+0x61c7 025314 arg mem_mouse_multi_led_blink_timer ,regc 
+0x61c8 025315 arg mouse_multi_led_type_blink_start ,regb 
+0x61c9 025316 branch timer_single_step 
+:      025318 mouse_multi_led_type_blink_start:
+0x61ca 025319 fetch 1 ,mem_mouse_multi_led_blink_type 
+0x61cb 025320 beq 4 ,mouse_multi_led_blink_count_decrease 
+0x61cc 025321 fetch 1 ,mem_mouse_le_reconn_blink_limit 
+0x61cd 025322 beq 1 ,mouse_multi_led_blink_count_decrease 
+:      025323 mouse_multi_led_blink:
+0x61ce 025324 call mouse_multi_led_blink_timer_init 
+0x61cf 025325 fetch 1 ,mem_mouse_multi_led_state 
+0x61d0 025326 beq on ,mouse_multi_led_off_judge_next 
+0x61d1 025327 branch mouse_multi_led_on_judge 
+:      025329 mouse_multi_led_blink_count_decrease:
+0x61d2 025330 fetch 1 ,mem_mouse_multi_led_blink_count 
+0x61d3 025331 increase -1 
+0x61d4 025332 store 1 ,mem_mouse_multi_led_blink_count 
+0x61d5 025333 branch mouse_multi_led_blink 
+:      025336 mouse_multi_led_on_judge:
+0x61d6 025337 fetch 1 ,mem_mouse_multi_led_blink_type 
+0x61d7 025338 beq 4 ,mouse_multi_dpi_led_on_judge 
+:      025339 mouse_device_multi_led_on:
+0x61d8 025340 jam on ,mem_mouse_multi_led_state 
+:      025341 mouse_device_led_on:
+0x61d9 025342 bpatch patch13_4 ,mem_patch13 
+0x61da 025343 fetch 1 ,mem_device_flag 
+0x61db 025344 beq mode_24g_device ,mouse_device_24g_led_on 
+0x61dc 025345 beq mode_bt_device1 ,mouse_device_bt1_led_on 
+0x61dd 025346 beq mode_bt_device2 ,mouse_device_bt2_led_on 
+0x61de 025347 rtn 
+:      025348 mouse_device_24g_led_on:
+0x61df 025349 fetcht 1 ,mem_mouse_1io2led_multi_24gled 
+0x61e0 025350 branch mouse_led_on 
+:      025351 mouse_device_bt1_led_on:
+0x61e1 025352 fetcht 1 ,mem_mouse_1io2led_multi_bt1led 
+0x61e2 025353 branch mouse_led_on 
+:      025354 mouse_device_bt2_led_on:
+0x61e3 025355 fetcht 1 ,mem_mouse_1io2led_multi_bt2led 
+:      025356 mouse_led_on:
+0x61e4 025357 branch gpio_out_active 
+:      025359 mouse_led_off:
+0x61e5 025360 branch gpio_out_inactive 
+:      025362 mouse_multi_led_off_judge:
+0x61e6 025363 jam 0 ,mem_mouse_multi_led_blink_enable 
+0x61e7 025364 jam 0 ,mem_mouse_multi_led_blink_type 
+:      025365 mouse_multi_led_off_judge_next:
+0x61e8 025366 fetch 1 ,mem_mouse_multi_led_blink_type 
+0x61e9 025367 beq 4 ,mouse_multi_dpi_led_off_judge 
+:      025368 mouse_device_multi_led_off:
+0x61ea 025369 jam off ,mem_mouse_multi_led_state 
+:      025370 mouse_device_led_off:
+0x61eb 025371 bpatch patch13_5 ,mem_patch13 
+0x61ec 025372 fetch 1 ,mem_device_flag 
+0x61ed 025373 beq mode_24g_device ,mouse_device_24g_led_off 
+0x61ee 025374 beq mode_bt_device1 ,mouse_device_bt1_led_off 
+0x61ef 025375 beq mode_bt_device2 ,mouse_device_bt2_led_off 
+0x61f0 025376 rtn 
+:      025377 mouse_device_24g_led_off:
+0x61f1 025378 fetcht 1 ,mem_mouse_1io2led_multi_24gled 
+0x61f2 025379 fetch mouse_flag_len ,mem_mouse_flag 
+0x61f3 025380 bbit0 mouse_enable_1io2led ,mouse_led_off 
+0x61f4 025381 branch gpio_set_high_impedance 
+:      025382 mouse_device_bt1_led_off:
+0x61f5 025383 fetcht 1 ,mem_mouse_1io2led_multi_bt1led 
+0x61f6 025384 fetch mouse_flag_len ,mem_mouse_flag 
+0x61f7 025385 bbit0 mouse_enable_1io2led ,mouse_led_off 
+0x61f8 025386 branch gpio_set_high_impedance 
+:      025387 mouse_device_bt2_led_off:
+0x61f9 025388 fetcht 1 ,mem_mouse_1io2led_multi_bt2led 
+0x61fa 025389 fetch mouse_flag_len ,mem_mouse_flag 
+0x61fb 025390 bbit0 mouse_enable_1io2led ,mouse_led_off 
+0x61fc 025391 branch gpio_set_high_impedance 
+:      025393 mouse_device_multi_led_all_off:
+0x61fd 025394 call mouse_device_24g_led_off 
+0x61fe 025395 call mouse_device_bt1_led_off 
+0x61ff 025396 call mouse_device_bt2_led_off 
+0x6200 025397 call mouse_low_voltage_led_off_judge 
+0x6201 025398 branch mouse_multi_dpi_led_off_judge 
+:      025400 mouse_multi_dpi_led_off_judge:
+0x6202 025401 jam off ,mem_mouse_multi_led_state 
+0x6203 025402 fetch mouse_flag_len ,mem_mouse_flag 
+0x6204 025403 bbit1 mouse_enable_dpi_for_led ,mouse_device_multi_led_off 
+0x6205 025404 bbit1 mouse_enable_dpi_low_for_led ,mouse_device_multi_led_off 
+:      025405 mouse_multi_dpi_led_off:
+0x6206 025406 fetcht 1 ,mem_mouse_dpi_gpio 
+0x6207 025407 branch mouse_led_off 
+:      025409 mouse_multi_dpi_led_on_judge:
+0x6208 025410 jam on ,mem_mouse_multi_led_state 
+0x6209 025411 fetch mouse_flag_len ,mem_mouse_flag 
+0x620a 025412 bbit1 mouse_enable_dpi_for_led ,mouse_device_multi_led_on 
+0x620b 025413 bbit1 mouse_enable_dpi_low_for_led ,mouse_device_multi_led_on 
+:      025414 mouse_multi_dpi_led_on:
+0x620c 025415 fetcht 1 ,mem_mouse_dpi_gpio 
+0x620d 025416 branch mouse_led_on 
+:      025420 mouse_low_voltage_led_no_enter_lpm:
+0x620e 025421 fetch mouse_flag_len ,mem_mouse_flag 
+0x620f 025422 rtnbit0 mouse_low_voltage_flag 
+0x6210 025423 fetch 1 ,mem_adc_low_volatage_led_timer_count 
+0x6211 025424 fetcht 1 ,mem_mouse_low_led_blink_half_timer 
+0x6212 025425 sub pdata ,temp ,null 
+0x6213 025426 branch mouse_lpm_mode_clear ,positive 
+:      025427 mouse_low_voltage_led_no_enter_lpm_next:
+0x6214 025428 fetch 1 ,mem_device_flag 
+0x6215 025429 beq mode_24g_device ,g24_transmit_by_interrupt_exit_check 
+0x6216 025430 jam 1 ,mem_lpm_mode 
+0x6217 025431 rtn 
+:      025433 g24_transmit_by_interrupt_exit_check:
+0x6218 025434 fetch mouse_flag_len ,mem_mouse_flag 
+0x6219 025435 rtnbit1 mouse_enable_24g_250hz 
+0x621a 025436 branch g24_transmit_by_interrupt_exit 
+:      025438 mouse_lpm_mode_clear:
+0x621b 025439 fetch 1 ,mem_device_flag 
+0x621c 025440 beq mode_24g_device ,g24_transmit_by_interrupt_enable 
+0x621d 025441 jam 0 ,mem_lpm_mode 
+0x621e 025442 rtn 
+:      025445 mouse_store_signal_rssi:
+0x621f 025447 fetch 1 ,mem_rssi 
+0x6220 025448 branch rssi_signal 
+:      025450 mouse_le_transmit:
+0x6221 025451 call mouse_store_signal_rssi 
+0x6222 025452 branch power_ctrl_start 
+:      025454 mouse_le_set_lpm_mult:
+0x6223 025455 fetch 1 ,mem_le_connect_status_flag 
+0x6224 025456 compare 3 ,pdata ,3 
+0x6225 025457 nbranch disable_blank ,true 
+0x6226 025458 call app_lpm_mult_enable 
+0x6227 025459 branch enable_blank 
+:      025461 mouse_set_lpm_mult:
+0x6228 025462 fetch 2 ,mem_ui_state_map 
+0x6229 025463 bbit1 ui_state_ble_connected ,mouse_le_set_lpm_mult 
+0x622a 025464 rtn 
+:      025466 mouse_24g_long_sleep:
+0x622b 025467 call g24_lpm_wait 
+0x622c 025468 nrtn user 
+0x622d 025469 jam 1 ,mem_mouse_24g_long_sleep_flag 
+0x622e 025470 call g24_setgpio_lpm_before 
+0x622f 025471 jam 0 ,mem_mouse_24g_sleep_miss 
+0x6230 025472 call mouse_24g_send_time_long_wake 
+0x6231 025473 fetch 1 ,mem_sensor_shutdown_flag 
+0x6232 025474 ncall mouse_setgpio_hibernate ,blank 
+0x6233 025475 fetch 4 ,mem_24g_enter_hibernate 
+0x6234 025476 branch g24_long_seep2 
+:      025478 mouse_24g_short_sleep:
+0x6235 025479 fetch 1 ,mem_mouse_sleep_deal_type 
+0x6236 025480 branch g24_short_sleep ,blank 
+0x6237 025481 call g24_lpm_wait 
+0x6238 025482 nrtn user 
+0x6239 025483 fetch 1 ,mem_mouse_24g_sleep_miss 
+0x623a 025484 jam 0 ,mem_mouse_24g_sleep_miss 
+0x623b 025485 sub pdata ,0 ,null 
+0x623c 025486 nbranch mouse_24g_short_sleep_last_miss ,zero 
+0x623d 025487 fetcht 2 ,mem_24g_retransmit 
+0x623e 025488 sub temp ,0 ,null 
+0x623f 025489 branch mouse_24g_short_sleep_default ,zero 
+0x6240 025491 fetch 4 ,mem_mouse_24g_tx_time_last_delt 
+0x6241 025492 branch mouse_24g_short_sleep_default ,blank 
+:      025493 mouse_24g_short_sleep_notify:
+0x6242 025494 fetcht 4 ,mem_mouse_24g_tsniff 
+0x6243 025495 isub temp ,temp 
+0x6244 025496 storet 4 ,mem_mouse_24g_sleep_miss_temp 
+0x6245 025497 nbranch mouse_24g_short_sleep_long ,positive 
+0x6246 025498 fetch 3 ,mem_24g_short_sleep_set 
+0x6247 025499 isub temp ,pdata 
+0x6248 025500 nbranch mouse_24g_short_sleep_2 ,positive 
+0x6249 025501 arg 0x600 ,temp 
+0x624a 025502 isub temp ,null 
+0x624b 025503 nbranch mouse_24g_short_sleep_2 ,positive 
+:      025504 mouse_24g_short_sleep2:
+0x624c 025505 store 4 ,mem_mouse_24g_sleep_time_temp 
+0x624d 025506 call mouse_24g_miss_temp_clear 
+0x624e 025507 fetch 4 ,mem_mouse_24g_sleep_time_temp 
+:      025508 mouse_24g_short_sleep3:
+0x624f 025509 call clk2lpo 
+0x6250 025510 storet 4 ,mem_sleep_counter 
+0x6251 025511 branch lpm_sleep 
+:      025513 mouse_24g_short_sleep_default:
+0x6252 025514 call mouse_24g_miss_temp_clear 
+0x6253 025515 fetch 3 ,mem_24g_short_sleep_set 
+0x6254 025516 branch mouse_24g_short_sleep2 
+:      025518 mouse_24g_short_sleep_long:
+0x6255 025519 sub temp ,0 ,temp 
+0x6256 025520 fetch 3 ,mem_24g_short_sleep_set 
+0x6257 025521 iadd temp ,pdata 
+0x6258 025522 branch mouse_24g_short_sleep2 
+:      025524 mouse_24g_miss_temp_clear:
+0x6259 025525 setarg 0 
+0x625a 025526 store 4 ,mem_mouse_24g_sleep_miss_temp 
+0x625b 025527 rtn 
+:      025529 mouse_24g_short_sleep_last_miss:
+0x625c 025530 fetch 4 ,mem_mouse_24g_tx_time_last_delt 
+0x625d 025531 fetcht 4 ,mem_mouse_24g_sleep_miss_temp 
+0x625e 025532 iadd temp ,pdata 
+0x625f 025533 branch mouse_24g_short_sleep_notify 
+:      025535 mouse_24g_short_sleep_2:
+0x6260 025536 jam 1 ,mem_mouse_24g_sleep_miss 
+0x6261 025537 rtn 
+:      025540 mouse_24g_transmit_callback:
+0x6262 025541 call mouse_24g_send_time_check 
+0x6263 025542 branch mouse_wakeup_24g 
+:      025544 mouse_24g_send_time_check:
+0x6264 025545 fetch 1 ,mem_mouse_sleep_deal_type 
+0x6265 025546 rtn blank 
+0x6266 025547 fetch 1 ,mem_24g_transmit_by_interrupt 
+0x6267 025548 beq g24_tx_timer_int_enable ,mouse_24g_send_timer_first 
+0x6268 025549 fetch 1 ,mem_mouse_24g_tx_count 
+0x6269 025550 branch mouse_24g_send_timer_first ,blank 
+0x626a 025551 copy clkn ,pdata 
+0x626b 025552 fetcht 6 ,mem_mouse_24g_tx_time_last 
+0x626c 025553 store 6 ,mem_mouse_24g_tx_time_last 
+0x626d 025554 call clk_diff_rt 
+0x626e 025555 store 4 ,mem_mouse_24g_tx_time_last_delt 
+0x626f 025557 fetch 1 ,mem_mouse_24g_sleep_miss 
+0x6270 025558 nrtn blank 
+0x6271 025559 fetch 2 ,mem_24g_retransmit 
+0x6272 025560 nrtn blank 
+0x6273 025561 fetch 4 ,mem_mouse_24g_tx_time_last_delt 
+:      025562 mouse_24g_send_time_check_1:
+0x6274 025563 fetcht 5 ,mem_mouse_24g_tx_time_sum 
+0x6275 025564 iadd temp ,pdata 
+0x6276 025565 store 5 ,mem_mouse_24g_tx_time_sum 
+0x6277 025566 fetcht 1 ,mem_mouse_24g_tx_count 
+0x6278 025567 fetch 1 ,mem_mouse_24g_tx_time_sum_count 
+0x6279 025568 isub temp ,null 
+0x627a 025569 branch mouse_24g_send_time_check_average ,zero 
+0x627b 025570 increase 1 ,temp 
+0x627c 025571 storet 1 ,mem_mouse_24g_tx_count 
+0x627d 025572 rtn 
+:      025574 mouse_24g_send_time_check_average:
+0x627e 025575 jam 1 ,mem_mouse_24g_tx_count 
+0x627f 025576 arg 0 ,temp 
+0x6280 025577 fetch 5 ,mem_mouse_24g_tx_time_sum 
+0x6281 025578 storet 5 ,mem_mouse_24g_tx_time_sum 
+0x6282 025579 fetcht 1 ,mem_mouse_24g_tx_time_sum_count 
+0x6283 025580 idiv temp 
+0x6284 025581 call wait_div_end 
+0x6285 025582 quotient rega 
+0x6286 025584 fetch 4 ,mem_mouse_24g_tsniff 
+0x6287 025585 fetcht 1 ,mem_mouse_24g_tx_time_offset 
+0x6288 025586 isub temp ,temp 
+0x6289 025587 increase -40 ,temp 
+0x628a 025589 copy rega ,pdata 
+0x628b 025590 isub temp ,pdata 
+0x628c 025591 branch mouse_24g_send_time_check_average_late ,positive 
+0x628d 025592 sub pdata ,0 ,pdata 
+0x628e 025594 rshift2 pdata ,pdata 
+0x628f 025595 fetcht 3 ,mem_24g_short_sleep_set 
+0x6290 025596 iadd temp ,temp 
+0x6291 025597 bpatch patch13_6 ,mem_patch13 
+0x6292 025598 fetch 3 ,mem_mouse_24g_short_sleep_set_init 
+0x6293 025599 arg 0x1800 ,rega 
+0x6294 025600 iadd rega ,pdata 
+0x6295 025601 isub temp ,null 
+0x6296 025602 nbranch mouse_24g_send_time_check_average_min ,positive 
+0x6297 025603 storet 3 ,mem_24g_short_sleep_set 
+0x6298 025604 rtn 
+:      025606 mouse_24g_send_time_check_average_late:
+0x6299 025607 rshift2 pdata ,temp 
+0x629a 025608 fetch 3 ,mem_24g_short_sleep_set 
+0x629b 025609 isub temp ,temp 
+0x629c 025610 bpatch patch13_7 ,mem_patch13 
+0x629d 025611 fetch 3 ,mem_mouse_24g_short_sleep_set_init 
+0x629e 025612 arg 0x1800 ,rega 
+0x629f 025613 isub rega ,pdata 
+0x62a0 025614 isub temp ,null 
+0x62a1 025615 branch mouse_24g_send_time_check_average_min ,positive 
+0x62a2 025616 storet 3 ,mem_24g_short_sleep_set 
+0x62a3 025617 rtn 
+:      025619 mouse_24g_send_time_check_average_min:
+0x62a4 025620 store 3 ,mem_24g_short_sleep_set 
+0x62a5 025621 rtn 
+:      025623 mouse_24g_send_timer_first:
+0x62a6 025624 jam 1 ,mem_mouse_24g_tx_count 
+0x62a7 025625 copy clkn ,pdata 
+0x62a8 025626 store 6 ,mem_mouse_24g_tx_time_last 
+0x62a9 025627 rtn 
+:      025629 mouse_24g_send_time_long_wake:
+0x62aa 025630 setarg 0 
+0x62ab 025631 store 1 ,mem_mouse_24g_tx_count 
+0x62ac 025632 store 5 ,mem_mouse_24g_tx_time_sum 
+0x62ad 025633 rtn 
+:      025642 shutter_init:
+0x62ae 025643 call enable_authrom 
+0x62af 025644 rtn wake 
+0x62b0 025646 setarg shutter_process_idle 
+0x62b1 025647 store 2 ,mem_cb_idle_process 
+0x62b2 025649 setarg shutter_process_bb_event 
+0x62b3 025650 store 2 ,mem_cb_bb_event_process 
+0x62b4 025652 setarg ble_shutter_receive_data 
+0x62b5 025653 store 2 ,mem_cb_att_write 
+0x62b6 025655 setarg shutter_le_bb_event_timer 
+0x62b7 025656 store 2 ,mem_cb_event_timer 
+0x62b8 025658 setarg shutter_key_change 
+0x62b9 025659 store 2 ,mem_cb_shutter_keycan 
+0x62ba 025661 call shutter_common_init 
+0x62bb 025663 bpatch patch14_0 ,mem_patch14 
+0x62bc 025664 call shutter_load_buffer_config_form_datarom 
+:      025666 shutter_power_switch:
+0x62bd 025667 fetch 1 ,mem_shutter_hard_soft_switch_case 
+0x62be 025668 beq hard_switch ,shutter_hart_swtich_power_on 
+0x62bf 025669 fetch 1 ,mem_shutter_soft_switch_button_gpio 
+0x62c0 025670 store 1 ,mem_ui_button_gpio 
+0x62c1 025671 branch ui_soft_swtich_init 
+:      025674 shutter_common_init:
+0x62c2 025675 setarg shutter_le_before_hibernate 
+0x62c3 025676 store 2 ,mem_cb_before_hibernate 
+0x62c4 025678 setarg shutter_process_lpm_before 
+0x62c5 025679 store 2 ,mem_cb_before_lpm 
+0x62c6 025681 setarg shutter_soft_swtich_power_on 
+0x62c7 025682 store 2 ,mem_shutter_soft_switch_poweron_callback_function 
+0x62c8 025684 setarg shutter_soft_swtich_power_off 
+0x62c9 025685 store 2 ,mem_shutter_soft_switch_poweroff_callback_function 
+0x62ca 025687 jam 7 ,mem_version 
+0x62cb 025688 call le_modified_name_adv 
+0x62cc 025689 call shutter_init_param 
+0x62cd 025690 call keyscan_key_init 
+0x62ce 025691 call queue_init 
+0x62cf 025692 branch ui_led_init_global 
+:      025696 shutter_hart_swtich_power_on:
+0x62d0 025697 jam ui_button_gpio_disable ,mem_ui_button_gpio 
+0x62d1 025698 jam ss_state_power_on ,mem_shutter_soft_switch_power_state 
+0x62d2 025699 branch shutter_start_reconnect 
+:      025703 shutter_le_scale_lpm_lock:
+0x62d3 025704 fetch 1 ,mem_shutter_soft_switch_power_state 
+0x62d4 025705 beq ss_state_power_off ,app_get_lpm_wake_lock 
+0x62d5 025706 call l2cap_malloc_get_full_map 
+0x62d6 025707 fetch 1 ,mem_used_map 
+0x62d7 025708 nbranch app_get_lpm_wake_lock ,blank 
+0x62d8 025709 branch app_put_lpm_wake_lock 
+:      025713 shutter_process_bb_event:
+0x62d9 025714 copy regc ,pdata 
+0x62da 025717 beq bt_evt_le_connected ,ble_shutter_process_baseband_connect 
+0x62db 025718 beq bt_evt_le_disconnected ,ble_shutter_process_baseband_disconnect 
+0x62dc 025719 beq bt_evt_le_reconnect_complete ,ble_shutter_process_reconnect_complete 
+0x62dd 025720 beq bt_evt_le_parse_conn_papa_update_rsp ,ble_shutter_process_parse_connect_parameter_update_response 
+0x62de 025722 beq bt_evt_button_long_pressed ,ui_soft_switch_botton_long_press 
+0x62df 025723 beq bt_evt_button_down ,shutter_process_soft_swtich_button_down 
+0x62e0 025724 beq bt_evt_button_up ,shutter_process_soft_swtich_button_up 
+0x62e1 025725 rtn 
+:      025730 ble_shutter_process_baseband_connect:
+0x62e2 025731 call shutter_stop_bluetooth_discovery 
+0x62e3 025732 setarg 0 
+0x62e4 025733 store 2 ,mem_ble_shutter_reconn_timer 
+0x62e5 025734 branch app_led_off 
+:      025737 ble_shutter_process_baseband_disconnect:
+0x62e6 025738 call queue_init 
+0x62e7 025739 jam 0 ,mem_ble_shutter_enable_notify 
+0x62e8 025740 branch shutter_start_reconnect 
+:      025743 ble_shutter_process_reconnect_complete:
+0x62e9 025744 call queue_init 
+0x62ea 025745 jam 1 ,mem_ble_shutter_enable_notify 
+0x62eb 025746 fetch 8 ,mem_ble_shutter_interval_min 
+0x62ec 025747 store 8 ,mem_le_interval_min 
+0x62ed 025748 call app_lpm_mult_enable 
+0x62ee 025749 branch le_l2cap_tx_update_req 
+:      025752 ble_shutter_process_parse_connect_parameter_update_response:
+0x62ef 025753 fetch 2 ,mem_le_l2cap_signaling_conn_param_update_rsp_result 
+0x62f0 025754 rtneq ble_signaling_connect_parameter_update_accepted 
+0x62f1 025755 fetch 8 ,mem_ble_shutter_interval_min_new 
+0x62f2 025756 rtn blank 
+0x62f3 025757 store 8 ,mem_le_interval_min 
+0x62f4 025758 branch le_l2cap_tx_update_req 
+:      025765 shutter_process_soft_swtich_button_down:
+0x62f5 025766 fetch 1 ,mem_shutter_hard_soft_switch_case 
+0x62f6 025767 rtneq hard_switch 
+0x62f7 025768 fetch 1 ,mem_shutter_soft_switch_power_state 
+0x62f8 025769 rtnne ss_state_power_on 
+0x62f9 025770 call shutter_store_currenct_led_state 
+0x62fa 025771 branch app_led_on 
+:      025773 shutter_store_currenct_led_state:
+0x62fb 025774 jam 1 ,mem_shutter_soft_swtich_botton_down 
+0x62fc 025775 arg 11 ,loopcnt 
+0x62fd 025776 arg mem_shutter_soft_swtich_led_struct_temp ,contw 
+0x62fe 025777 arg mem_shutter_led_struct_app_led ,contr 
+0x62ff 025778 branch memcpy 
+:      025780 shutter_process_soft_swtich_button_up:
+0x6300 025781 fetch 1 ,mem_shutter_hard_soft_switch_case 
+0x6301 025782 rtneq hard_switch 
+0x6302 025783 fetch 1 ,mem_shutter_soft_switch_power_state 
+0x6303 025784 beq ss_state_power_on ,shutter_load_currenct_led_state 
+0x6304 025785 branch ui_soft_switch_botton_up 
+:      025787 shutter_load_currenct_led_state:
+0x6305 025788 fetch 1 ,mem_shutter_soft_swtich_botton_down 
+0x6306 025789 rtnne 1 
+0x6307 025790 jam 0 ,mem_shutter_soft_swtich_botton_down 
+0x6308 025791 fetch 2 ,mem_ui_state_map 
+0x6309 025792 bbit1 ui_state_ble_connected ,app_led_off 
+0x630a 025793 arg 11 ,loopcnt 
+0x630b 025794 arg mem_shutter_soft_swtich_led_struct_temp ,contr 
+0x630c 025795 arg mem_shutter_led_struct_app_led ,contw 
+0x630d 025796 branch memcpy 
+:      025801 shutter_le_bb_event_timer:
+0x630e 025803 call shutter_check_sleep_timer 
+0x630f 025806 call shutter_check_power_off_timer 
+0x6310 025810 branch ble_shutter_reconn_timer 
+:      025814 shutter_check_sleep_timer:
+0x6311 025815 arg mem_shutter_sleep_timer ,regc 
+0x6312 025816 arg shutter_sleep_timeout ,regb 
+0x6313 025817 branch timer_single_step_2b 
+:      025818 shutter_sleep_timeout:
+0x6314 025819 jam ss_state_power_off ,mem_shutter_soft_switch_power_state 
+0x6315 025820 call app_led_off 
+0x6316 025821 call shutter_disconnect_current_connection 
+0x6317 025822 branch shutter_wait_power_off 
+:      025825 shutter_check_power_off_timer:
+0x6318 025826 arg mem_shutter_power_off_timer ,regc 
+0x6319 025827 arg shutter_check_power_off_timeout ,regb 
+0x631a 025828 branch timer_single_step 
+:      025830 shutter_check_power_off_timeout:
+0x631b 025831 fetch 2 ,mem_ui_state_map 
+0x631c 025832 bbit1 ui_state_ble_connected ,shutter_wait_power_off 
+0x631d 025833 fetch 1 ,mem_shutter_led_struct_app_led_type 
+0x631e 025834 beq ui_led_state_blink_start ,shutter_wait_power_off 
+0x631f 025835 beq ui_led_state_blink_lighting ,shutter_wait_power_off 
+0x6320 025836 beq ui_led_state_blink_darking ,shutter_wait_power_off 
+0x6321 025837 branch app_enter_hibernate 
+:      025841 ble_shutter_reconn_timer:
+0x6322 025842 fetch 1 ,mem_shutter_soft_switch_power_state 
+0x6323 025843 rtnne ss_state_power_on 
+0x6324 025844 arg mem_ble_shutter_reconn_timer ,regc 
+0x6325 025845 arg shutter_start_bluetooth_discovery ,regb 
+0x6326 025846 branch timer_single_step_2b 
+:      025849 shutter_process_idle:
+0x6327 025850 call shutter_send_data_to_master 
+0x6328 025851 branch keyscan_key_process 
+:      025854 shutter_process_lpm_before:
+0x6329 025855 call gpio_set_before_lpm 
+0x632a 025856 branch keyscan_process_lpm_before 
+:      025858 shutter_le_before_hibernate:
+0x632b 025859 call gpio_set_before_lpm 
+0x632c 025860 branch disable_authrom 
+:      025866 shutter_stop_bluetooth_discovery:
+:      025870 ble_shutter_stop_bluetooth_discovery:
+0x632d 025871 fetch 2 ,mem_ble_shutter_connect_timeout 
+0x632e 025872 store 2 ,mem_shutter_sleep_timeout 
+0x632f 025873 store 2 ,mem_shutter_sleep_timer 
+0x6330 025874 branch app_ble_stop_adv 
+:      025877 shutter_start_bluetooth_discovery:
+0x6331 025878 fetch 1 ,mem_shutter_soft_switch_power_state 
+0x6332 025879 rtnne ss_state_power_on 
+:      025883 ble_shutter_start_discovery:
+0x6333 025884 fetch 2 ,mem_ui_state_map 
+0x6334 025885 rtnbit1 ui_state_ble_connected 
+0x6335 025886 fetch 2 ,mem_ble_shutter_discovery_timeout 
+0x6336 025887 store 2 ,mem_shutter_sleep_timeout 
+0x6337 025888 store 2 ,mem_shutter_sleep_timer 
+0x6338 025889 fetch 2 ,mem_ble_shutter_discovery_adv_interval 
+0x6339 025890 call shutter_ble_adv_interval_set 
+0x633a 025891 call app_led_start_blink 
+0x633b 025892 fetch 4 ,mem_ble_shutter_discovery_blink_on_time 
+0x633c 025893 store 4 ,mem_shutter_led_struct_app_led_on_time 
+0x633d 025894 fetch 2 ,mem_ui_state_map 
+0x633e 025895 rtnbit1 ui_state_ble_adv 
+0x633f 025896 branch app_ble_start_adv 
+:      025898 shutter_soft_swtich_power_on:
+:      025899 shutter_start_reconnect:
+0x6340 025900 fetch 1 ,mem_shutter_soft_switch_power_state 
+0x6341 025901 rtnne ss_state_power_on 
+:      025905 ble_shutter_start_reconnect:
+0x6342 025906 fetch 2 ,mem_ble_shutter_reconn_timer 
+0x6343 025907 fetcht 2 ,mem_ble_shutter_reconn_timeout 
+0x6344 025908 storet 2 ,mem_ble_shutter_reconn_timer 
+0x6345 025909 nrtn blank 
+0x6346 025910 fetch 2 ,mem_ble_shutter_reconn_adv_interval 
+0x6347 025911 call shutter_ble_adv_interval_set 
+0x6348 025912 call app_led_start_blink 
+0x6349 025913 fetch 4 ,mem_ble_shutter_reconn_blink_on_time 
+0x634a 025914 store 4 ,mem_shutter_led_struct_app_led_on_time 
+0x634b 025915 fetch 2 ,mem_ui_state_map 
+0x634c 025916 rtnbit1 ui_state_ble_adv 
+0x634d 025917 branch app_ble_start_adv 
+:      025919 shutter_disconnect_current_connection:
+0x634e 025920 fetch 2 ,mem_ui_state_map 
+0x634f 025921 bbit1 ui_state_ble_connected ,app_ble_disconnect 
+0x6350 025922 branch shutter_stop_bluetooth_discovery 
+:      025926 shutter_check_data_enable:
+0x6351 025927 call disable_user 
+0x6352 025928 fetch 2 ,mem_ui_state_map 
+0x6353 025929 bbit1 ui_state_ble_connected ,shutter_check_ble_data_enable 
+0x6354 025930 rtn 
+:      025932 shutter_check_ble_data_enable:
+0x6355 025933 fetch 1 ,mem_ble_shutter_enable_notify 
+0x6356 025934 rtn blank 
+0x6357 025935 branch enable_user 
+:      025940 shutter_check_bluetooth_conn:
+0x6358 025941 call disable_user 
+0x6359 025942 fetch 2 ,mem_ui_state_map 
+0x635a 025943 rtnbit1 ui_state_ble_connected 
+0x635b 025944 branch enable_user 
+:      025948 shutter_change_bluetooth_status_bt_disconn:
+:      025952 ble_shutter_change_bluetooth_status_bt_disconn:
+0x635c 025953 branch shutter_start_reconnect 
+:      025957 shutter_check_send_data:
+0x635d 025958 disable user2 
+0x635e 025959 fetch 2 ,mem_shutter_sleep_timeout 
+0x635f 025960 store 2 ,mem_shutter_sleep_timer 
+0x6360 025962 call shutter_check_bluetooth_conn 
+0x6361 025963 branch shutter_change_bluetooth_status_bt_disconn ,user 
+0x6362 025965 call shutter_check_data_enable 
+0x6363 025966 nrtn user 
+0x6364 025967 branch enable_user2 
+:      025971 shutter_key_change:
+0x6365 025972 call shutter_check_send_data 
+0x6366 025973 nrtn user2 
+0x6367 025974 deposit rega 
+0x6368 025975 branch shutter_key_release ,blank 
+:      025976 shutter_key_press:
+0x6369 025977 call app_led_on 
+0x636a 025978 arg mem_key0_press ,regc 
+0x636b 025979 branch push_queue_press_or_release 
+:      025981 shutter_key_release:
+0x636c 025982 call app_led_off 
+0x636d 025983 arg mem_key0_release ,regc 
+:      025985 push_queue_press_or_release:
+0x636e 025986 arg max_queue_num ,pdata 
+0x636f 025987 imul32 queue ,pdata 
+0x6370 025988 iadd regc ,regc 
+:      025991 push_buffer_in_queue:
+0x6371 025992 ifetch 1 ,regc 
+0x6372 025993 rtn blank 
+0x6373 025994 call queue_push_one_byte 
+0x6374 025995 increase 1 ,regc 
+0x6375 025996 branch push_buffer_in_queue 
+:      025999 shutter_send_data_to_master:
+0x6376 026000 fetch 2 ,mem_ui_state_map 
+0x6377 026001 bbit1 ui_state_ble_connected ,pop_queue_to_ble_data 
+0x6378 026002 rtn 
+:      026004 pop_queue_to_ble_data:
+0x6379 026005 call le_fifo_check_nearly_full 
+0x637a 026006 nrtn blank 
+0x637b 026007 call queue_pop_one_byte 
+0x637c 026008 nrtn user 
+0x637d 026009 pincrease -1 
+0x637e 026010 mul32 pdata ,shutter_ble_data_buffer ,pdata 
+0x637f 026011 arg mem_ble_data_buffer1 ,temp 
+0x6380 026012 iadd temp ,contr 
+0x6381 026013 branch le_send_notify_from_list 
+:      026017 queue_push_one_byte:
+0x6382 026018 store 1 ,mem_pdatatemp 
+0x6383 026019 arg mem_pdatatemp ,rega 
+0x6384 026020 branch queue_push 
+:      026022 queue_pop_one_byte:
+0x6385 026023 arg mem_pdatatemp ,rega 
+0x6386 026024 call queue_pop 
+0x6387 026025 nrtn user 
+0x6388 026026 fetch 1 ,mem_pdatatemp 
+0x6389 026027 rtn 
+:      026030 ble_shutter_receive_data:
+0x638a 026031 fetch 2 ,mem_le_att_handle 
+0x638b 026032 beq gatt_keyboard_write_handle ,ble_shutter_process_reconnect_complete 
+0x638c 026033 rtn 
+:      026035 shutter_init_param:
+0x638d 026036 jam 0x02 ,mem_shutter_power_off_timeout 
+0x638e 026038 setarg 0x00200008 
+0x638f 026039 store 4 ,mem_ble_shutter_interval_min 
+0x6390 026040 setarg 0x012c0005 
+0x6391 026041 istore 4 ,contw 
+0x6392 026044 jam 0x17 ,mem_le_local_mtu 
+0x6393 026047 setarg 0x1b 
+0x6394 026048 store 2 ,mem_le_pairing_handle 
+0x6395 026049 branch le_set_fixed_ltk_justwork 
+:      026052 shutter_load_buffer_config_form_datarom:
+0x6396 026054 arg ble_key_value_list_size ,loopcnt 
+0x6397 026055 arg mem_ble_data_buffer1 ,contw 
+0x6398 026056 arg ble_shutter_key_value_list_addr ,contr 
+0x6399 026057 branch memcpy_fast 
+:      026077 shutter_soft_swtich_power_off:
+0x639a 026078 arg 0 ,rega 
+0x639b 026079 arg mem_shutter_power_off_led_style ,regc 
+0x639c 026080 call ui_led_set_style_global 
+0x639d 026081 call shutter_disconnect_current_connection 
+:      026082 shutter_wait_power_off:
+0x639e 026083 fetch 1 ,mem_shutter_power_off_timeout 
+0x639f 026084 store 1 ,mem_shutter_power_off_timer 
+0x63a0 026085 rtn 
+:      026089 ui_soft_swtich_init:
+0x63a1 026090 setarg ss_state_power_up 
+0x63a2 026091 call ui_soft_swtich_init_power_on_time 
+0x63a3 026092 jam ui_button_state_up ,mem_ui_button_last_state 
+0x63a4 026093 call ui_button_init 
+0x63a5 026094 call ui_button_polling 
+:      026095 ui_soft_switch_first_power_on:
+0x63a6 026096 fetch 1 ,mem_shutter_soft_switch_first_power_on 
+0x63a7 026097 branch ui_soft_swtich_init_next ,blank 
+0x63a8 026098 fetch 1 ,core_lpm_isogate 
+0x63a9 026099 bbit1 cold_wake ,ui_soft_switch_power_on 
+:      026100 ui_soft_swtich_init_next:
+0x63aa 026101 fetch 2 ,mem_ui_state_map 
+0x63ab 026102 rtnbit1 ui_state_btn_down 
+0x63ac 026103 branch app_enter_hibernate 
+:      026105 ui_soft_swtich_init_power_on_time:
+0x63ad 026106 fetcht 2 ,mem_power_param_ptr 
+0x63ae 026107 istore 1 ,temp 
+0x63af 026108 ifetch 1 ,contw 
+0x63b0 026109 store 1 ,mem_ui_button_timeout 
+0x63b1 026110 rtn 
+:      026113 ui_soft_switch_botton_up:
+0x63b2 026114 fetch 2 ,mem_power_param_ptr 
+0x63b3 026115 ifetch 1 ,pdata 
+0x63b4 026116 rtnne ss_state_power_up 
+0x63b5 026117 branch app_enter_hibernate 
+:      026120 ui_soft_switch_botton_long_press:
+0x63b6 026121 fetcht 2 ,mem_power_param_ptr 
+0x63b7 026122 ifetch 1 ,temp 
+0x63b8 026123 beq ss_state_power_on ,ui_soft_switch_power_off 
+:      026124 ui_soft_switch_power_on:
+0x63b9 026125 setarg ss_state_power_on 
+0x63ba 026126 fetcht 2 ,mem_power_param_ptr 
+0x63bb 026127 istore 1 ,temp 
+0x63bc 026128 add temp ,ss_power_off_time ,contr 
+0x63bd 026129 ifetch 1 ,contr 
+0x63be 026130 istore 1 ,mem_ui_button_timeout 
+0x63bf 026131 ifetch 2 ,contr 
+0x63c0 026132 branch callback_func 
+:      026134 ui_soft_switch_power_off:
+0x63c1 026135 setarg ss_state_power_off 
+0x63c2 026136 call ui_soft_swtich_init_power_on_time 
+0x63c3 026137 add temp ,ss_power_off_cb ,contr 
+0x63c4 026138 ifetch 2 ,contr 
+0x63c5 026139 branch app_enter_hibernate ,blank 
+0x63c6 026140 branch callback_func 
+:      026145 shutter_ble_adv_interval_set:
+0x63c7 026146 store 2 ,mem_lpm_interval 
+0x63c8 026147 increase -4 ,pdata 
+0x63c9 026148 store 2 ,mem_le_adv_interval 
+0x63ca 026149 rtn 
+:      026151 le_send_notify_from_list:
+0x63cb 026152 ifetch 1 ,contr 
+0x63cc 026153 copy pdata ,rega 
+0x63cd 026154 ifetcht 2 ,contr 
+0x63ce 026155 call store_contr 
+0x63cf 026156 call le_att_malloc_tx_notify 
+0x63d0 026157 copy rega ,loopcnt 
+0x63d1 026158 call get_contr 
+0x63d2 026159 branch memcpy 
+:      026161 shutter_le_uuid_table_conf:
+0x63d3 026162 setarg ble_shutter_gatt_list_addr 
+0x63d4 026163 store 2 ,mem_ui_le_uuid_table 
+0x63d5 026164 rtn 
+:      026166 shutter_dy_le_uuid_table_conf:
+0x63d6 026167 setarg mem_shutter_le_uuid_sup 
+0x63d7 026168 store 2 ,mem_ui_le_uuid_table 
+0x63d8 026169 rtn 
+:      026172 shutter_default_init:
+0x63d9 026173 fetch 2 ,mem_shutter_key_conf0_temp 
+0x63da 026174 store 2 ,mem_shutter_key_conf0 
+0x63db 026175 fetch 1 ,mem_shutter_led_struct_app_led_gpio_temp 
+0x63dc 026176 store 1 ,mem_shutter_led_struct_app_led_gpio 
+0x63dd 026177 store 1 ,mem_shutter_power_off_led_style_gpio 
+0x63de 026178 fetch 1 ,mem_shutter_hard_soft_switch_case_temp 
+0x63df 026179 store 1 ,mem_shutter_hard_soft_switch_case 
+0x63e0 026180 fetch 1 ,mem_shutter_soft_switch_button_gpio_temp 
+0x63e1 026181 store 1 ,mem_shutter_soft_switch_button_gpio 
+0x63e2 026187 setarg 0x0002 
+0x63e3 026188 store 2 ,mem_key0_press 
+0x63e4 026189 store 2 ,mem_key1_press 
+0x63e5 026190 setarg 0x0006 
+0x63e6 026191 store 2 ,mem_key0_release 
+0x63e7 026192 store 2 ,mem_key1_release 
+0x63e8 026193 setarg 0x0007 
+0x63e9 026194 store 2 ,mem_key2_press 
+0x63ea 026195 setarg 0x0008 
+0x63eb 026196 store 2 ,mem_key2_release 
+0x63ec 026197 setarg mem_shutter_soft_switch_power_state 
+0x63ed 026198 store 2 ,mem_power_param_ptr 
+0x63ee 026199 setarg 0x201400 
+0x63ef 026200 store 3 ,mem_shutter_soft_switch_power_state 
+0x63f0 026201 jam 0x01 ,mem_lpm_mode 
+0x63f1 026202 setarg 0x0100 
+0x63f2 026203 store 2 ,mem_lpm_interval 
+0x63f3 026204 jam 0x08 ,mem_lpm_overhead 
+0x63f4 026205 jam 0x05 ,mem_lpm_mult 
+0x63f5 026206 jam 0x02 ,mem_lpm_mult_timeout 
+0x63f6 026207 setarg 0x0096 
+0x63f7 026208 store 2 ,mem_ble_shutter_reconn_blink_on_time 
+0x63f8 026209 istore 2 ,contw 
+0x63f9 026210 setarg 0x0296 
+0x63fa 026211 store 2 ,mem_ble_shutter_discovery_blink_on_time 
+0x63fb 026212 istore 2 ,contw 
+0x63fc 026213 setsect 0 ,0x10 
+0x63fd 026214 setsect 1 ,0x8008 
+0x63fe 026215 setsect 2 ,0x2c000 
+0x63ff 026216 setsect 3 ,0x04 
+0x6400 026217 store 8 ,mem_ble_shutter_interval_min_new 
+0x6401 026218 jam 0x01 ,mem_ui_led_struct_num 
+0x6402 026219 setarg mem_shutter_led_struct_app_led 
+0x6403 026220 store 2 ,mem_ui_led_struct_ptr 
+0x6404 026221 setarg 0x0000 
+0x6405 026222 store 2 ,mem_shutter_led_struct_app_led 
+0x6406 026223 setsect 0 ,0x1a0 
+0x6407 026224 setsect 1 ,0x68 
+0x6408 026225 setsect 2 ,0x00 
+0x6409 026226 setsect 3 ,0x00 
+0x640a 026227 store 8 ,mem_shutter_led_struct_app_led_on_time 
+0x640b 026228 setarg 0x0301 
+0x640c 026229 store 2 ,mem_shutter_power_off_led_style 
+0x640d 026230 setsect 0 ,0x1a0 
+0x640e 026231 setsect 1 ,0xe8 
+0x640f 026232 setsect 2 ,0x00 
+0x6410 026233 setsect 3 ,0x00 
+0x6411 026234 store 8 ,mem_shutter_power_off_led_style_on_time 
+0x6412 026235 setarg 0x000e 
+0x6413 026236 store 2 ,mem_ble_shutter_reconn_adv_interval 
+0x6414 026237 setarg 0x0140 
+0x6415 026238 store 2 ,mem_ble_shutter_discovery_adv_interval 
+0x6416 026239 store 2 ,mem_le_adv_interval 
+0x6417 026240 setarg 0x0050 
+0x6418 026241 store 2 ,mem_ble_shutter_reconn_timeout 
+0x6419 026242 jam 0x07 ,mem_le_adv_channel_map 
+0x641a 026243 jam 0x00 ,mem_le_adv_enable 
+0x641b 026244 setsect 0 ,0xfb 
+0x641c 026245 setsect 1 ,0x2c212 
+0x641d 026246 setsect 2 ,0x800f 
+0x641e 026247 setsect 3 ,0x21 
+0x641f 026248 store 8 ,mem_local_rx_max_octets 
+0x6420 026249 setsect 0 ,0x0bb8 
+0x6421 026250 setsect 1 ,0x02ee 
+0x6422 026251 store 4 ,mem_ble_shutter_discovery_timeout 
+0x6423 026252 setarg mem_queue_each_size 
+0x6424 026253 store 2 ,mem_queue_ptr 
+0x6425 026254 setarg 0x2001 
+0x6426 026255 store 2 ,mem_queue_each_size 
+0x6427 026256 jam 0x1f ,mem_le_adv_data_len 
+0x6428 026257 setsect 0 ,0x10102 
+0x6429 026258 setsect 1 ,0x80c1 
+0x642a 026259 setsect 2 ,0x18120 
+0x642b 026260 setsect 3 ,0x640c 
+0x642c 026261 store 9 ,mem_le_adv_data 
+0x642d 026262 setsect 0 ,0x3c1 
+0x642e 026263 istore 2 ,contw 
+0x642f 026264 jam 0x1f ,mem_le_scan_data_len 
+0x6430 026265 setsect 0 ,0x2090d 
+0x6431 026266 setsect 1 ,0x34c15 
+0x6432 026267 setsect 2 ,0x28532 
+0x6433 026268 setsect 3 ,0x1d1d5 
+0x6434 026269 store 9 ,mem_le_scan_data 
+0x6435 026270 setsect 0 ,0x26574 
+0x6436 026271 setsect 1 ,0x1c 
+0x6437 026272 istore 3 ,contw 
+0x6438 026273 setarg mem_shutter_keyscan 
+0x6439 026274 store 2 ,mem_keyscan_ptr 
+0x643a 026275 jam 0x02 ,mem_shutter_key_num 
+0x643b 026276 setarg mem_shutter_nv_data 
+0x643c 026277 store 2 ,mem_nv_data_ptr 
+0x643d 026278 jam 0x05 ,mem_nv_data_number 
+0x643e 026279 fetch 1 ,mem_shutter_dy_conf 
+0x643f 026280 beq shutter_type ,shutter_le_uuid_table_conf 
+0x6440 026281 beq shutter_dy_type ,shutter_dy_le_uuid_table_conf 
+0x6441 026282 rtn 
+:      026294 shutter_dy_6_key_conf:
+0x6442 026296 fetch shutter_six_key ,mem_shutter_dy_key_conf 
+0x6443 026297 store shutter_six_key ,mem_shutter_key_conf0 
+0x6444 026298 jam shutter_six_key ,mem_shutter_key_num 
+0x6445 026299 setarg mem_shutter_key_num 
+0x6446 026300 store 2 ,mem_keyscan_ptr 
+0x6447 026301 rtn 
+:      026303 shutter_dy_7_key_conf:
+0x6448 026305 fetch shutter_seven_key ,mem_shutter_dy_key_conf 
+0x6449 026306 store shutter_seven_key ,mem_shutter_key_conf0 
+0x644a 026307 jam shutter_seven_key ,mem_shutter_key_num 
+0x644b 026308 setarg mem_shutter_key_num 
+0x644c 026309 store 2 ,mem_keyscan_ptr 
+0x644d 026310 rtn 
+:      026312 shutter_dy_8_key_conf:
+0x644e 026314 fetch shutter_eight_key ,mem_shutter_dy_key_conf 
+0x644f 026315 store shutter_eight_key ,mem_shutter_key_conf0 
+0x6450 026316 jam shutter_eight_key ,mem_shutter_key_num 
+0x6451 026317 setarg mem_shutter_key_num 
+0x6452 026318 store 2 ,mem_keyscan_ptr 
+0x6453 026319 rtn 
+:      026321 shutter_dy_key_conf:
+0x6454 026322 fetch 1 ,mem_shutter_key_num_conf 
+0x6455 026323 beq shutter_six_key ,shutter_dy_6_key_conf 
+0x6456 026324 beq shutter_seven_key ,shutter_dy_7_key_conf 
+0x6457 026325 beq shutter_eight_key ,shutter_dy_8_key_conf 
+0x6458 026326 rtn 
+:      026328 shutter_dy_adv_conf:
+0x6459 026329 bpatch patch14_1 ,mem_patch14 
+0x645a 026331 fetch 8 ,mem_shutter_ble_discovery_time_conf 
+0x645b 026332 store 8 ,mem_ble_shutter_discovery_timeout 
+0x645c 026333 setarg 0x0096 
+0x645d 026334 store 2 ,mem_ble_shutter_reconn_timeout 
+0x645e 026336 fetch 7 ,mem_shutter_led_on_light_dark_led_conf 
+0x645f 026337 store 7 ,mem_shutter_led_struct_app_led 
+0x6460 026338 fetch 7 ,mem_shutter_led_off_light_dark_led_conf 
+0x6461 026339 store 7 ,mem_shutter_power_off_led_style 
+0x6462 026341 fetch 4 ,mem_shutter_reconn_blink_on_time_conf 
+0x6463 026342 store 4 ,mem_ble_shutter_reconn_blink_on_time 
+0x6464 026343 fetch 4 ,mem_shutter_discovery_blink_on_time_conf 
+0x6465 026344 store 4 ,mem_ble_shutter_discovery_blink_on_time 
+0x6466 026346 setarg 0x000e 
+0x6467 026347 store 2 ,mem_ble_shutter_reconn_adv_interval 
+0x6468 026348 setarg 0x0140 
+0x6469 026349 store 2 ,mem_ble_shutter_discovery_adv_interval 
+0x646a 026350 store 2 ,mem_le_adv_interval 
+0x646b 026357 fetch 8 ,mem_ble_shutter_dy_interval_min_new 
+0x646c 026358 store 8 ,mem_ble_shutter_interval_min_new 
+0x646d 026359 rtn 
+:      026363 shutter_dy_init:
+0x646e 026364 call enable_authrom 
+0x646f 026365 rtn wake 
+0x6470 026367 call shutter_dy_key_conf 
+0x6471 026368 call shutter_dy_adv_conf 
+0x6472 026371 setarg shutter_dy_process_idle 
+0x6473 026372 store 2 ,mem_cb_idle_process 
+0x6474 026374 setarg shutter_dy_process_bb_event 
+0x6475 026375 store 2 ,mem_cb_bb_event_process 
+0x6476 026377 setarg ble_shutter_dy_receive_data 
+0x6477 026378 store 2 ,mem_cb_att_write 
+0x6478 026380 setarg shutter_dy_le_bb_event_timer 
+0x6479 026381 store 2 ,mem_cb_event_timer 
+0x647a 026383 setarg shutter_dy_key_change 
+0x647b 026384 store 2 ,mem_cb_shutter_keycan 
+0x647c 026386 call shutter_common_init 
+0x647d 026388 fetch 2 ,mem_shutter_le_pairing_handle 
+0x647e 026389 store 2 ,mem_le_pairing_handle 
+0x647f 026390 fetch 8 ,mem_ble_shutter_interval_min_new 
+0x6480 026391 store 8 ,mem_ble_shutter_interval_min 
+0x6481 026392 call shutter_dy_iphone_every_move_max_set 
+0x6482 026393 bpatch patch14_2 ,mem_patch14 
+0x6483 026394 branch shutter_power_switch 
+:      026397 shutter_dy_process_idle:
+0x6484 026398 call shutter_dy_shutter_send_data_to_master 
+0x6485 026399 arg key_scan_timer ,queue 
+0x6486 026400 call timer_check 
+0x6487 026401 nrtn blank 
+0x6488 026402 setarg 0x20 
+0x6489 026403 arg key_scan_timer ,queue 
+0x648a 026404 call timer_init 
+0x648b 026405 disable user 
+0x648c 026406 call keyscan_process_lpm_before 
+0x648d 026407 branch shutter_dy_keyscan_key_process 
+:      026409 shutter_dy_iphone_every_move_max_set:
+0x648e 026410 setarg 0x1f 
+0x648f 026411 mul32 pdata ,every_payload_len ,pdata 
+0x6490 026412 arg mem_shutter_mousekey_value_list ,temp 
+0x6491 026413 iadd temp ,rega 
+0x6492 026414 increase 3 ,rega 
+0x6493 026415 arg iphone_once_max_move_value ,temp 
+0x6494 026416 istoret 1 ,rega 
+0x6495 026417 increase 11 ,rega 
+0x6496 026418 arg 0xfff ,pdata 
+0x6497 026419 isub temp ,pdata 
+0x6498 026420 lshift4 pdata ,pdata 
+0x6499 026421 istore 2 ,rega 
+0x649a 026422 rtn 
+:      026424 shutter_dy_shutter_send_data_to_master:
+0x649b 026425 fetch 2 ,mem_ui_state_map 
+0x649c 026426 bbit1 ui_state_ble_connected ,shutter_dy_pop_queue_to_ble_data 
+0x649d 026427 arg mem_queue_curr_num ,contw 
+0x649e 026428 arg 35 ,loopcnt 
+0x649f 026429 branch clear_mem 
+:      026431 shutter_dy_pop_queue_to_ble_data:
+0x64a0 026432 call le_fifo_check_nearly_full 
+0x64a1 026433 nrtn blank 
+0x64a2 026434 call queue_empty 
+0x64a3 026435 rtn blank 
+0x64a4 026436 fetcht 4 ,mem_key_send_clk 
+0x64a5 026437 copy clkn_bt ,pdata 
+0x64a6 026438 isub temp ,temp 
+0x64a7 026439 rtn zero 
+0x64a8 026440 nbranch shutter_dy_pop_queue_to_ble_data2 ,positive 
+0x64a9 026441 fetch 1 ,mem_send_data_delay 
+0x64aa 026442 isub temp ,null 
+0x64ab 026443 rtn positive 
+:      026444 shutter_dy_pop_queue_to_ble_data2:
+0x64ac 026445 copy clkn_bt ,pdata 
+0x64ad 026446 store 4 ,mem_key_send_clk 
+0x64ae 026447 call queue_pop_one_byte 
+0x64af 026448 nrtn user 
+0x64b0 026449 pincrease -1 
+0x64b1 026450 mul32 pdata ,10 ,pdata 
+0x64b2 026451 arg mem_shutter_mousekey_value_list ,temp 
+0x64b3 026452 iadd temp ,contr 
+0x64b4 026453 branch le_send_notify_from_list 
+:      026456 shutter_dy_le_bb_event_timer:
+0x64b5 026457 call shutter_dy_shutter_1s_timer 
+0x64b6 026458 call shutter_dy_link_key_loop_timer 
+0x64b7 026459 call shutter_dy_long_key_volume_timer 
+0x64b8 026460 call shutter_dy_iphone_move_mid_timer 
+0x64b9 026461 call shutter_dy_clear_key_state_timer 
+0x64ba 026462 call shutter_check_sleep_timer 
+0x64bb 026463 branch shutter_dy_check_power_off_timer 
+:      026465 shutter_dy_iphone_move_mid_timer:
+0x64bc 026466 arg mem_shutter_move_mid_timer ,regc 
+0x64bd 026467 arg shutter_dy_iphone_move_mid_timeout ,regb 
+0x64be 026468 branch timer_single_step 
+:      026470 shutter_dy_iphone_move_mid_timeout:
+0x64bf 026471 call queue_empty 
+0x64c0 026472 nrtn blank 
+0x64c1 026473 fetch 2 ,mem_key_value_xmem 
+0x64c2 026474 nrtn blank 
+:      026475 shutter_dy_iphone_move_mid:
+0x64c3 026476 call shutter_dy_check_iphone 
+0x64c4 026477 branch shutter_dy_android_like_loaction_mid ,blank 
+0x64c5 026478 copy queue ,pdata 
+0x64c6 026479 compare 0x04 ,pdata ,0x07 
+0x64c7 026480 branch shutter_dy_iphone_up_mid ,true 
+0x64c8 026482 copy queue ,pdata 
+0x64c9 026483 compare 0x01 ,pdata ,0x07 
+0x64ca 026484 branch shutter_dy_iphone_like_mid ,true 
+0x64cb 026485 arg mem_shutter_iphone_move_mid ,regc 
+0x64cc 026486 branch push_buffer_in_queue 
+:      026488 shutter_dy_android_like_loaction_mid:
+0x64cd 026489 arg mem_shutter_android_move_mid ,regc 
+0x64ce 026490 branch push_buffer_in_queue 
+:      026492 shutter_dy_iphone_up_mid:
+0x64cf 026493 arg mem_shutter_iphone_up_mid ,regc 
+0x64d0 026494 branch push_buffer_in_queue 
+:      026496 shutter_dy_iphone_like_mid:
+0x64d1 026497 arg mem_shutter_iphone_like_mid ,regc 
+0x64d2 026498 branch push_buffer_in_queue 
+:      026500 shutter_dy_clear_key_state_timer:
+0x64d3 026501 arg mem_shutter_like_timeout ,regc 
+0x64d4 026502 arg shutter_dy_clear_key_state_timeout ,regb 
+0x64d5 026503 branch timer_single_step 
+:      026505 shutter_dy_clear_key_state_timeout:
+0x64d6 026506 arg shutter_key_conf_sate_bytes ,loopcnt 
+0x64d7 026507 arg mem_shutter_key_state1 ,contw 
+0x64d8 026508 branch clear_mem 
+:      026511 shutter_dy_check_power_off_timer:
+0x64d9 026512 arg mem_shutter_power_off_timer ,regc 
+0x64da 026513 arg shutter_dy_check_power_off_timeout ,regb 
+0x64db 026514 branch timer_single_step 
+:      026515 shutter_dy_check_power_off_timeout:
+0x64dc 026516 fetch 2 ,mem_ui_state_map 
+0x64dd 026517 bbit1 ui_state_ble_connected ,shutter_wait_power_off 
+0x64de 026518 branch app_enter_hibernate 
+:      026520 shutter_dy_process_bb_event:
+0x64df 026521 copy regc ,pdata 
+0x64e0 026522 beq bt_evt_le_connected ,ble_shutter_dy_process_baseband_connect 
+0x64e1 026523 beq bt_evt_le_disconnected ,ble_shutter_dy_process_baseband_disconnect 
+0x64e2 026524 beq bt_evt_le_pairing_success ,ble_shutter_dy_pairing_success 
+0x64e3 026525 rtneq bt_evt_le_parse_conn_papa_update_rsp 
+0x64e4 026526 beq bt_evt_le_start_enc ,shutter_dy_le_find_service_hand_by_uuid 
+0x64e5 026527 branch shutter_process_bb_event 
+:      026529 ble_shutter_dy_pairing_success:
+0x64e6 026530 jam 1 ,mem_shutter_pairing_success 
+0x64e7 026531 call shutter_dy_clear_move_config 
+0x64e8 026533 fetch 2 ,mem_android_initial_move_x 
+0x64e9 026534 store 2 ,mem_shutter_move_data_x 
+0x64ea 026536 fetcht 2 ,mem_android_initial_move_y 
+0x64eb 026537 setarg 0xfff 
+0x64ec 026538 isub temp ,pdata 
+0x64ed 026539 store 2 ,mem_shutter_move_data_y 
+0x64ee 026540 rtn 
+:      026542 ble_shutter_dy_process_baseband_disconnect:
+0x64ef 026543 jam 0 ,mem_shutter_le_conned 
+0x64f0 026544 jam 0 ,mem_shutter_pairing_success 
+0x64f1 026545 call shutter_dy_move_mode_disable 
+0x64f2 026546 call shutter_dy_over_clear 
+0x64f3 026547 branch ble_shutter_process_baseband_disconnect 
+:      026549 ble_shutter_dy_process_baseband_connect:
+0x64f4 026550 copy clkn_bt ,pdata 
+0x64f5 026551 store 4 ,mem_key_send_clk 
+0x64f6 026552 call shutter_dy_remote_not_iphone 
+0x64f7 026553 branch ble_shutter_process_baseband_connect 
+:      026556 shutter_dy_check_send_data:
+0x64f8 026557 disable user2 
+0x64f9 026558 fetch 2 ,mem_shutter_sleep_timeout 
+0x64fa 026559 store 2 ,mem_shutter_sleep_timer 
+0x64fb 026560 call shutter_check_bluetooth_conn 
+0x64fc 026561 branch shutter_change_bluetooth_status_bt_disconn ,user 
+0x64fd 026562 call shutter_check_data_enable 
+0x64fe 026563 nrtn user 
+0x64ff 026564 branch enable_user2 
+:      026566 shutter_dy_over_clear:
+0x6500 026567 jam 0 ,mem_last_press_key_value 
+0x6501 026568 rtn 
+:      026570 shutter_dy_key_value_filter:
+0x6502 026571 copy queue ,pdata 
+0x6503 026572 rtnne shutter_like_key_num 
+0x6504 026573 branch shutter_dy_key_press_next 
+:      026575 shutter_dy_key_change:
+0x6505 026576 call shutter_dy_check_send_data 
+0x6506 026577 nrtn user2 
+0x6507 026578 deposit rega 
+0x6508 026579 branch shutter_dy_shutter_key_release ,blank 
+:      026580 shutter_dy_key_press:
+0x6509 026581 bpatch patch14_3 ,mem_patch14 
+0x650a 026582 fetch 1 ,mem_shutter_link_loop_flag 
+0x650b 026583 nbranch shutter_dy_key_value_filter ,blank 
+:      026584 shutter_dy_key_press_next:
+0x650c 026585 jam 1 ,mem_shutter_key_pressed 
+0x650d 026586 call app_led_on 
+0x650e 026587 call shutter_dy_key_press_clk 
+0x650f 026588 call shutter_dy_jude_queue_size 
+0x6510 026589 branch shutter_dy_over_clear ,positive 
+0x6511 026590 copy queue ,pdata 
+0x6512 026591 fetcht 1 ,mem_last_press_key_value 
+0x6513 026592 isub temp ,null 
+0x6514 026593 ncall shutter_dy_iphone_check_move_mid ,zero 
+0x6515 026594 copy queue ,pdata 
+0x6516 026595 store 1 ,mem_last_press_key_value 
+0x6517 026596 fetcht 1 ,mem_move_mode_key_index 
+0x6518 026597 isub temp ,null 
+0x6519 026598 branch shutter_dy_key_move_to_specify_location ,zero 
+0x651a 026599 fetch 1 ,mem_move_mode_trigger_enable 
+0x651b 026600 nbranch shutter_dy_move_set ,blank 
+:      026601 shutter_dy_page_set:
+0x651c 026602 call shutter_dy_le_get_press_ptr 
+0x651d 026603 arg max_queue_new_press ,pdata 
+0x651e 026604 branch shutter_dy_push_queue_press_or_release 
+:      026606 shutter_dy_move_set:
+0x651f 026607 call shutter_dy_jude_clear_move_config 
+0x6520 026608 copy queue ,pdata 
+0x6521 026609 beq shutter_like_key_num ,shutter_dy_page_set 
+0x6522 026610 call shutter_dy_check_move_data 
+0x6523 026611 branch shutter_dy_move_to_specify_location 
+:      026613 shutter_dy_key_move_to_specify_location:
+0x6524 026614 jam 1 ,mem_shutter_first_move 
+0x6525 026615 branch shutter_dy_move_to_specify_location 
+:      026617 shutter_dy_iphone_check_move_mid:
+0x6526 026618 bpatch patch14_4 ,mem_patch14 
+0x6527 026619 fetch 1 ,mem_move_mode_trigger_enable 
+0x6528 026620 branch shutter_dy_iphone_move_mid ,blank 
+0x6529 026621 copy queue ,pdata 
+0x652a 026622 beq shutter_like_key_num ,shutter_dy_iphone_move_mid 
+0x652b 026623 rtn 
+:      026624 shutter_dy_key_press_clk:
+0x652c 026625 arg shutter_key_conf_sate_bytes ,pdata 
+0x652d 026626 imul32 queue ,pdata 
+0x652e 026627 arg mem_shutter_key_state0 ,regc 
+0x652f 026628 iadd regc ,regc 
+0x6530 026629 copy clkn_bt ,pdata 
+0x6531 026630 istore key_state_press_clk_length ,regc 
+0x6532 026631 increase key_state_press_count_offset ,regc 
+0x6533 026632 ifetch 1 ,regc 
+0x6534 026633 increase 1 ,pdata 
+0x6535 026634 istore 1 ,regc 
+0x6536 026635 rtn 
+:      026636 shutter_dy_shutter_key_release:
+0x6537 026637 bpatch patch14_5 ,mem_patch14 
+0x6538 026638 fetch 1 ,mem_move_mode_trigger_enable 
+0x6539 026639 call shutter_dy_key_release_led ,blank 
+:      026640 shutter_dy_shutter_key_release_time:
+0x653a 026641 arg shutter_key_conf_sate_bytes ,pdata 
+0x653b 026642 imul32 queue ,pdata 
+0x653c 026643 arg mem_shutter_key_state0 ,regc 
+0x653d 026644 iadd regc ,regc 
+0x653e 026645 ifetcht 4 ,regc 
+0x653f 026646 sub temp ,0 ,null 
+0x6540 026647 rtn zero 
+0x6541 026648 copy clkn_bt ,pdata 
+0x6542 026649 isub temp ,temp 
+0x6543 026650 ncall ui_timer_timeout ,positive 
+0x6544 026651 add regc ,key_state_longpress_offset ,contr 
+0x6545 026652 ifetch 1 ,contr 
+0x6546 026653 nbranch shutter_dy_push_queue_long_release ,blank 
+0x6547 026654 increase key_state_release_clk_offset ,regc 
+0x6548 026655 copy clkn_bt ,pdata 
+0x6549 026656 istore key_state_release_clk_length ,regc 
+0x654a 026657 rtn 
+:      026659 shutter_dy_key_release_led:
+0x654b 026660 fetch 1 ,mem_shutter_link_loop_flag 
+0x654c 026661 nbranch app_led_on ,blank 
+0x654d 026662 branch app_led_off 
+:      026664 shutter_dy_push_queue_release:
+0x654e 026665 add regc ,4 ,contr 
+0x654f 026666 ifetch 1 ,contr 
+0x6550 026667 branch shutter_dy_push_queue_release1 
+:      026669 shutter_dy_push_queue_release1:
+0x6551 026670 call shutter_clear_dy_key_state 
+0x6552 026671 fetch 1 ,mem_move_mode_trigger_enable 
+0x6553 026672 nbranch shutter_dy_move_mode_queue_release ,blank 
+:      026673 shutter_dy_push_queue_release1_next:
+0x6554 026674 call shutter_dy_jude_queue_size 
+0x6555 026675 branch shutter_dy_over_clear ,positive 
+0x6556 026676 call shutter_dy_le_get_release_ptr 
+0x6557 026677 copy queue ,pdata 
+0x6558 026678 beq shutter_photo_key_num ,shutter_dy_le_get_release_ptr_volume 
+0x6559 026679 arg max_queue_num_release ,pdata 
+:      026680 shutter_dy_push_queue_press_or_release:
+0x655a 026681 imul32 queue ,pdata 
+0x655b 026682 iadd regc ,regc 
+0x655c 026683 branch push_buffer_in_queue 
+:      026685 shutter_dy_move_mode_queue_release:
+0x655d 026686 copy queue ,pdata 
+0x655e 026687 beq shutter_like_key_num ,shutter_dy_push_queue_release1_next 
+0x655f 026688 beq shutter_photo_key_num ,shutter_dy_push_queue_release1_next 
+0x6560 026689 rtn 
+:      026691 shutter_dy_jude_queue_size:
+0x6561 026692 call queue_get_size 
+0x6562 026693 ifetcht 1 ,contr 
+0x6563 026694 isub temp ,pdata 
+0x6564 026695 sub pdata ,max_queue_new_press ,null 
+0x6565 026696 rtn 
+:      026698 shutter_dy_push_queue_long_release:
+0x6566 026699 jam 1 ,mem_shutter_long_key_released_flag 
+0x6567 026700 call shutter_clear_dy_key_state 
+0x6568 026701 arg mem_key0_long_release ,regc 
+0x6569 026702 arg max_queue_num_long_release ,pdata 
+0x656a 026703 branch shutter_dy_push_queue_press_or_release 
+:      026705 shutter_clear_dy_key_state:
+0x656b 026706 arg shutter_key_conf_sate_bytes ,loopcnt 
+0x656c 026707 copy regc ,contw 
+0x656d 026708 branch clear_mem 
+:      026710 shutter_dy_keyscan_key_process:
+0x656e 026711 fetch 2 ,mem_key_value_xmem 
+0x656f 026712 store 2 ,mem_key_value_retention 
+0x6570 026713 call shutter_dy_keyscan_key_process_next 
+0x6571 026714 fetch 2 ,mem_key_value_retention 
+0x6572 026715 store 2 ,mem_key_value_xmem 
+0x6573 026717 arg 0 ,queue 
+0x6574 026718 fetch 1 ,mem_shutter_key_num 
+0x6575 026719 copy pdata ,loopcnt 
+0x6576 026720 arg mem_shutter_key_state0 ,regc 
+:      026721 shutter_dy_keyscan_key_check_release_loop:
+0x6577 026722 copy loopcnt ,pdata 
+0x6578 026723 store 2 ,mem_temp 
+0x6579 026724 copy regc ,pdata 
+0x657a 026725 store 2 ,mem_regc 
+0x657b 026726 copy queue ,pdata 
+0x657c 026727 store 2 ,mem_temp + 2 
+0x657d 026728 call shutter_dy_keyscan_key_check_release 
+0x657e 026730 fetch 2 ,mem_regc 
+0x657f 026731 copy pdata ,regc 
+0x6580 026732 fetch 2 ,mem_temp + 2 
+0x6581 026733 copy pdata ,queue 
+0x6582 026734 call shutter_dy_keyscan_key_check_long_press 
+0x6583 026736 fetch 2 ,mem_temp + 2 
+0x6584 026737 add pdata ,1 ,queue 
+0x6585 026738 fetch 2 ,mem_regc 
+0x6586 026739 add pdata ,shutter_key_conf_sate_bytes ,regc 
+0x6587 026740 fetch 2 ,mem_temp 
+0x6588 026741 copy pdata ,loopcnt 
+0x6589 026742 loop shutter_dy_keyscan_key_check_release_loop 
+0x658a 026743 rtn 
+:      026745 shutter_dy_keyscan_key_check_long_press:
+0x658b 026746 ifetch key_state_press_clk_length ,regc 
+0x658c 026747 rtn blank 
+0x658d 026748 copy pdata ,temp 
+0x658e 026749 copy clkn_bt ,pdata 
+0x658f 026750 isub temp ,temp 
+0x6590 026751 nrtn positive 
+0x6591 026752 setarg 2500 
+0x6592 026753 isub temp ,null 
+0x6593 026754 rtn positive 
+0x6594 026755 copy clkn_bt ,pdata 
+0x6595 026756 istore 4 ,regc 
+0x6596 026757 increase key_state_longpress_offset ,regc 
+0x6597 026758 setarg 1 
+0x6598 026759 istore key_state_longpress_length ,regc 
+0x6599 026760 fetch 1 ,mem_shutter_long_key_released_flag 
+0x659a 026761 rtn blank 
+0x659b 026762 jam 0 ,mem_shutter_long_key_released_flag 
+0x659c 026763 bpatch patch14_6 ,mem_patch14 
+0x659d 026764 call shutter_dy_long_key_function 
+0x659e 026765 fetch 1 ,mem_move_mode_set 
+0x659f 026766 beq move_combine_key ,shutter_dy_key_long_press_set_key_normal 
+0x65a0 026767 beq move_single_key ,shutter_dy_key_long_press_set_move_trigger 
+0x65a1 026768 rtn 
+:      026770 shutter_dy_key_long_press_set_key_normal:
+0x65a2 026771 call shutter_dy_long_press_android_or_ios 
+0x65a3 026772 arg max_queue_num_long ,pdata 
+0x65a4 026773 branch shutter_dy_push_queue_press_or_release 
+:      026775 shutter_dy_key_long_press_set_move_trigger:
+0x65a5 026776 copy queue ,pdata 
+0x65a6 026777 fetcht 1 ,mem_move_mode_key_index 
+0x65a7 026778 isub temp ,null 
+0x65a8 026779 nbranch shutter_dy_key_long_press_set_key_normal ,zero 
+0x65a9 026780 fetch 1 ,mem_move_mode_trigger_enable 
+0x65aa 026781 setflip 0 ,pdata 
+0x65ab 026782 store 1 ,mem_move_mode_trigger_enable 
+0x65ac 026783 nrtn blank 
+:      026784 shutter_dy_move_mode_disable:
+0x65ad 026785 jam 0 ,mem_move_mode_trigger_enable 
+0x65ae 026786 branch app_led_off 
+:      026788 shutter_dy_long_press_android_or_ios:
+0x65af 026789 arg mem_key0_long_press ,regc 
+0x65b0 026790 call shutter_dy_check_iphone 
+0x65b1 026791 rtn blank 
+0x65b2 026792 arg mem_key0_long_press_i ,regc 
+0x65b3 026793 rtn 
+:      026795 shutter_dy_keyscan_key_check_release:
+0x65b4 026796 add regc ,key_state_release_clk_offset ,regb 
+0x65b5 026797 ifetch key_state_release_clk_length ,regb 
+0x65b6 026798 rtn blank 
+0x65b7 026799 copy pdata ,temp 
+0x65b8 026800 copy clkn_bt ,pdata 
+0x65b9 026801 isub temp ,temp 
+0x65ba 026802 ncall ui_timer_timeout ,positive 
+0x65bb 026803 setarg 1000 
+0x65bc 026804 isub temp ,null 
+0x65bd 026805 branch shutter_dy_push_queue_release 
+:      026806 shutter_dy_keyscan_key_process_next:
+0x65be 026807 fetch 2 ,mem_key_num_ptr 
+0x65bf 026808 ifetch 1 ,pdata 
+0x65c0 026809 rtn blank 
+0x65c1 026811 setarg 0 
+0x65c2 026812 store 2 ,mem_key_value_temp 
+0x65c3 026813 call keyscan_scan_key 
+0x65c4 026814 nbranch lpm_button_clean_wake_lock ,user 
+0x65c5 026815 call lpm_button_get_wake_lock 
+0x65c6 026816 disable user 
+0x65c7 026817 fetch 1 ,mem_le_adv_enable 
+0x65c8 026818 nrtn blank 
+0x65c9 026819 bpatch patch14_7 ,mem_patch14 
+0x65ca 026820 fetch 1 ,mem_move_mode_set 
+0x65cb 026821 beq move_single_key ,shutter_dy_skip_check_combine_key 
+0x65cc 026822 call shutter_dy_check_combine_key_release 
+0x65cd 026823 call shutter_dy_check_combine_key 
+0x65ce 026824 rtn user 
+:      026825 shutter_dy_skip_check_combine_key:
+0x65cf 026826 call shutter_dy_single_key_led 
+0x65d0 026827 fetch 2 ,mem_key_value_temp 
+0x65d1 026828 store 2 ,mem_key_value_temp4 
+0x65d2 026829 jam 0 ,mem_key_value_temp6 
+0x65d3 026830 force 0 ,queue 
+0x65d4 026831 branch keyscan_key_lp1 
+:      026833 shutter_dy_single_key_led:
+0x65d5 026834 fetch 1 ,mem_last_press_key_value 
+0x65d6 026835 fetcht 1 ,mem_move_mode_key_index 
+0x65d7 026836 isub temp ,null 
+0x65d8 026837 branch app_led_on ,zero 
+0x65d9 026838 fetch 1 ,mem_move_mode_trigger_enable 
+0x65da 026839 nbranch app_led_off ,blank 
+0x65db 026840 rtn 
+:      026842 shutter_dy_check_combine_key:
+0x65dc 026843 arg 0 ,queue 
+:      026844 shutter_dy_check_combine_key_loop:
+0x65dd 026845 arg mem_combine_key0 ,regb 
+0x65de 026846 arg 2 ,pdata 
+0x65df 026847 imul32 queue ,pdata 
+0x65e0 026848 iadd regb ,regb 
+0x65e1 026849 ifetch 2 ,regb 
+0x65e2 026851 rtn blank 
+0x65e3 026852 fetcht 2 ,mem_key_value_temp 
+0x65e4 026853 ixor temp ,null 
+0x65e5 026854 branch shutter_dy_check_combine_key_parse ,zero 
+0x65e6 026855 increase 1 ,queue 
+0x65e7 026856 branch shutter_dy_check_combine_key_loop 
+:      026858 shutter_dy_check_combine_key_parse:
+0x65e8 026859 store 2 ,mem_combine_key_state0 
+0x65e9 026860 call app_led_on 
+0x65ea 026861 arg mem_combine_key0_press ,regc 
+0x65eb 026862 arg max_queue_num_combinekey ,pdata 
+0x65ec 026863 imul32 queue ,pdata 
+0x65ed 026864 iadd regc ,regc 
+0x65ee 026865 call shutter_dy_push_buffer_in_queue 
+0x65ef 026866 branch shutter_dy_combine_key_enableuser 
+:      026868 shutter_dy_push_buffer_in_queue:
+0x65f0 026869 call shutter_dy_jude_clear_move_config 
+0x65f1 026870 ifetch 1 ,regc 
+0x65f2 026871 rtn blank 
+0x65f3 026872 call shutter_dy_check_move_data 
+:      026873 shutter_dy_move_to_specify_location:
+0x65f4 026874 call shutter_dy_jude_clear_move_config 
+0x65f5 026875 call shutter_dy_move_down_left_corner 
+0x65f6 026876 call shutter_dy_move_x_max 
+0x65f7 026877 call shutter_dy_move_y_max 
+0x65f8 026878 arg 0x05 ,pdata 
+0x65f9 026879 call queue_push_one_byte 
+0x65fa 026880 call shutter_dy_check_iphone 
+0x65fb 026881 rtn blank 
+0x65fc 026882 jam 120 ,mem_send_data_delay 
+0x65fd 026883 arg 0x06 ,pdata 
+0x65fe 026884 branch queue_push_one_byte 
+:      026886 shutter_dy_move_down_left_corner_count_set:
+0x65ff 026887 fetcht 1 ,mem_shutter_back_count 
+0x6600 026888 call shutter_dy_check_iphone 
+0x6601 026889 rtn blank 
+0x6602 026890 fetcht 1 ,mem_shutter_iphone_beyond_y_count 
+0x6603 026891 increase 1 ,temp 
+0x6604 026892 fetch 1 ,mem_shutter_first_move 
+0x6605 026893 rtn blank 
+0x6606 026894 fetcht 1 ,mem_shutter_back_count 
+0x6607 026895 jam 0 ,mem_shutter_first_move 
+0x6608 026896 rtn 
+:      026898 shutter_dy_move_down_left_corner:
+0x6609 026899 call shutter_dy_move_down_left_corner_count_set 
+0x660a 026900 copy temp ,pdata 
+0x660b 026901 rtn blank 
+0x660c 026902 store 1 ,mem_shutter_back_count_cache 
+:      026903 shutter_dy_move_down_left_corner_loop:
+0x660d 026904 arg 0x13 ,pdata 
+0x660e 026905 call queue_push_one_byte 
+0x660f 026906 fetch 1 ,mem_shutter_back_count_cache 
+0x6610 026907 increase -1 ,pdata 
+0x6611 026908 store 1 ,mem_shutter_back_count_cache 
+0x6612 026909 rtn blank 
+0x6613 026910 branch shutter_dy_move_down_left_corner_loop 
+:      026912 shutter_dy_move_x_max:
+0x6614 026913 fetch 1 ,mem_shutter_iphone_beyond_x_count 
+0x6615 026914 rtn blank 
+0x6616 026915 store 1 ,mem_shutter_iphone_beyond_x_cache 
+:      026916 shutter_dy_move_x_max_number:
+0x6617 026917 arg 0x20 ,pdata 
+0x6618 026918 call queue_push_one_byte 
+0x6619 026919 fetch 1 ,mem_shutter_iphone_beyond_x_cache 
+0x661a 026920 increase -1 ,pdata 
+0x661b 026921 store 1 ,mem_shutter_iphone_beyond_x_cache 
+0x661c 026922 rtn blank 
+0x661d 026923 branch shutter_dy_move_x_max_number 
+:      026925 shutter_dy_move_y_max:
+0x661e 026926 fetch 1 ,mem_shutter_iphone_beyond_y_count 
+0x661f 026927 rtn blank 
+0x6620 026928 store 1 ,mem_shutter_iphone_beyond_y_cache 
+:      026929 shutter_dy_move_y_max_number:
+0x6621 026930 arg 0x21 ,pdata 
+0x6622 026931 call queue_push_one_byte 
+0x6623 026932 fetch 1 ,mem_shutter_iphone_beyond_y_cache 
+0x6624 026933 increase -1 ,pdata 
+0x6625 026934 store 1 ,mem_shutter_iphone_beyond_y_cache 
+0x6626 026935 rtn blank 
+0x6627 026936 branch shutter_dy_move_y_max_number 
+:      026938 shutter_dy_check_combine_key_release:
+0x6628 026939 fetch 2 ,mem_combine_key_state0 
+0x6629 026940 rtn blank 
+0x662a 026941 fetcht 2 ,mem_key_value_temp 
+0x662b 026942 sub temp ,0 ,null 
+0x662c 026943 branch shutter_dy_check_combine_key_release_all ,zero 
+0x662d 026944 isub temp ,null 
+0x662e 026945 rtn zero 
+0x662f 026946 storet 2 ,mem_combine_key_state0 
+0x6630 026947 fetch 2 ,mem_combine_key_release_value 
+0x6631 026948 isub temp ,null 
+0x6632 026949 call app_led_off ,zero 
+:      026950 shutter_dy_combine_key_enableuser:
+0x6633 026951 fetch 2 ,mem_key_value_temp 
+0x6634 026952 store 2 ,mem_key_value_retention 
+0x6635 026953 branch enable_user 
+:      026954 shutter_dy_check_combine_key_release_all:
+0x6636 026955 jam 1 ,mem_shutter_long_key_released_flag 
+0x6637 026956 call app_led_off 
+0x6638 026957 arg mem_combine_key_release ,regc 
+0x6639 026958 call shutter_dy_push_buffer_in_queue 
+0x663a 026959 setarg 0 
+0x663b 026960 store 2 ,mem_combine_key_state0 
+0x663c 026961 jam 50 ,mem_shutter_1s_timer 
+0x663d 026962 call shutter_dy_combine_key_enableuser 
+0x663e 026963 fetch 1 ,mem_shutter_key_num 
+0x663f 026964 mul32 pdata ,shutter_key_conf_sate_bytes ,loopcnt 
+0x6640 026965 arg mem_shutter_key_state0 ,contw 
+0x6641 026966 branch clear_mem 
+:      026967 shutter_dy_check_move_data:
+0x6642 026968 bpatch patch15_0 ,mem_patch15 
+0x6643 026969 fetch 1 ,mem_move_mode_set 
+0x6644 026970 beq move_single_key ,shutter_dy_check_move_data_single_key 
+0x6645 026971 beq move_combine_key ,shutter_dy_check_move_data_combine_key 
+0x6646 026972 rtn 
+:      026973 shutter_dy_check_move_data_single_key:
+0x6647 026974 copy queue ,pdata 
+0x6648 026975 beq shutter_left_key_num ,shutter_dy_move_left 
+0x6649 026976 beq shutter_right_key_num ,shutter_dy_move_right 
+0x664a 026977 beq shutter_up_key_num ,shutter_dy_move_up 
+0x664b 026978 beq shutter_down_key_num ,shutter_dy_move_down 
+0x664c 026979 rtn 
+:      026980 shutter_dy_check_move_data_combine_key:
+0x664d 026981 ifetch 1 ,regc 
+0x664e 026982 beq 0x01 ,shutter_dy_move_left 
+0x664f 026983 beq 0x02 ,shutter_dy_move_right 
+0x6650 026984 beq 0x03 ,shutter_dy_move_up 
+0x6651 026985 beq 0x04 ,shutter_dy_move_down 
+0x6652 026986 beq 0x05 ,shutter_dy_get_move_data 
+0x6653 026987 rtn 
+:      026988 shutter_dy_get_move_data:
+0x6654 026989 call shutter_dy_check_iphone 
+0x6655 026990 nbranch shutter_dy_get_move_data_iphone ,blank 
+0x6656 026991 setarg 4 
+0x6657 026992 mul32 pdata ,every_payload_len ,pdata 
+0x6658 026993 arg mem_shutter_mousekey_value_list ,temp 
+0x6659 026994 iadd temp ,contw 
+0x665a 026995 increase 3 ,contw 
+0x665b 026996 fetch 3 ,mem_shutter_move_data 
+0x665c 026997 istore 3 ,contw 
+0x665d 026998 rtn 
+:      026999 shutter_dy_get_move_data_iphone:
+0x665e 027000 setarg 4 
+0x665f 027001 mul32 pdata ,every_payload_len ,pdata 
+0x6660 027002 arg mem_shutter_mousekey_value_list ,temp 
+0x6661 027003 iadd temp ,contw 
+0x6662 027004 increase 3 ,contw 
+0x6663 027005 fetch 2 ,mem_shutter_move_data_x 
+0x6664 027006 istore 3 ,contw 
+0x6665 027007 increase 7 ,contw 
+0x6666 027008 fetch 2 ,mem_shutter_move_data_y 
+0x6667 027009 lshift4 pdata ,pdata 
+0x6668 027010 lshift8 pdata ,pdata 
+0x6669 027011 istore 3 ,contw 
+0x666a 027012 rtn 
+:      027014 shutter_dy_move_x_empty_check:
+0x666b 027015 fetch 1 ,mem_shutter_iphone_beyond_x_count 
+0x666c 027016 rtn blank 
+0x666d 027017 increase -1 ,pdata 
+0x666e 027018 store 1 ,mem_shutter_iphone_beyond_x_count 
+0x666f 027019 arg iphone_once_max_move_value ,pdata 
+0x6670 027020 rtn 
+:      027021 shutter_dy_every_move_size_set:
+0x6671 027022 arg android_every_move_size ,temp 
+0x6672 027023 call shutter_dy_check_iphone 
+0x6673 027024 rtn blank 
+0x6674 027025 arg iphone_every_move_size ,temp 
+0x6675 027026 rtn 
+:      027027 shutter_dy_move_left:
+0x6676 027028 call shutter_dy_every_move_size_set 
+0x6677 027029 fetch 2 ,mem_shutter_move_data_x 
+0x6678 027030 isub temp ,null 
+0x6679 027031 ncall shutter_dy_move_x_empty_check ,positive 
+0x667a 027032 nrtn positive 
+0x667b 027033 isub temp ,pdata 
+:      027034 shutter_dy_move_store_x:
+0x667c 027035 store 2 ,mem_shutter_move_data_x 
+:      027036 shutter_dy_move_data_store:
+0x667d 027037 bpatch patch15_1 ,mem_patch15 
+0x667e 027038 fetch 2 ,mem_shutter_move_data_x 
+0x667f 027039 fetcht 2 ,mem_shutter_move_data_y 
+0x6680 027040 lshift8 temp ,temp 
+0x6681 027041 lshift4 temp ,temp 
+0x6682 027042 iadd temp ,pdata 
+0x6683 027043 store 3 ,mem_shutter_move_data 
+0x6684 027044 branch shutter_dy_get_move_data 
+:      027045 shutter_dy_move_x_check_max:
+0x6685 027046 fetch 2 ,mem_shutter_move_data_x 
+0x6686 027047 arg iphone_once_max_move_value ,temp 
+0x6687 027048 isub temp ,temp 
+0x6688 027049 nrtn positive 
+0x6689 027050 copy temp ,pdata 
+0x668a 027051 fetcht 1 ,mem_shutter_iphone_beyond_x_count 
+0x668b 027052 sub temp ,0x03 ,null 
+0x668c 027053 branch shutter_dy_clear_move_x ,zero 
+0x668d 027054 increase 1 ,temp 
+0x668e 027055 storet 1 ,mem_shutter_iphone_beyond_x_count 
+0x668f 027056 branch shutter_dy_move_store_x 
+:      027057 shutter_dy_clear_move_x:
+0x6690 027058 jam 0 ,mem_shutter_iphone_beyond_x_count 
+0x6691 027059 arg 0 ,pdata 
+0x6692 027060 branch shutter_dy_move_store_x 
+:      027061 shutter_dy_move_right:
+0x6693 027062 call shutter_dy_check_iphone 
+0x6694 027063 ncall shutter_dy_move_x_check_max ,blank 
+0x6695 027064 call shutter_dy_every_move_size_set 
+0x6696 027065 fetch 2 ,mem_shutter_move_data_x 
+:      027066 shutter_dy_move_right_next:
+0x6697 027067 iadd temp ,pdata 
+0x6698 027068 arg 0xfff ,temp 
+0x6699 027069 call ceiling 
+0x669a 027070 branch shutter_dy_move_store_x 
+:      027072 shutter_dy_move_up:
+0x669b 027073 call shutter_dy_every_move_size_set 
+0x669c 027074 fetch 2 ,mem_shutter_move_data_y 
+0x669d 027075 isub temp ,pdata 
+0x669e 027076 store 2 ,mem_shutter_move_data_y 
+:      027077 shutter_dy_move_y_check_max:
+0x669f 027078 fetcht 2 ,mem_shutter_move_data_y 
+0x66a0 027079 call shutter_dy_check_iphone 
+0x66a1 027080 branch shutter_dy_move_data_store ,blank 
+0x66a2 027081 setarg 0xfff 
+0x66a3 027082 isub temp ,pdata 
+0x66a4 027083 arg iphone_once_max_move_value ,temp 
+0x66a5 027084 isub temp ,temp 
+0x66a6 027085 nbranch shutter_dy_move_data_store ,positive 
+0x66a7 027086 setarg 0xfff 
+0x66a8 027087 isub temp ,pdata 
+0x66a9 027088 fetcht 1 ,mem_shutter_iphone_beyond_y_count 
+0x66aa 027089 sub temp ,0x05 ,null 
+0x66ab 027090 branch shutter_dy_clear_move_y ,zero 
+0x66ac 027091 increase 1 ,temp 
+0x66ad 027092 storet 1 ,mem_shutter_iphone_beyond_y_count 
+0x66ae 027093 branch shutter_dy_move_store_y 
+:      027094 shutter_dy_clear_move_y:
+0x66af 027095 jam 0 ,mem_shutter_iphone_beyond_y_count 
+:      027096 shutter_dy_android_move_y_empty_check:
+0x66b0 027097 setarg 0xfff 
+0x66b1 027098 branch shutter_dy_move_store_y 
+:      027100 shutter_dy_move_y_empty_check:
+0x66b2 027101 call shutter_dy_check_iphone 
+0x66b3 027102 branch shutter_dy_android_move_y_empty_check ,blank 
+0x66b4 027103 fetch 1 ,mem_shutter_iphone_beyond_y_count 
+0x66b5 027104 branch shutter_dy_android_move_y_empty_check ,blank 
+0x66b6 027105 increase -1 ,pdata 
+0x66b7 027106 store 1 ,mem_shutter_iphone_beyond_y_count 
+0x66b8 027107 setarg 0xfff 
+0x66b9 027108 arg iphone_once_max_move_value ,temp 
+0x66ba 027109 isub temp ,pdata 
+0x66bb 027110 iadd rega ,pdata 
+:      027111 shutter_dy_move_store_y:
+0x66bc 027112 store 2 ,mem_shutter_move_data_y 
+0x66bd 027113 branch shutter_dy_move_data_store 
+:      027114 shutter_dy_move_down:
+0x66be 027115 call shutter_dy_every_move_size_set 
+0x66bf 027116 fetch 2 ,mem_shutter_move_data_y 
+:      027117 shutter_dy_move_down_next:
+0x66c0 027118 iadd temp ,pdata 
+0x66c1 027119 arg 0xfff ,temp 
+0x66c2 027120 isub temp ,rega 
+0x66c3 027121 branch shutter_dy_move_y_empty_check ,positive 
+0x66c4 027122 branch shutter_dy_move_store_y 
+:      027125 ble_shutter_dy_receive_data:
+0x66c5 027126 fetch 2 ,mem_le_att_handle 
+0x66c6 027127 beq gatt_keyboard_write_handle_new ,ble_shutter_process_reconnect_complete 
+0x66c7 027128 rtn 
+:      027130 shutter_dy_le_find_service_hand_by_uuid:
+0x66c8 027131 arg 23 ,rega 
+0x66c9 027132 arg le_l2cap_cid_att ,regb 
+0x66ca 027133 call le_fifo_malloc_tx_l2cap 
+0x66cb 027134 setarg attop_find_by_type_value_request 
+0x66cc 027135 istore 1 ,contw 
+0x66cd 027136 setarg 0x0001 
+0x66ce 027137 istore 2 ,contw 
+0x66cf 027138 setarg 0xffff 
+0x66d0 027139 istore 2 ,contw 
+0x66d1 027140 setarg 0x2800 
+0x66d2 027141 istore 2 ,contw 
+0x66d3 027142 arg mem_dy_le_search_service_uuid ,contr 
+0x66d4 027143 branch memcpy16 
+:      027146 shutter_dy_le_parse_att:
+0x66d5 027147 bpatch patch15_2 ,mem_patch15 
+0x66d6 027148 copy rega ,contr 
+0x66d7 027149 ifetch 3 ,contr 
+0x66d8 027150 store 3 ,mem_le_att_opcode 
+0x66d9 027151 beq attop_find_by_type_value_response ,shutter_dy_le_parse_att_find_by_type_value_rsp 
+0x66da 027152 beq attop_error_response ,shutter_dy_le_parse_error_rsp 
+0x66db 027153 beq attop_read_request ,shutter_dy_le_parse_att_read_request 
+0x66dc 027154 beq attop_read_blob_request ,shutter_dy_le_parse_att_read_blob_request 
+0x66dd 027155 branch le_parse_att2 
+:      027157 shutter_dy_le_parse_att_read_blob_request:
+0x66de 027158 ifetch 2 ,contr 
+0x66df 027159 store 2 ,mem_le_att_offset 
+0x66e0 027160 iforce rega 
+0x66e1 027161 fetcht 2 ,mem_le_att_handle 
+0x66e2 027162 fetch 2 ,mem_le_pairing_handle 
+0x66e3 027163 isub temp ,null 
+0x66e4 027164 nbranch le_send_att_read_blob_response ,zero 
+0x66e5 027165 call shutter_dy_check_iphone 
+0x66e6 027166 nbranch shutter_dy_le_parse_att_read_blob_request_ios ,blank 
+0x66e7 027167 fetcht 2 ,mem_shutter_le_map_len_android 
+0x66e8 027168 branch shutter_dy_le_parse_att_read_blob_request2 
+:      027170 shutter_dy_le_parse_att_read_blob_request_ios:
+0x66e9 027171 fetcht 2 ,mem_shutter_le_map_len_ios 
+:      027172 shutter_dy_le_parse_att_read_blob_request2:
+0x66ea 027173 arg mem_shutter_le_hid_map ,contr 
+0x66eb 027174 call store_contr 
+0x66ec 027175 copy temp ,pdata 
+0x66ed 027176 isub rega ,pdata 
+0x66ee 027177 nbranch le_send_att_error_response_notfound ,positive 
+0x66ef 027178 increase 1 ,pdata 
+0x66f0 027179 sub pdata ,23 ,null 
+0x66f1 027180 branch le_send_att_read_blob_response_less ,positive 
+0x66f2 027181 force 23 ,pdata 
+0x66f3 027182 branch le_send_att_read_blob_response_less 
+:      027184 shutter_dy_le_parse_att_read_request:
+0x66f4 027185 fetcht 2 ,mem_le_att_handle 
+0x66f5 027186 fetch 1 ,mem_le_configuration 
+0x66f6 027187 bbit1 bit_ble_read_auth ,shutter_dy_le_send_att_read_response_check_auth 
+0x66f7 027188 branch le_send_att_read_response 
+:      027189 shutter_dy_le_send_att_read_response_check_auth:
+0x66f8 027190 fetch 2 ,mem_le_pairing_handle 
+0x66f9 027191 isub temp ,null 
+0x66fa 027192 nbranch le_send_att_read_response ,zero 
+0x66fb 027193 call le_check_encrypt_state 
+0x66fc 027194 nbranch shutter_dy_le_send_att_read_response ,user 
+0x66fd 027195 branch le_send_att_read_response_error_insufficient_auth 
+:      027197 shutter_dy_le_send_att_read_response:
+0x66fe 027198 fetch 2 ,mem_le_pairing_handle 
+0x66ff 027199 isub temp ,null 
+0x6700 027200 nbranch le_send_att_read_response ,zero 
+0x6701 027201 arg mem_shutter_le_hid_map ,contr 
+0x6702 027202 force 23 ,pdata 
+0x6703 027203 branch le_send_att_read_response_less 
+:      027205 shutter_dy_le_parse_att_find_by_type_value_rsp:
+:      027206 shutter_dy_le_remote_iphone:
+0x6704 027207 bpatch patch15_3 ,mem_patch15 
+0x6705 027208 jam 5 ,mem_shutter_back_count 
+0x6706 027209 jam 1 ,mem_iphone_flag 
+0x6707 027210 jam 1 ,mem_last_shutter_le_iphone_flag 
+0x6708 027211 jam 240 ,mem_send_data_delay 
+0x6709 027212 jam 10 ,mem_shutter_move_mid_timer 
+0x670a 027213 jam 1 ,mem_shutter_first_move 
+0x670b 027214 call shutter_dy_load_move_config_info 
+0x670c 027215 fetch 1 ,mem_shutter_pairing_success 
+0x670d 027216 rtn blank 
+0x670e 027217 call shutter_dy_clear_move_config 
+0x670f 027218 arg iphone_once_max_move_value ,temp 
+0x6710 027220 fetch 2 ,mem_iphone_initial_move_x 
+0x6711 027221 arg mem_shutter_move_data_x ,rega 
+0x6712 027222 arg mem_shutter_iphone_beyond_x_count ,regb 
+0x6713 027223 call shutter_dy_iphone_move_initial_set 
+0x6714 027224 arg iphone_once_max_move_value ,temp 
+0x6715 027226 fetch 2 ,mem_iphone_initial_move_y 
+0x6716 027227 arg mem_shutter_move_data_y ,rega 
+0x6717 027228 arg mem_shutter_iphone_beyond_y_count ,regb 
+0x6718 027229 call shutter_dy_iphone_move_initial_set 
+0x6719 027230 setarg 0xfff 
+0x671a 027231 fetcht 2 ,mem_shutter_move_data_y 
+0x671b 027232 isub temp ,pdata 
+0x671c 027233 store 2 ,mem_shutter_move_data_y 
+0x671d 027234 rtn 
+:      027235 shutter_dy_iphone_move_initial_set:
+0x671e 027236 idiv temp 
+0x671f 027237 call wait_div_end 
+0x6720 027238 quotient pdata 
+0x6721 027239 remainder temp 
+0x6722 027240 istore 1 ,regb 
+0x6723 027241 istoret 2 ,rega 
+0x6724 027242 rtn 
+:      027243 shutter_dy_le_parse_error_rsp:
+0x6725 027244 increase -2 ,contr 
+0x6726 027245 ifetch 1 ,contr 
+0x6727 027246 beq attop_find_by_type_value_request ,shutter_dy_not_iphone_read_conf 
+0x6728 027247 rtn 
+:      027248 shutter_dy_remote_not_iphone:
+0x6729 027249 jam 1 ,mem_shutter_back_count 
+0x672a 027250 jam 0 ,mem_iphone_flag 
+0x672b 027251 jam 0 ,mem_last_shutter_le_iphone_flag 
+0x672c 027252 jam 10 ,mem_send_data_delay 
+0x672d 027253 rtn 
+:      027255 shutter_dy_not_iphone_read_conf:
+0x672e 027256 call shutter_dy_remote_not_iphone 
+0x672f 027257 branch shutter_dy_load_move_config_info 
+:      027259 shutter_dy_check_iphone:
+0x6730 027260 fetch 1 ,mem_iphone_flag 
+0x6731 027261 rtn 
+:      027264 shutter_dy_le_get_press_ptr:
+0x6732 027265 arg mem_dy_key0_press ,regc 
+0x6733 027266 call shutter_dy_check_iphone 
+0x6734 027267 rtn blank 
+0x6735 027268 jam 120 ,mem_send_data_delay 
+0x6736 027269 arg mem_key0_press_i ,regc 
+0x6737 027270 rtn 
+:      027271 shutter_dy_le_get_release_ptr:
+:      027272 shutter_dy_le_get_release_ptr_set:
+0x6738 027273 arg mem_key0_release_new ,regc 
+0x6739 027274 call shutter_dy_check_iphone 
+0x673a 027275 rtn blank 
+0x673b 027276 arg mem_key0_release_new_i ,regc 
+0x673c 027277 jam 12 ,mem_send_data_delay 
+0x673d 027278 copy queue ,pdata 
+0x673e 027279 rtneq shutter_like_key_num 
+0x673f 027280 rtn 
+:      027281 shutter_dy_le_get_release_ptr_volume:
+0x6740 027282 bpatch patch15_4 ,mem_patch15 
+0x6741 027283 fetch 1 ,mem_key3_press_count 
+0x6742 027284 setflip 0 ,pdata 
+0x6743 027285 store 1 ,mem_key3_press_count 
+0x6744 027286 beq 0 ,shutter_dy_le_get_release_ptr_set_volume_inc 
+0x6745 027287 beq 1 ,shutter_dy_le_get_release_ptr_set_volume_dec 
+0x6746 027288 rtn 
+:      027289 shutter_dy_le_get_release_ptr_set_volume_dec:
+0x6747 027290 call shutter_dy_le_get_vol_dec_ptr 
+0x6748 027291 branch push_buffer_in_queue 
+:      027292 shutter_dy_le_get_release_ptr_set_volume_inc:
+0x6749 027293 call shutter_dy_le_get_vol_inc_ptr 
+0x674a 027294 branch push_buffer_in_queue 
+:      027295 shutter_dy_le_get_vol_inc_ptr:
+0x674b 027296 arg mem_key3_release_new ,regc 
+0x674c 027297 call shutter_dy_check_iphone 
+0x674d 027298 rtn blank 
+0x674e 027299 arg mem_key3_release_new_i ,regc 
+0x674f 027300 rtn 
+:      027301 shutter_dy_le_get_vol_dec_ptr:
+0x6750 027302 arg mem_key3_release_new_t ,regc 
+0x6751 027303 call shutter_dy_check_iphone 
+0x6752 027304 rtn blank 
+0x6753 027305 arg mem_key3_release_new_i_t ,regc 
+0x6754 027306 rtn 
+:      027309 shutter_dy_long_key_function:
+0x6755 027310 copy queue ,pdata 
+0x6756 027311 beq shutter_like_key_num ,shutter_dy_link_key_long_press 
+0x6757 027312 beq shutter_down_key_num ,shutter_dy_loop_send_volume_dec_page 
+0x6758 027313 beq shutter_up_key_num ,shutter_dy_loop_send_volume_inc_page 
+0x6759 027314 rtn 
+:      027317 shutter_dy_long_key_volume_timer:
+0x675a 027318 arg mem_shutter_volume_timer ,regc 
+0x675b 027319 arg shutter_dy_long_key_volume_timeout ,regb 
+0x675c 027320 branch timer_single_step 
+:      027321 shutter_dy_long_key_volume_timeout:
+0x675d 027322 jam 4 ,mem_shutter_volume_timer 
+0x675e 027323 fetch 1 ,mem_key3_press_count 
+0x675f 027324 branch shutter_dy_loop_send_volume_inc_page ,blank 
+0x6760 027325 branch shutter_dy_loop_send_volume_dec_page 
+:      027328 shutter_dy_loop_send_volume_inc_page:
+0x6761 027329 jam 0 ,mem_key3_press_count 
+0x6762 027330 jam 4 ,mem_shutter_volume_timer 
+0x6763 027331 arg mem_key4_long_press ,regc 
+0x6764 027332 branch push_buffer_in_queue 
+:      027334 shutter_dy_loop_send_volume_dec_page:
+0x6765 027335 jam 1 ,mem_key3_press_count 
+0x6766 027336 jam 4 ,mem_shutter_volume_timer 
+0x6767 027337 arg mem_key2_long_press ,regc 
+0x6768 027338 branch push_buffer_in_queue 
+:      027339 shutter_dy_clear_volume_timer:
+0x6769 027340 jam 0 ,mem_key3_press_count 
+0x676a 027341 jam 0 ,mem_shutter_volume_timer 
+0x676b 027342 rtn 
+:      027345 shutter_dy_link_key_loop_timer:
+0x676c 027346 arg mem_shutter_link_timer ,regc 
+0x676d 027347 arg shutter_dy_link_key_loop_timeout ,regb 
+0x676e 027348 branch timer_single_step 
+:      027349 shutter_dy_link_key_loop_timeout:
+0x676f 027350 jam 2 ,mem_shutter_link_timer 
+0x6770 027351 call shutter_dy_link_data_android_or_ios 
+0x6771 027352 branch push_buffer_in_queue 
+:      027354 shutter_dy_link_data_android_or_ios:
+0x6772 027355 arg mem_shutter_link_data ,regc 
+0x6773 027356 call shutter_dy_check_iphone 
+0x6774 027357 rtn blank 
+0x6775 027358 arg mem_shutter_link_data_i ,regc 
+0x6776 027359 rtn 
+:      027361 shutter_dy_link_key_long_press:
+0x6777 027362 fetch 1 ,mem_shutter_link_loop_flag 
+0x6778 027363 nbranch shutter_dy_clear_link_key_timer ,blank 
+0x6779 027364 jam 1 ,mem_shutter_link_loop_flag 
+0x677a 027365 jam 2 ,mem_shutter_link_timer 
+0x677b 027366 rtn 
+:      027368 shutter_dy_clear_link_key_timer:
+0x677c 027369 jam 0 ,mem_shutter_link_loop_flag 
+0x677d 027370 jam 0 ,mem_shutter_link_timer 
+0x677e 027371 rtn 
+:      027373 shutter_dy_jude_clear_move_config:
+0x677f 027374 fetch 1 ,mem_shutter_le_conned 
+0x6780 027375 nrtn blank 
+0x6781 027376 jam 1 ,mem_shutter_le_conned 
+0x6782 027377 branch shutter_dy_move_data_store 
+:      027379 shutter_dy_clear_move_config:
+0x6783 027380 setarg 0 
+0x6784 027381 store 7 ,mem_move_config 
+0x6785 027382 rtn 
+:      027384 shutter_dy_write_otp_convert_data:
+0x6786 027385 call shutter_dy_check_iphone 
+0x6787 027386 beq 0x01 ,shutter_dy_store_ios_config_data 
+0x6788 027387 beq 0x00 ,shutter_dy_store_android_config 
+0x6789 027388 rtn 
+:      027390 shutter_dy_read_otp_convert_data:
+0x678a 027391 fetch 1 ,mem_otp_last_shutter_le_iphone_flag 
+0x678b 027392 beq 0x01 ,shutter_dy_get_ios_config 
+0x678c 027393 beq 0x00 ,shutter_dy_get_android_config 
+0x678d 027394 rtn 
+:      027396 shutter_dy_store_ios_config_data:
+0x678e 027397 fetch 1 ,mem_shutter_iphone_beyond_x_count 
+0x678f 027398 mul32 pdata ,iphone_once_max_move_value ,pdata 
+0x6790 027399 copy pdata ,temp 
+0x6791 027400 fetch 2 ,mem_shutter_move_data_x 
+0x6792 027401 iadd temp ,pdata 
+0x6793 027402 store 2 ,mem_otp_shutter_move_data_x 
+0x6794 027404 fetch 1 ,mem_shutter_iphone_beyond_y_count 
+0x6795 027405 mul32 pdata ,iphone_once_max_move_value ,pdata 
+0x6796 027406 copy pdata ,temp 
+0x6797 027407 fetch 2 ,mem_shutter_move_data_y 
+0x6798 027408 copy pdata ,rega 
+0x6799 027409 setarg 0xfff 
+0x679a 027410 isub rega ,pdata 
+0x679b 027411 iadd temp ,pdata 
+0x679c 027412 store 2 ,mem_otp_shutter_move_data_y 
+0x679d 027414 call shutter_dy_check_iphone 
+0x679e 027416 store 1 ,mem_otp_last_shutter_le_iphone_flag 
+0x679f 027417 rtn 
+:      027419 shutter_dy_store_android_config:
+0x67a0 027420 fetch 2 ,mem_shutter_move_data_x 
+0x67a1 027421 store 2 ,mem_otp_shutter_move_data_x 
+0x67a2 027422 fetch 2 ,mem_shutter_move_data_y 
+0x67a3 027423 store 2 ,mem_otp_shutter_move_data_y 
+0x67a4 027424 call shutter_dy_check_iphone 
+0x67a5 027425 store 1 ,mem_otp_last_shutter_le_iphone_flag 
+0x67a6 027426 rtn 
+:      027427 shutter_dy_get_ios_config:
+0x67a7 027428 fetch 2 ,mem_otp_shutter_move_data_x 
+0x67a8 027429 div pdata ,iphone_once_max_move_value 
+0x67a9 027430 call wait_div_end 
+0x67aa 027431 quotient pdata 
+0x67ab 027432 remainder temp 
+0x67ac 027433 store 1 ,mem_shutter_iphone_beyond_x_count 
+0x67ad 027434 copy temp ,pdata 
+0x67ae 027435 store 2 ,mem_shutter_move_data_x 
+0x67af 027436 fetch 2 ,mem_otp_shutter_move_data_y 
+0x67b0 027437 div pdata ,iphone_once_max_move_value 
+0x67b1 027438 call wait_div_end 
+0x67b2 027439 quotient pdata 
+0x67b3 027440 remainder temp 
+0x67b4 027441 store 1 ,mem_shutter_iphone_beyond_y_count 
+0x67b5 027443 setarg 0xfff 
+0x67b6 027444 isub temp ,pdata 
+0x67b7 027445 store 2 ,mem_shutter_move_data_y 
+0x67b8 027448 rtn 
+:      027449 shutter_dy_get_android_config:
+0x67b9 027450 fetch 2 ,mem_otp_shutter_move_data_x 
+0x67ba 027451 store 2 ,mem_shutter_move_data_x 
+0x67bb 027452 fetch 2 ,mem_otp_shutter_move_data_y 
+0x67bc 027453 store 2 ,mem_shutter_move_data_y 
+0x67bd 027456 rtn 
+:      027458 shutter_dy_store_move_config_info:
+0x67be 027459 branch shutter_dy_campare_effective_addr_write_otp 
+:      027461 shutter_dy_load_move_config_info:
+0x67bf 027462 branch shutter_dy_campare_effective_addr_read_otp 
+:      027465 shutter_dy_shutter_uart_config_loop:
+0x67c0 027466 call shutter_dy_update_read_check_addr 
+0x67c1 027467 fetch 2 ,mem_otp_read_offset_addr 
+0x67c2 027468 call shutter_dy_shutter_read_move_config_from_otp_addr 
+0x67c3 027469 jam 0 ,mem_shutter_first_read_flag 
+0x67c4 027470 fetch 5 ,mem_otp_move_config 
+0x67c5 027471 jam 0 ,mem_shutter_valid_data_flag 
+0x67c6 027472 jam 0 ,mem_shutter_temp_count 
+0x67c7 027473 call shutter_dy_campare_otp_data 
+0x67c8 027474 fetch 1 ,mem_shutter_temp_count 
+0x67c9 027475 rtneq 0 
+0x67ca 027476 branch shutter_dy_shutter_uart_config_loop 
+:      027479 shutter_dy_shutter_get_first_read_addr:
+0x67cb 027481 fetch 2 ,mem_shutter_efuse_start_offset 
+0x67cc 027482 increase -5 ,pdata 
+0x67cd 027483 store 2 ,mem_otp_read_offset_addr 
+0x67ce 027484 rtn 
+:      027487 shutter_dy_shutter_next_read_addr:
+0x67cf 027488 fetch 2 ,mem_otp_read_offset_addr 
+0x67d0 027489 increase -5 ,pdata 
+0x67d1 027490 store 2 ,mem_otp_read_offset_addr 
+0x67d2 027491 rtn 
+:      027494 shutter_dy_shutter_last_read_addr:
+0x67d3 027495 fetch 2 ,mem_otp_read_offset_addr 
+0x67d4 027496 pincrease 5 
+0x67d5 027497 store 2 ,mem_otp_read_offset_addr 
+0x67d6 027498 rtn 
+:      027500 shutter_dy_shutter_read_ios_android_addr:
+0x67d7 027501 fetch 2 ,mem_otp_read_ios_android_addr 
+0x67d8 027502 pincrease 5 
+0x67d9 027503 store 2 ,mem_otp_read_ios_android_addr 
+0x67da 027505 fetch 2 ,mem_otp_read_ios_android_addr 
+0x67db 027506 copy pdata ,temp 
+0x67dc 027508 fetch 2 ,mem_shutter_efuse_start_offset 
+0x67dd 027509 isub temp ,pdata 
+0x67de 027510 arg shutter_para_total_num ,temp 
+0x67df 027511 isub temp ,null 
+0x67e0 027513 nbranch shutter_dy_shutter_not_find_ios_or_android ,positive 
+0x67e1 027514 rtn 
+:      027516 shutter_dy_update_read_check_addr:
+0x67e2 027517 fetch 1 ,mem_shutter_first_read_flag 
+0x67e3 027518 beq 0x01 ,shutter_dy_shutter_get_first_read_addr 
+0x67e4 027519 beq 0x00 ,shutter_dy_shutter_next_read_addr 
+0x67e5 027520 rtn 
+:      027523 shutter_dy_campare_otp_data:
+0x67e6 027524 arg 0x0 ,regb 
+0x67e7 027525 copy regb ,temp 
+0x67e8 027526 fetch 2 ,mem_otp_shutter_move_data_x 
+0x67e9 027527 icompare 0xffff ,temp 
+0x67ea 027529 ncall shutter_dy_set_shutter_valid_data_flag ,true 
+0x67eb 027530 arg 0x0 ,regb 
+0x67ec 027531 copy regb ,temp 
+0x67ed 027532 fetch 2 ,mem_otp_shutter_move_data_y 
+0x67ee 027533 icompare 0xffff ,temp 
+0x67ef 027534 ncall shutter_dy_set_shutter_valid_data_flag ,true 
+0x67f0 027535 arg 0x0 ,regb 
+0x67f1 027536 copy regb ,temp 
+0x67f2 027537 fetch 1 ,mem_otp_last_shutter_le_iphone_flag 
+0x67f3 027538 icompare 0xff ,temp 
+0x67f4 027539 ncall shutter_dy_set_shutter_valid_data_flag ,true 
+0x67f5 027540 rtn 
+:      027543 shutter_dy_set_shutter_valid_data_flag:
+0x67f6 027544 fetch 1 ,mem_shutter_temp_count 
+0x67f7 027545 pincrease 1 
+0x67f8 027546 store 1 ,mem_shutter_temp_count 
+0x67f9 027547 rtn 
+:      027548 shutter_dy_shutter_judge_ios_or_android:
+0x67fa 027549 jam 1 ,mem_shutter_temp_count 
+0x67fb 027550 call shutter_dy_shutter_read_ios_android_addr 
+0x67fc 027551 fetch 2 ,mem_otp_read_ios_android_addr 
+0x67fd 027552 call shutter_dy_shutter_read_move_config_from_otp_addr 
+0x67fe 027553 call shutter_dy_check_iphone 
+0x67ff 027554 copy pdata ,temp 
+0x6800 027555 fetch 1 ,mem_otp_last_shutter_le_iphone_flag 
+0x6801 027556 icompare 0xff ,temp 
+0x6802 027557 call shutter_dy_clear_temp_count ,true 
+0x6803 027559 fetch 1 ,mem_shutter_temp_count 
+0x6804 027560 rtneq 0 
+0x6805 027561 branch shutter_dy_shutter_judge_ios_or_android 
+:      027564 shutter_dy_shutter_not_find_ios_or_android:
+0x6806 027565 bpatch patch15_5 ,mem_patch15 
+0x6807 027566 call shutter_dy_clear_temp_count 
+0x6808 027567 call shutter_dy_check_iphone 
+0x6809 027568 branch shutter_dy_shutter_android_save_init_loaction ,blank 
+0x680a 027569 branch shutter_dy_shutter_ios_save_init_loaction 
+:      027570 shutter_dy_shutter_android_save_init_loaction:
+0x680b 027572 fetch 2 ,mem_android_initial_move_x 
+0x680c 027573 store 2 ,mem_shutter_move_data_x 
+0x680d 027575 fetcht 2 ,mem_android_initial_move_y 
+0x680e 027576 setarg 0xfff 
+0x680f 027577 isub temp ,pdata 
+0x6810 027578 store 2 ,mem_shutter_move_data_y 
+0x6811 027579 branch shutter_dy_store_move_config_info 
+:      027581 shutter_dy_shutter_ios_save_init_loaction:
+0x6812 027582 arg iphone_once_max_move_value ,temp 
+0x6813 027584 fetch 2 ,mem_iphone_initial_move_x 
+0x6814 027585 arg mem_shutter_move_data_x ,rega 
+0x6815 027586 arg mem_shutter_iphone_beyond_x_count ,regb 
+0x6816 027587 call shutter_dy_iphone_move_initial_set 
+0x6817 027588 arg iphone_once_max_move_value ,temp 
+0x6818 027590 fetch 2 ,mem_iphone_initial_move_y 
+0x6819 027591 arg mem_shutter_move_data_y ,rega 
+0x681a 027592 arg mem_shutter_iphone_beyond_y_count ,regb 
+0x681b 027593 call shutter_dy_iphone_move_initial_set 
+0x681c 027594 setarg 0xfff 
+0x681d 027595 fetcht 2 ,mem_shutter_move_data_y 
+0x681e 027596 isub temp ,pdata 
+0x681f 027597 store 2 ,mem_shutter_move_data_y 
+0x6820 027598 branch shutter_dy_store_move_config_info 
+:      027600 shutter_dy_clear_temp_count:
+0x6821 027601 jam 0 ,mem_shutter_temp_count 
+0x6822 027602 rtn 
+:      027604 shutter_dy_campare_effective_addr_read_otp:
+0x6823 027605 bpatch patch15_6 ,mem_patch15 
+0x6824 027606 jam 1 ,mem_shutter_first_read_flag 
+0x6825 027607 call shutter_dy_shutter_uart_config_loop 
+0x6826 027611 fetch 2 ,mem_shutter_efuse_end_offset 
+0x6827 027612 copy pdata ,temp 
+0x6828 027613 fetch 2 ,mem_otp_read_offset_addr 
+0x6829 027614 isub temp ,pdata 
+0x682a 027615 arg 0x0 ,temp 
+0x682b 027616 isub temp ,null 
+0x682c 027617 nrtn positive 
+0x682d 027618 fetch 2 ,mem_otp_read_offset_addr 
+0x682e 027619 copy pdata ,temp 
+0x682f 027621 fetch 2 ,mem_shutter_efuse_start_offset 
+0x6830 027622 increase -5 ,pdata 
+0x6831 027623 isub temp ,pdata 
+0x6832 027626 fetch 2 ,mem_otp_read_offset_addr 
+0x6833 027627 store 2 ,mem_otp_read_ios_android_addr 
+0x6834 027628 call shutter_dy_shutter_judge_ios_or_android 
+0x6835 027629 fetch 2 ,mem_otp_read_ios_android_addr 
+0x6836 027630 ncall shutter_dy_shutter_read_move_config_from_otp_addr ,zero 
+0x6837 027633 jam 0 ,mem_shutter_temp_count 
+0x6838 027634 call shutter_dy_campare_otp_data 
+0x6839 027635 fetch 1 ,mem_shutter_temp_count 
+0x683a 027636 rtneq 0 
+0x683b 027637 branch shutter_dy_read_otp_convert_data 
+:      027640 shutter_dy_campare_effective_addr_write_otp:
+0x683c 027641 bpatch patch15_7 ,mem_patch15 
+0x683d 027642 jam 1 ,mem_shutter_first_read_flag 
+0x683e 027643 call shutter_dy_shutter_uart_config_loop 
+0x683f 027647 fetcht 2 ,mem_shutter_efuse_end_offset 
+0x6840 027649 fetch 2 ,mem_otp_read_offset_addr 
+0x6841 027650 isub temp ,pdata 
+0x6842 027651 arg 0x0 ,temp 
+0x6843 027652 isub temp ,null 
+0x6844 027653 nrtn positive 
+0x6845 027655 fetcht 2 ,mem_otp_read_offset_addr 
+0x6846 027657 fetch 2 ,mem_shutter_efuse_start_offset 
+0x6847 027658 isub temp ,pdata 
+0x6848 027659 arg 0x0 ,temp 
+0x6849 027660 isub temp ,null 
+0x684a 027661 nrtn positive 
+0x684b 027662 fetch 2 ,mem_otp_read_offset_addr 
+0x684c 027663 store 2 ,mem_otp_write_offset_addr 
+0x684d 027664 call shutter_dy_write_otp_convert_data 
+0x684e 027666 branch shutter_dy_shutter_write_move_config_to_otp_addr 
+:      027669 shutter_dy_shutter_read_move_config_from_otp_addr:
+0x684f 027670 bpatch patch16_0 ,mem_patch16 
+0x6850 027671 copy pdata ,regb 
+0x6851 027672 arg shutter_para_total_num ,loopcnt 
+0x6852 027674 arg mem_otp_move_config ,rega 
+0x6853 027675 branch otp_read_data 
+:      027678 shutter_dy_shutter_write_move_config_to_otp_addr:
+0x6854 027679 arg shutter_para_total_num ,loopcnt 
+0x6855 027680 arg mem_otp_move_config ,rega 
+0x6856 027681 fetchr regb ,2 ,mem_otp_write_offset_addr 
+0x6857 027682 branch otp_write 
+:      027684 shutter_dy_shutter_1s_timer:
+0x6858 027685 arg mem_shutter_1s_timer ,regc 
+0x6859 027686 arg shutter_dy_store_move_config_info ,regb 
+0x685a 027687 branch timer_single_step 
+:      027701 p_crc16_ccitt_false:
+0x685b 027702 fetch 2 ,mem_adv_crc_false_initvalue 
+:      027704 p_crc16_ccitt_false_loop:
+0x685c 027705 ifetcht 1 ,regc 
+0x685d 027706 increase 1 ,regc 
+0x685e 027707 lshift8 temp ,temp 
+0x685f 027708 ixor temp ,pdata 
+:      027710 p_crc16_for_byte:
+0x6860 027711 copy loopcnt ,regb 
+0x6861 027712 arg 8 ,loopcnt 
+:      027713 p_crc16_for_byte_loop:
+0x6862 027714 isolate1 15 ,pdata 
+0x6863 027715 lshift pdata ,pdata 
+0x6864 027716 nbranch p_crc16_for_byte_continue ,true 
+0x6865 027717 fetcht 2 ,mem_crc16_polynomial 
+0x6866 027718 ixor temp ,pdata 
+:      027719 p_crc16_for_byte_continue:
+0x6867 027720 loop p_crc16_for_byte_loop 
+0x6868 027721 copy regb ,loopcnt 
+0x6869 027723 loop p_crc16_ccitt_false_loop 
+0x686a 027724 store 2 ,mem_adv_crc_false_initvalue 
+0x686b 027725 rtn 
+:      027730 rf_debug_rx_gpio_low:
+0x686c 027731 fetch 1 ,mem_rf_debug_rx_gpio 
+:      027732 rf_debug_gpio_low:
+0x686d 027733 arg gpcfg_output_low ,temp 
+0x686e 027734 branch gpio_config_function 
+:      027736 rf_debug_rx_on_line:
+:      027737 rf_debug_rx_gpio_high:
+0x686f 027738 fetch 1 ,mem_rf_debug_rx_gpio 
+:      027739 rf_debug_gpio_high:
+0x6870 027740 arg gpcfg_output_high ,temp 
+0x6871 027741 branch gpio_config_function 
+:      027743 rf_debug_rx_gpio_h_l_h:
+0x6872 027744 call rf_debug_rx_gpio_high 
+:      027745 rf_debug_rx_gpio_l_h:
+0x6873 027746 call rf_debug_rx_gpio_low 
+0x6874 027747 branch rf_debug_rx_gpio_high 
+:      027749 rf_debug_rx_gpio_l_h_l:
+:      027750 rf_debug_shutdown_radio_line:
+0x6875 027751 call rf_debug_rx_gpio_l_h 
+:      027752 rf_debug_rx_crc_line:
+0x6876 027753 branch rf_debug_rx_gpio_low 
+:      027755 rf_debug_rx_sync_line:
+0x6877 027756 branch rf_debug_rx_gpio_l_h 
+:      027758 rf_debug_rx_crc_fail_line:
+0x6878 027759 call rf_debug_rx_gpio_l_h 
+0x6879 027760 branch rf_debug_rx_gpio_l_h_l 
+:      027762 rf_debug_rx_match_line:
+:      027763 rf_debug_rx_crc_error_line:
+:      027764 rf_debug_rx_sync_timeout_line:
+0x687a 027765 branch rf_debug_rx_gpio_low 
+:      027768 rf_debug_tx_off_line:
+:      027769 rf_debug_tx_gpio_low:
+0x687b 027770 fetch 1 ,mem_rf_debug_tx_gpio 
+0x687c 027771 branch rf_debug_gpio_low 
+:      027773 rf_debug_tx_on_line:
+:      027774 rf_debug_tx_gpio_high:
+0x687d 027775 fetch 1 ,mem_rf_debug_tx_gpio 
+0x687e 027776 branch rf_debug_gpio_high 
+:      027778 rf_debug_tx_gpio_l_h_l:
+0x687f 027779 call rf_debug_tx_gpio_low 
+0x6880 027780 call rf_debug_tx_gpio_high 
+0x6881 027781 branch rf_debug_tx_gpio_low 
+:      027788 hci_init:
+0x6882 027789 clear_stack 
+0x6883 027790 call wdt_set_disable 
+0x6884 027791 call hci_init_clksel_xtal 
+0x6885 027792 call hci_init_uart_default_config 
+0x6886 027793 call hci_init_uart_config 
+0x6887 027794 call hci_init_pwm_default_config 
+0x6888 027795 call hci_init_pwm 
+0x6889 027797 jam 1 ,mem_hci_command_complete_num_hci_command_packet 
+0x688a 027798 jam hci_h4_type_event ,mem_hci_event_head_type 
+:      027800 hci_process_loop:
+0x688b 027801 call hci_process_check_uart_rx 
+0x688c 027802 branch hci_process_loop 
+:      027804 hci_init_clksel_xtal:
+0x688d 027805 jam clksel_xtal ,core_clksel 
+0x688e 027806 rtn 
+:      027808 hci_init_uart_default_config:
+0x688f 027809 call hci_init_uart_default_config_tx 
+0x6890 027810 call hci_init_uart_default_config_rx 
+0x6891 027811 call hci_init_uart_default_config_rts 
+0x6892 027812 branch hci_init_uart_default_config_cts 
+:      027814 hci_init_uart_default_config_tx:
+0x6893 027815 fetch 1 ,mem_hci_uart_tx_gpio 
+0x6894 027816 nrtn blank 
+0x6895 027817 jam hci_uart_tx_gpio_num ,mem_hci_uart_tx_gpio 
+0x6896 027818 rtn 
+:      027820 hci_init_uart_default_config_rx:
+0x6897 027821 fetch 1 ,mem_hci_uart_rx_gpio 
+0x6898 027822 nrtn blank 
+0x6899 027823 jam hci_uart_rx_gpio_num ,mem_hci_uart_rx_gpio 
+0x689a 027824 rtn 
+:      027825 hci_init_uart_default_config_rts:
+0x689b 027826 fetch 1 ,mem_hci_uart_rts_gpio 
+0x689c 027827 nrtn blank 
+0x689d 027828 jam hci_uart_rts_gpio_num ,mem_hci_uart_rts_gpio 
+0x689e 027829 rtn 
+:      027830 hci_init_uart_default_config_cts:
+0x689f 027831 fetch 1 ,mem_hci_uart_cts_gpio 
+0x68a0 027832 nrtn blank 
+0x68a1 027833 jam hci_uart_cts_gpio_num ,mem_hci_uart_cts_gpio 
+0x68a2 027834 rtn 
+:      027837 hci_init_uart_config:
+0x68a3 027838 setarg mem_h5rx_buf 
+0x68a4 027839 store 2 ,mem_pdatatemp 
+0x68a5 027840 setarg mem_h5rx_buf_end 
+0x68a6 027841 istore 2 ,contw 
+0x68a7 027842 setarg mem_h5tx_buf 
+0x68a8 027843 istore 2 ,contw 
+0x68a9 027844 setarg mem_h5tx_buf_end 
+0x68aa 027845 istore 2 ,contw 
+0x68ab 027846 fetch 8 ,mem_pdatatemp 
+0x68ac 027847 call uarta_init_dma_mem 
+0x68ad 027848 call uart_clock_select_main_freq_crystal 
+0x68ae 027849 arg 115200 ,temp 
+0x68af 027850 call uarta_calc_baud_rate_config 
+0x68b0 027851 fetch 1 ,mem_hci_uart_tx_gpio 
+0x68b1 027852 arg gpcfg_uart_txd ,temp 
+0x68b2 027853 call gpio_config_function_int 
+0x68b3 027854 fetch 1 ,mem_hci_uart_rx_gpio 
+0x68b4 027855 arg gpcfg_uart_rxd | gpcfg_pullup ,temp 
+0x68b5 027856 call gpio_config_function_int 
+0x68b6 027857 fetch 1 ,mem_hci_uart_rts_gpio 
+0x68b7 027858 arg gpcfg_uart_rts ,temp 
+0x68b8 027859 call gpio_config_function_int 
+0x68b9 027860 fetch 1 ,mem_hci_uart_cts_gpio 
+0x68ba 027861 arg gpcfg_uart_cts ,temp 
+0x68bb 027862 call gpio_config_function_int 
+0x68bc 027864 arg fun_uart_control_enable | fun_uart_control_setting_rate_baud ,temp 
+0x68bd 027865 storet 1 ,core_uart_ctrl 
+0x68be 027866 branch clean_xmem 
+:      027868 hci_init_pwm_default_config:
+0x68bf 027869 fetch 1 ,mem_hci_pwm_12mhz_gpio 
+0x68c0 027870 nrtn blank 
+0x68c1 027871 jam hci_pmw_12mhz_gpio_num ,mem_hci_pwm_12mhz_gpio 
+0x68c2 027872 rtn 
+:      027874 hci_init_pwm:
+0x68c3 027875 fetch 1 ,mem_hci_pwm_12mhz_gpio 
+0x68c4 027876 arg gpcfg_pwm_out0 ,temp 
+0x68c5 027877 call gpio_config_function_int 
+0x68c6 027878 arg 0x40 ,rega 
+0x68c7 027879 call pwm_init 
+0x68c8 027880 arg 0 ,rega 
+0x68c9 027881 arg 0 ,regb 
+0x68ca 027882 setarg 0 
+0x68cb 027883 call pwm_duty_cycle_set 
+0x68cc 027884 arg 0 ,queue 
+0x68cd 027885 branch pwm_set_select 
+:      027888 hci_process_check_uart_rx:
+0x68ce 027889 fetch 2 ,core_uart_rxitems 
+0x68cf 027890 add pdata ,-4 ,rega 
+0x68d0 027891 nrtn positive 
+0x68d1 027892 call uarta_prepare_rx 
+0x68d2 027893 ifetch 1 ,contru 
+0x68d3 027894 beq hci_h4_type_cmd ,hci_parse_packet_cmd 
+0x68d4 027896 call delay_10ms 
+0x68d5 027897 branch uarta_clear_current_rx 
+:      027901 hci_parse_packet_cmd:
+0x68d6 027902 ifetch 2 ,contru 
+0x68d7 027903 store 2 ,mem_hci_opcode 
+0x68d8 027904 arg 0x3ff ,temp 
+0x68d9 027905 iand temp ,temp 
+0x68da 027906 storet 2 ,mem_hci_opcode_ocf 
+0x68db 027907 rshift2 pdata ,pdata 
+0x68dc 027908 rshift8 pdata ,pdata 
+0x68dd 027909 store 1 ,mem_hci_opcode_ogf 
+0x68de 027910 ifetch 1 ,contru 
+0x68df 027911 pincrease -1 
+0x68e0 027912 isub rega ,null 
+0x68e1 027913 rtn positive 
+0x68e2 027914 call hci_parse_complete_packet 
+0x68e3 027915 branch hci_drop_current_packet 
+:      027917 hci_parse_complete_packet:
+0x68e4 027918 fetch 1 ,mem_hci_opcode_ogf 
+0x68e5 027926 beq hci_ogf_vendor_specific_debug ,hci_parse_packet_cmd_ogf_vendorspecific_debug 
+0x68e6 027927 branch hci_send_event_command_complete_error_command_nuknown 
+:      027937 hci_parse_packet_cmd_ogf_vendorspecific_debug:
+0x68e7 027938 bpatch patch16_4 ,mem_patch16 
+0x68e8 027939 fetch 1 ,mem_hci_opcode_ocf 
+0x68e9 027940 beq hci_vendor_cmd_reset ,hci_normal_reply 
+0x68ea 027941 beq hci_vendor_cmd_chipid ,phci_grp_vendor_chipid 
+0x68eb 027942 beq hci_vendor_cmd_baud ,phci_grp_vendor_baud 
+0x68ec 027943 beq hci_vendor_cmd_patch ,phci_grp_vendor_patch 
+0x68ed 027944 beq hci_vendor_cmd_patch_done ,phci_grp_vendor_done 
+0x68ee 027945 beq hci_vendor_cmd_echo ,hci_normal_reply 
+0x68ef 027946 beq hci_vendor_cmd_mem ,phci_grp_vendor_mem 
+0x68f0 027947 beq hci_vendor_cmd_set_flow_control ,phci_grp_vendor_flow_control 
+0x68f1 027948 branch hci_normal_reply 
+:      027951 phci_grp_vendor_chipid:
+0x68f2 027952 jam command_succeeded ,mem_hci_command_complete_return_parameter 
+0x68f3 027953 fetch 2 ,core_chipid 
+0x68f4 027954 store 2 ,mem_hci_command_complete_return_parameter_chip_id 
+0x68f5 027955 arg 3 ,loopcnt 
+0x68f6 027956 branch hci_send_event_command_complete 
+:      027958 phci_grp_vendor_baud:
+0x68f7 027959 ifetch 2 ,contu 
+0x68f8 027960 store 2 ,core_uart_baud 
+0x68f9 027961 rtn 
+:      027964 phci_grp_vendor_patch_common:
+0x68fa 027965 ifetch 1 ,contu 
+0x68fb 027966 copy pdata ,temp 
+0x68fc 027967 store 1 ,core_ucode_low 
+0x68fd 027968 ifetch 1 ,contu 
+0x68fe 027969 iadd temp ,temp 
+0x68ff 027970 set1 7 ,pdata 
+0x6900 027971 store 1 ,core_ucode_ctrl 
+0x6901 027972 ifetch 1 ,contu 
+0x6902 027973 iadd temp ,temp 
+0x6903 027974 copy pdata ,loopcnt 
+0x6904 027975 rtn 
+:      027977 phci_grp_vendor_patch:
+0x6905 027978 call phci_grp_vendor_patch_common 
+:      027979 phci_grp_vendor_patch_loop:
+0x6906 027980 ifetch 1 ,contu 
+0x6907 027981 store 1 ,core_ucode_data 
+0x6908 027982 iadd temp ,temp 
+0x6909 027983 loop phci_grp_vendor_patch_loop 
+:      027984 phci_grp_vendor_patch_check_sum:
+0x690a 027985 and temp ,0xff ,temp 
+0x690b 027986 ifetch 1 ,contu 
+0x690c 027987 isub temp ,null 
+0x690d 027988 nbranch phci_grp_vendor_patch_bad ,zero 
+0x690e 027989 branch hci_normal_reply 
+:      027991 phci_grp_vendor_done:
+0x690f 027992 arg 0x20 ,loopcnt 
+0x6910 027993 arg mem_patch00 ,contw 
+0x6911 027994 arg 0 ,temp 
+:      027995 phci_grp_vendor_done_loop:
+0x6912 027996 ifetch 1 ,contu 
+0x6913 027997 istore 1 ,contw 
+0x6914 027998 iadd temp ,temp 
+0x6915 027999 loop phci_grp_vendor_done_loop 
+0x6916 028000 and temp ,0xff ,temp 
+0x6917 028001 ifetch 1 ,contu 
+0x6918 028002 isub temp ,null 
+0x6919 028003 nbranch phci_grp_vendor_patch_bad ,zero 
+0x691a 028004 jam 0 ,core_ucode_ctrl 
+0x691b 028005 call hci_normal_reply 
+0x691c 028006 call wait_uarttx 
+0x691d 028007 branch soft_reset 
+:      028009 phci_grp_vendor_patch_bad:
+0x691e 028010 jam 0 ,core_ucode_ctrl 
+0x691f 028011 branch hci_send_event_command_complete_error_command_nuknown 
+:      028014 phci_grp_vendor_mem:
+0x6920 028015 ifetch 1 ,contu 
+0x6921 028016 copy pdata ,loopcnt 
+0x6922 028017 ifetch 2 ,contu 
+0x6923 028018 copy pdata ,contw 
+0x6924 028019 call uart_copy_rx_bytes 
+0x6925 028020 branch hci_normal_reply 
+:      028022 phci_grp_vendor_flow_control:
+0x6926 028023 fetch 1 ,core_uart_ctrl 
+0x6927 028024 set1 bit_uart_control_flow_control ,pdata 
+0x6928 028025 store 1 ,core_uart_ctrl 
+0x6929 028026 branch hci_normal_reply 
+:      028029 hci_normal_reply:
+0x692a 028030 branch hci_send_event_command_complete_without_payload 
+:      028032 hci_send_event_command_complete_error_command_nuknown:
+0x692b 028033 jam command_unknown ,mem_hci_command_complete_return_parameter 
+0x692c 028034 branch hci_send_event_command_complete_without_payload + 1 
+:      028035 hci_send_event_command_complete_error_command_disallowed:
+0x692d 028036 jam command_disallowed ,mem_hci_command_complete_return_parameter 
+0x692e 028037 branch hci_send_event_command_complete_without_payload + 1 
+:      028038 hci_send_event_command_complete_without_payload:
+0x692f 028039 jam command_succeeded ,mem_hci_command_complete_return_parameter 
+0x6930 028040 arg 1 ,loopcnt 
+0x6931 028041 branch hci_send_event_command_complete 
+:      028043 hci_send_event_command_complete:
+0x6932 028044 jam hci_event_command_complete ,mem_hci_event_head_event_code 
+0x6933 028045 add loopcnt ,3 ,pdata 
+0x6934 028046 store 1 ,mem_hci_event_para_total_length 
+0x6935 028047 call hci_prepare_send_event 
+0x6936 028048 fetch 3 ,mem_hci_command_complete_num_hci_command_packet 
+0x6937 028049 istore 3 ,contwu 
+0x6938 028051 arg mem_hci_command_complete_return_parameter ,contr 
+0x6939 028052 call uart_copy_tx_bytes 
+0x693a 028053 branch uarta_send_register_pop 
+:      028057 hci_prepare_send_event:
+0x693b 028058 call uarta_prepare_tx_register_push 
+0x693c 028059 fetch 3 ,mem_hci_event_head_type 
+0x693d 028060 istore 3 ,contwu 
+0x693e 028061 rtn 
+:      028063 hci_drop_current_packet:
+0x693f 028064 call uarta_prepare_rx 
+0x6940 028065 increase 3 ,contru 
+0x6941 028066 ifetch 1 ,contru 
+0x6942 028067 iadd contru ,contru 
+0x6943 028068 branch uarta_rxdone 
+:      028070 cmd_exit:
+0x6944 028071 jam 0 ,mem_hci_cmd 
+0x6945 028072 rtn 
+:      028079 l2cap_init:
+0x6946 028080 branch l2cap_init_wake ,wake 
+0x6947 028081 setarg mem_l2cap_xmem_end 
+0x6948 028082 arg mem_l2cap_xmem_start ,contw 
+0x6949 028083 isub contw ,loopcnt 
+0x694a 028084 call clear_mem 
+:      028085 l2cap_init_wake:
+0x694b 028087 rtn 
+:      028091 check_l2cap_map:
+0x694c 028092 arg 0 ,queue 
+0x694d 028093 arg 0 ,regb 
+:      028095 check_l2cap_map_loop:
+0x694e 028096 sub queue ,7 ,null 
+0x694f 028097 nrtn positive 
+0x6950 028098 qisolate1 rega 
+0x6951 028099 branch check_l2cap_map_used ,true 
+0x6952 028100 branch check_l2cap_map_used2 
+:      028102 check_l2cap_map_used:
+0x6953 028103 copy temp ,pdata 
+0x6954 028104 branch check_l2cap_map_used2 ,blank 
+0x6955 028105 qset1 regb 
+0x6956 028106 increase -1 ,temp 
+:      028108 check_l2cap_map_used2:
+0x6957 028109 increase 1 ,queue 
+0x6958 028110 branch check_l2cap_map_loop 
+:      028123 ble_l2cap_malloc:
+0x6959 028124 fetchr regd ,2 ,mem_ble_l2cap_tx_buff0_ptr 
+0x695a 028125 fetchr rege ,2 ,mem_ble_l2cap_tx_buff_size_ptr 
+0x695b 028126 call disable_user 
+0x695c 028127 branch host_l2cap_malloc 
+:      028129 host_l2cap_malloc:
+0x695d 028130 bpatch patch16_6 ,mem_patch16 
+0x695e 028131 call l2cap_malloc_is_fifo_full 
+0x695f 028132 nbranch assert ,blank 
+0x6960 028133 call l2cap_malloc_get_full_map 
+0x6961 028134 arg 8 ,loopcnt 
+:      028135 host_l2cap_malloc_loop:
+0x6962 028136 fetcht 1 ,mem_used_map 
+0x6963 028137 sub loopcnt ,8 ,queue 
+0x6964 028138 qisolate1 temp 
+0x6965 028139 branch host_l2cap_malloc_next_buffer ,true 
+0x6966 028140 call host_l2cap_malloc_check_buffer_enough 
+0x6967 028141 nbranch host_l2cap_malloc_next_buffer ,positive 
+0x6968 028142 call host_l2cap_malloc_into_fifo 
+0x6969 028143 branch host_l2cap_malloc_succ 
+:      028144 host_l2cap_malloc_next_buffer:
+0x696a 028145 copy rege ,pdata 
+0x696b 028146 iadd regd ,regd 
+0x696c 028147 loop host_l2cap_malloc_loop 
+0x696d 028148 branch assert 
+:      028149 host_l2cap_malloc_succ:
+0x696e 028150 copy regd ,pdata 
+0x696f 028151 copy regd ,contw 
+0x6970 028152 rtn 
+:      028161 host_l2cap_malloc_check_buffer_enough:
+0x6971 028162 bpatch patch16_7 ,mem_patch16 
+0x6972 028163 sub loopcnt ,8 ,queue 
+0x6973 028164 arg 0 ,temp 
+0x6974 028165 arg 0 ,timeup 
+:      028166 host_l2cap_malloc_check_buffer_enough_loop:
+0x6975 028167 copy queue ,pdata 
+0x6976 028168 beq 8 ,host_l2cap_malloc_check_buffer_enough_end 
+0x6977 028169 fetch 1 ,mem_used_map 
+0x6978 028170 qisolate1 pdata 
+0x6979 028171 branch host_l2cap_malloc_check_buffer_enough_end ,true 
+0x697a 028172 qset1 timeup 
+0x697b 028173 copy rege ,pdata 
+0x697c 028174 iadd temp ,temp 
+0x697d 028175 increase 1 ,queue 
+0x697e 028176 copy rega ,pdata 
+0x697f 028177 isub temp ,null 
+0x6980 028178 branch host_l2cap_malloc_check_buffer_enough_end ,zero 
+0x6981 028179 branch host_l2cap_malloc_check_buffer_enough_loop ,positive 
+:      028180 host_l2cap_malloc_check_buffer_enough_end:
+0x6982 028181 copy temp ,pdata 
+0x6983 028182 isub rega ,null 
+0x6984 028183 nrtn zero 
+0x6985 028184 qset1 timeup 
+0x6986 028185 rtn 
+:      028194 host_l2cap_malloc_into_fifo:
+0x6987 028195 bpatch patch17_0 ,mem_patch17 
+0x6988 028196 call l2cap_malloc_is_fifo_full 
+0x6989 028197 nbranch assert ,blank 
+0x698a 028198 call l2cap_malloc_is_fifo_empty 
+0x698b 028199 branch host_l2cap_malloc_into_fifo_no_push ,blank 
+0x698c 028200 fetch 9 ,mem_tx_fifo1 
+0x698d 028201 store 9 ,mem_tx_fifo0 
+0x698e 028202 setarg 0 
+0x698f 028203 istore 3 ,contw 
+:      028204 host_l2cap_malloc_into_fifo_no_push:
+0x6990 028205 storer timeup ,1 ,mem_tx_fifo3_map 
+0x6991 028206 storer regd ,2 ,mem_tx_fifo3_ptr 
+0x6992 028207 rtn 
+:      028216 l2cap_malloc_fifo_out:
+0x6993 028217 bpatch patch17_1 ,mem_patch17 
+0x6994 028218 call l2cap_malloc_fifo_get_first_ptr 
+0x6995 028219 increase 1 ,contr 
+0x6996 028220 ifetch 2 ,contr 
+0x6997 028221 rtn 
+:      028228 l2cap_malloc_free:
+0x6998 028229 bpatch patch17_2 ,mem_patch17 
+0x6999 028230 call l2cap_malloc_fifo_get_first_ptr 
+0x699a 028231 copy contr ,contw 
+0x699b 028232 copy contr ,temp 
+0x699c 028233 setarg 0 
+0x699d 028234 istore 3 ,contw 
+0x699e 028235 rtn 
+:      028242 l2cap_malloc_discard:
+0x699f 028243 bpatch patch17_3 ,mem_patch17 
+0x69a0 028244 call l2cap_malloc_is_fifo_empty 
+0x69a1 028245 branch assert ,blank 
+0x69a2 028246 fetch 3 ,mem_tx_fifo2 
+0x69a3 028247 store 3 ,mem_tx_fifo3 
+0x69a4 028248 fetch 3 ,mem_tx_fifo1 
+0x69a5 028249 store 3 ,mem_tx_fifo2 
+0x69a6 028250 fetch 3 ,mem_tx_fifo0 
+0x69a7 028251 store 3 ,mem_tx_fifo1 
+0x69a8 028252 rtn 
+:      028260 l2cap_malloc_is_fifo_full:
+0x69a9 028261 bpatch patch17_4 ,mem_patch17 
+0x69aa 028262 fetch 3 ,mem_tx_fifo0 
+0x69ab 028263 rtn 
+:      028271 l2cap_malloc_is_fifo_nearly_full:
+0x69ac 028272 bpatch patch17_5 ,mem_patch17 
+0x69ad 028273 fetch 3 ,mem_tx_fifo1 
+0x69ae 028274 rtn 
+:      028282 l2cap_malloc_is_fifo_empty:
+0x69af 028283 bpatch patch17_6 ,mem_patch17 
+0x69b0 028284 fetch 3 ,mem_tx_fifo3 
+0x69b1 028285 rtn 
+:      028292 l2cap_malloc_fifo_get_first_ptr:
+0x69b2 028293 call l2cap_malloc_is_fifo_empty 
+0x69b3 028294 branch l2cap_malloc_fifo_get_first_ptr_empty ,blank 
+0x69b4 028295 arg mem_tx_fifo0 ,contr 
+:      028296 l2cap_malloc_free_loop:
+0x69b5 028297 ifetch 3 ,contr 
+0x69b6 028298 branch l2cap_malloc_free_loop ,blank 
+:      028299 l2cap_malloc_fifo_get_first_ptr_empty:
+0x69b7 028300 increase -3 ,contr 
+0x69b8 028301 rtn 
+:      028309 l2cap_malloc_get_full_map:
+0x69b9 028310 bpatch patch17_7 ,mem_patch17 
+0x69ba 028311 arg 4 ,loopcnt 
+0x69bb 028312 arg mem_tx_fifo0_map ,contr 
+0x69bc 028313 arg 0 ,temp 
+:      028314 l2cap_malloc_get_full_map_loop:
+0x69bd 028315 ifetch 3 ,contr 
+0x69be 028316 and pdata ,0xff ,pdata 
+0x69bf 028317 ior temp ,temp 
+0x69c0 028318 loop l2cap_malloc_get_full_map_loop 
+0x69c1 028319 storet 1 ,mem_used_map 
+0x69c2 028320 rtn 
+:      028323 l2cap_lpm_get_wake_lock:
+0x69c3 028324 arg wake_lock_l2cap_tx ,queue 
+0x69c4 028325 branch lpm_get_wake_lock 
+:      028327 l2cap_lpm_put_wake_lock:
+0x69c5 028328 arg wake_lock_l2cap_tx ,queue 
+0x69c6 028329 branch lpm_put_wake_lock 
+:      028340 twspi_reset:
+0x69c7 028341 bpatch patch18_1 ,mem_patch18 
+0x69c8 028342 sub temp ,ui_button_gpio_disable ,null 
+0x69c9 028343 rtn zero 
+0x69ca 028344 copy temp ,pdata 
+0x69cb 028345 and_into 0xff ,pdata 
+0x69cc 028346 sub pdata ,gpio_number + -1 ,null 
+0x69cd 028347 nbranch twspi_reset_ext ,positive 
+0x69ce 028348 arg core_gpio_conf ,contw 
+:      028349 twspi_reset_next:
+0x69cf 028350 iadd contw ,contw 
+0x69d0 028351 copy contw ,rega 
+0x69d1 028352 arg gpcfg_output_low ,temp 
+0x69d2 028353 istoret 1 ,contw 
+0x69d3 028354 call twspi_disable 
+0x69d4 028355 nop 30 
+0x69d5 028356 copy rega ,contw 
+0x69d6 028357 arg gpcfg_output_high ,temp 
+0x69d7 028358 istoret 1 ,contw 
+0x69d8 028359 branch twspi_enable 
+:      028361 twspi_reset_ext:
+0x69d9 028362 arg core_gpio_conf_hi ,contw 
+0x69da 028363 increase -16 ,pdata 
+0x69db 028364 branch twspi_reset_next 
+:      028367 twspi_disable:
+0x69dc 028368 fetch 1 ,core_spid_delay 
+0x69dd 028369 and_into 0x7f ,pdata 
+0x69de 028370 store 1 ,core_spid_delay 
+0x69df 028371 rtn 
+:      028373 twspi_enable:
+0x69e0 028374 fetch 1 ,core_spid_delay 
+0x69e1 028375 or_into 0x80 ,pdata 
+0x69e2 028376 store 1 ,core_spid_delay 
+0x69e3 028377 rtn 
+:      028379 twspi_write:
+0x69e4 028380 branch spid_write_reg 
+:      028382 twspi_read:
+0x69e5 028383 branch spid_read_reg 
+:      028387 aes_disable:
+0x69e6 028388 fetch 1 ,core_bist_ctrl 
+0x69e7 028389 set0 aes_en ,pdata 
+0x69e8 028390 store 1 ,core_bist_ctrl 
+0x69e9 028391 rtn 
+:      028393 read_function_aes:
+0x69ea 028394 nbranch read_function ,user 
+0x69eb 028395 fetch 1 ,core_bist_ctrl 
+0x69ec 028396 set1 aes_en ,pdata 
+0x69ed 028397 store 1 ,core_bist_ctrl 
+:      028398 read_function:
+0x69ee 028399 copy temp ,null 
+0x69ef 028400 branch read_fuction_zero ,zero 
+0x69f0 028401 copy regc ,pc 
+:      028403 read_fuction_zero:
+0x69f1 028404 isolate0 0 ,null 
+0x69f2 028405 branch set_ucode_status 
+:      028408 get_block_header:
+0x69f3 028409 force 4 ,temp 
+:      028410 get_block_header0:
+0x69f4 028411 arg mem_ucode_buf ,rega 
+0x69f5 028412 call aes_disable 
+0x69f6 028413 call read_function 
+0x69f7 028414 arg 0x55aa ,rega 
+0x69f8 028415 fetch 2 ,mem_ucode_buf 
+0x69f9 028416 ifetcht 2 ,contr 
+0x69fa 028417 isub rega ,null 
+0x69fb 028418 rtn 
+:      028421 read_first_block:
+0x69fc 028422 call load_aes_reinit ,user 
+0x69fd 028423 arg 2 ,temp 
+0x69fe 028424 arg mem_ucode_ptr ,rega 
+0x69ff 028425 call read_function 
+0x6a00 028426 fetch 2 ,mem_ucode_ptr 
+:      028427 read_first_block_cont:
+0x6a01 028428 store 2 ,mem_addr_mi 
+0x6a02 028429 call get_iv ,user 
+0x6a03 028430 rtn 
+:      028432 get_iv:
+0x6a04 028433 arg 16 ,temp 
+0x6a05 028434 arg mem_ucode_keybuf ,rega 
+0x6a06 028435 call aes_disable 
+0x6a07 028436 call read_function 
+:      028437 set_iv:
+0x6a08 028438 arg mem_ucode_keybuf ,contr 
+0x6a09 028439 arg 16 ,loopcnt 
+0x6a0a 028440 call aes_load_data 
+0x6a0b 028441 call aes_init 
+0x6a0c 028442 call aes_clear_data 
+0x6a0d 028443 branch do_aes_cbc 
+:      028445 load_aes_reinit:
+0x6a0e 028446 jam 0x0 ,core_ucode_ctrl 
+0x6a0f 028447 call aes_disable 
+0x6a10 028448 branch aes_clear_data 
+:      028450 load_storage:
+0x6a11 028451 setarg 0 
+0x6a12 028452 store 2 ,mem_queue 
+0x6a13 028453 disable match 
+0x6a14 028454 call get_block_header 
+0x6a15 028455 nrtn zero 
+0x6a16 028456 enable match 
+0x6a17 028457 setarg 0x8000 
+0x6a18 028458 store 3 ,core_ucode_hi 
+0x6a19 028459 arg core_ucode_data ,rega 
+0x6a1a 028460 call read_function_aes 
+0x6a1b 028461 jam 0x0 ,core_ucode_ctrl 
+0x6a1c 028462 fetch 1 ,mem_ucode_status 
+0x6a1d 028463 rtnbit0 0 
+:      028464 load_storage_loop:
+0x6a1e 028465 arg 6 ,temp 
+0x6a1f 028466 call get_block_header0 
+0x6a20 028467 nbranch load_data_checksum_compare ,zero 
+0x6a21 028468 ifetchr rega ,2 ,contr 
+0x6a22 028469 call read_function 
+0x6a23 028470 call load_data_checksum_calc 
+0x6a24 028471 branch load_storage_loop 
+:      028474 load_data_checksum_calc:
+0x6a25 028475 fetch 2 ,mem_queue 
+0x6a26 028476 arg 6 ,loopcnt 
+0x6a27 028477 arg mem_ucode_buf ,contr 
+0x6a28 028478 call cal_sum 
+0x6a29 028479 fetchr loopcnt ,2 ,mem_ucode_len 
+0x6a2a 028480 copy rega ,contr 
+0x6a2b 028481 call cal_sum 
+0x6a2c 028482 store 2 ,mem_queue 
+0x6a2d 028483 rtn 
+:      028485 load_data_checksum_compare:
+0x6a2e 028486 fetch 1 ,mem_otp_load_check_sum 
+0x6a2f 028487 beq 0x5a ,load_data_checksum_ok 
+0x6a30 028488 arg 0xaa55 ,rega 
+0x6a31 028489 fetch 2 ,mem_ucode_buf 
+0x6a32 028490 isub rega ,null 
+0x6a33 028491 nbranch load_data_checksum_compare_fail ,zero 
+0x6a34 028492 arg 0x55aa ,rega 
+0x6a35 028493 fetch 2 ,mem_ucode_len 
+0x6a36 028494 isub rega ,null 
+0x6a37 028495 nbranch load_data_checksum_compare_fail ,zero 
+0x6a38 028496 fetch 2 ,mem_sched_addr 
+0x6a39 028497 fetcht 2 ,mem_queue 
+0x6a3a 028498 isub temp ,null 
+0x6a3b 028499 nbranch load_data_checksum_compare_fail ,zero 
+:      028500 load_data_checksum_ok:
+0x6a3c 028501 set1 15 ,rega 
+0x6a3d 028502 branch read_fuction_zero 
+:      028504 load_data_checksum_compare_fail:
+0x6a3e 028505 jam 0 ,mem_ucode_status 
+0x6a3f 028506 rtn 
+:      028509 loadcode_lock_load_ucode:
+0x6a40 028512 and pdata ,0xff ,pdata 
+0x6a41 028513 rshift4 pdata ,pdata 
+0x6a42 028514 store 1 ,mem_device_option 
+0x6a43 028515 branch loadcode_load_key 
+:      028517 loadcode_lock:
+0x6a44 028518 fetch 2 ,core_ucode_flag 
+0x6a45 028519 nbranch loadcode_lock_load_ucode ,blank 
+0x6a46 028520 call loadcode_load_key 
+0x6a47 028521 fetch 2 ,mem_device_option 
+0x6a48 028522 rtn blank 
+0x6a49 028523 call loadcode_set_lock 
+0x6a4a 028524 branch lpm_write_lock 
+:      028526 loadcode_set_lock:
+0x6a4b 028527 fetch 1 ,mem_device_option 
+0x6a4c 028528 rtn blank 
+0x6a4d 028529 and pdata ,0xf ,temp 
+0x6a4e 028530 storet 1 ,mem_device_option 
+0x6a4f 028531 rshift4 pdata ,pdata 
+0x6a50 028532 ixor temp ,pdata 
+0x6a51 028533 bne 0xf ,app_lpm_mpu_lock_24g_ble 
+0x6a52 028534 branch app_lpm_lock_check 
+:      028536 load_otp_hv_vsel:
+0x6a53 028537 fetch 1 ,mem_otp_hv_sel 
+0x6a54 028538 ncall lpm_save_sel_hv ,blank 
+0x6a55 028539 fetch 1 ,mem_otp_ldo_vsel 
+0x6a56 028540 rtn blank 
+0x6a57 028541 store 1 ,mem_lpm_ldo_sel 
+0x6a58 028542 branch lpm_write_io_vsel 
+:      028544 loadcode_load_key:
+0x6a59 028545 disable user 
+0x6a5a 028546 fetch 1 ,mem_ucode_flag 
+0x6a5b 028547 rtnbit0 otp_uflag_aes 
+0x6a5c 028548 call loadcode_check_otp_lock 
+0x6a5d 028549 arg otp_offset_ucode_key_l ,pdata 
+0x6a5e 028550 iadd regb ,regb 
+0x6a5f 028551 force 16 ,loopcnt 
+0x6a60 028552 arg mem_ucode_keybuf ,rega 
+0x6a61 028553 call otp_read_data 
+0x6a62 028554 jam otp_key_lock ,core_misc_ctrl 
+0x6a63 028555 arg mem_ucode_keybuf ,contr 
+0x6a64 028556 call load_key 
+0x6a65 028558 arg mem_ucode_keybuf ,contw 
+0x6a66 028559 call memset0_16 
+0x6a67 028560 branch enable_user 
+:      028563 loadcode:
+0x6a68 028564 jam 0x25 ,core_clkoff 
+0x6a69 028565 call enable_otp_read 
+0x6a6a 028566 arg otp_offset_patch_ptr ,regb 
+0x6a6b 028567 force 11 ,loopcnt 
+0x6a6c 028568 arg mem_ucode_ptr ,rega 
+0x6a6d 028569 call otp_read_data1 
+0x6a6e 028570 fetchr regf ,5 ,mem_ucode_ptr 
+0x6a6f 028571 fetch 1 ,mem_ucode_flag 
+0x6a70 028572 bbit0 otp_uflag_bist ,loadcode_nobist 
+0x6a71 028573 jam 0x7 ,core_bist_ctrl 
+:      028574 loadcode_bistwait:
+0x6a72 028575 fetch 1 ,core_bist_done 
+0x6a73 028576 bne 7 ,loadcode_bistwait 
+0x6a74 028577 fetch 1 ,core_bist_fail 
+0x6a75 028578 lshift4 pdata ,pdata 
+0x6a76 028579 store 1 ,core_bist_ctrl 
+0x6a77 028580 branch loadcode_otp 
+:      028582 loadcode_nobist:
+0x6a78 028583 call set_bistfix 
+0x6a79 028584 call clean_xmem 
+0x6a7a 028585 call clean_smem 
+:      028586 loadcode_otp:
+0x6a7b 028587 storer regf ,5 ,mem_ucode_ptr 
+0x6a7c 028589 call loadcode_check_otp_lock 
+0x6a7d 028590 arg otp_offset_adc_param_l ,pdata 
+0x6a7e 028591 iadd regb ,regb 
+0x6a7f 028592 arg 32 ,loopcnt 
+0x6a80 028593 arg mem_otp_temp ,rega 
+0x6a81 028594 call otp_read_data 
+0x6a82 028596 call load_otp_hv_vsel 
+0x6a83 028597 call loadcode_lock 
+0x6a84 028599 fetch 1 ,mem_ucode_flag 
+0x6a85 028600 bbit0 otp_uflag_aes ,loadcode_unenc 
+0x6a86 028601 fetcht 1 ,mem_peripheral_lock_flag 
+0x6a87 028602 arg 0 ,pdata 
+0x6a88 028603 set1 otp_not_limit ,pdata 
+0x6a89 028604 set1 otp_limit ,pdata 
+0x6a8a 028605 iand temp ,rega 
+0x6a8b 028606 sub rega ,0 ,null 
+0x6a8c 028607 branch loadcode_error ,zero 
+0x6a8d 028608 isub rega ,null 
+0x6a8e 028609 branch loadcode_error ,zero 
+:      028610 loadcode_unenc:
+0x6a8f 028611 jam 0 ,mem_loadcode_times 
+0x6a90 028612 arg otp_load_code ,regc 
+:      028613 loadcode_otp_loop:
+0x6a91 028614 call loadcode_timeout 
+0x6a92 028615 nbranch loadcode_error ,positive 
+0x6a93 028616 fetch 2 ,mem_ucode_ptr 
+0x6a94 028617 branch loadcode_otp_end ,blank 
+0x6a95 028618 call read_first_block_cont 
+0x6a96 028619 call load_storage 
+0x6a97 028620 nbranch loadcode_otp_end ,match 
+0x6a98 028621 fetch 1 ,mem_ucode_status 
+0x6a99 028622 compare 3 ,pdata ,3 
+0x6a9a 028623 nbranch loadcode_otp_loop ,true 
+0x6a9b 028624 call run_otp_code 
+:      028625 loadcode_otp_end:
+0x6a9c 028626 call disable_otp 
+0x6a9d 028627 jam 0 ,mem_loadcode_times 
+:      028628 loadcode_iic_loop:
+0x6a9e 028629 call loadcode_timeout 
+0x6a9f 028630 nbranch loadcode_error ,positive 
+0x6aa0 028631 call iicd_load_gpio_init 
+0x6aa1 028632 call clear_eeprom_size_2k 
+0x6aa2 028633 fetch 1 ,mem_ucode_flag 
+0x6aa3 028634 bbit1 otp_uflag_skip_eep ,loadcode_spi 
+0x6aa4 028635 call loadcode_iic_by_eeprom 
+0x6aa5 028636 nbranch loadcode_iic_eeprom_2k ,match 
+0x6aa6 028637 fetch 1 ,mem_ucode_status 
+0x6aa7 028638 compare 3 ,pdata ,3 
+0x6aa8 028639 nbranch loadcode_iic_loop ,true 
+0x6aa9 028640 branch loadcode_spi 
+:      028642 run_otp_code:
+0x6aaa 028643 setarg 0x1ff 
+0x6aab 028644 arg 0 ,pc 
+0x6aac 028645 rtn 
+:      028647 loadcode_check_otp_lock:
+0x6aad 028648 arg otp_offset_h ,regb 
+0x6aae 028649 fetch 1 ,core_peripheral_lock 
+0x6aaf 028650 bbit1 otp_limit ,loadcode_otp_lock 
+0x6ab0 028651 fetch 1 ,mem_peripheral_lock_flag 
+0x6ab1 028652 rtnbit0 otp_limit 
+:      028653 loadcode_otp_lock:
+0x6ab2 028654 arg 0 ,regb 
+0x6ab3 028655 rtn 
+:      028658 loadcode_iic_eeprom_2k:
+0x6ab4 028659 call set_eeprom_size_2k 
+0x6ab5 028660 fetch 1 ,mem_ucode_flag 
+0x6ab6 028661 bbit1 otp_uflag_skip_eep ,loadcode_spi 
+0x6ab7 028662 call loadcode_iic_by_eeprom 
+0x6ab8 028663 nbranch loadcode_spi ,match 
+0x6ab9 028664 fetch 1 ,mem_ucode_status 
+0x6aba 028665 compare 3 ,pdata ,3 
+0x6abb 028666 nbranch loadcode_iic_loop ,true 
+0x6abc 028667 branch loadcode_hci 
+:      028669 loadcode_spi:
+0x6abd 028670 jam 0 ,mem_loadcode_times 
+:      028671 loadcode_spi_loop:
+0x6abe 028672 call loadcode_timeout 
+0x6abf 028673 nbranch loadcode_error ,positive 
+0x6ac0 028674 fetch 1 ,mem_ucode_flag 
+0x6ac1 028675 bbit1 otp_uflag_skip_flash ,loadcode_hci 
+0x6ac2 028676 call spid_init_flash 
+0x6ac3 028677 nop 200 
+0x6ac4 028678 call spid_flash_release_form_powerdown 
+0x6ac5 028679 nop 100 
+0x6ac6 028680 arg spid_load_flash ,regc 
+0x6ac7 028681 call read_first_block 
+0x6ac8 028682 call load_storage 
+0x6ac9 028683 nbranch loadcode_hci ,match 
+0x6aca 028684 fetch 1 ,mem_ucode_status 
+0x6acb 028685 compare 3 ,pdata ,3 
+0x6acc 028686 nbranch loadcode_spi_loop ,true 
+:      028688 loadcode_hci:
+0x6acd 028689 call clear_key_buf 
+0x6ace 028690 fetch 1 ,mem_ucode_flag 
+0x6acf 028691 rtnbit0 otp_uflag_hci 
+0x6ad0 028692 branch hci_init 
+:      028694 clear_key_buf:
+0x6ad1 028695 arg mem_ucode_keybuf ,contw 
+0x6ad2 028696 call memset0_16 
+0x6ad3 028697 force regidx_key ,regext_index 
+0x6ad4 028698 call aes_clear 
+0x6ad5 028699 jam 0x21 ,core_clkoff 
+0x6ad6 028700 rtn 
+:      028702 iicd_load_gpio_init:
+0x6ad7 028703 fetch 1 ,mem_eeprom_sda_gpio 
+0x6ad8 028704 fetcht 1 ,mem_eeprom_scl_gpio 
+0x6ad9 028705 isub temp ,null 
+0x6ada 028706 nbranch iicd_read_init_pin ,zero 
+:      028707 iicd_load_default_gpio:
+0x6adb 028708 jam 4 ,mem_eeprom_wp_gpio 
+0x6adc 028709 jam 23 ,mem_eeprom_scl_gpio 
+0x6add 028710 jam 22 ,mem_eeprom_sda_gpio 
+0x6ade 028711 branch iicd_read_init_pin 
+:      028715 loadcode_iic_by_eeprom:
+0x6adf 028716 setarg 0x0 
+0x6ae0 028717 store 2 ,mem_addr_mi 
+0x6ae1 028718 arg iicd_read_eep ,regc 
+0x6ae2 028719 call iic_init_600khz 
+0x6ae3 028720 call read_first_block 
+0x6ae4 028721 branch load_storage 
+:      028726 loadcode_timeout:
+0x6ae5 028727 call loadcode_error_delay 
+0x6ae6 028728 fetch 1 ,mem_loadcode_times 
+0x6ae7 028729 increase 1 ,pdata 
+0x6ae8 028730 sub pdata ,3 ,null 
+0x6ae9 028731 store 1 ,mem_loadcode_times 
+0x6aea 028732 rtn 
+:      028734 loadcode_error_delay:
+0x6aeb 028735 fetch 1 ,mem_loadcode_times 
+0x6aec 028736 rtn blank 
+0x6aed 028737 fetch 1 ,mem_otp_load_delay 
+0x6aee 028738 rtn blank 
+0x6aef 028739 copy pdata ,loopcnt 
+0x6af0 028740 branch delay_ms_wait 
+:      028743 loadcode_error:
+0x6af1 028744 call clear_key_buf 
+0x6af2 028745 call aes_disable 
+0x6af3 028747 call ice_break 
+0x6af4 028748 rtn 
+:      028750 set_bistfix:
+0x6af5 028751 and_into 0xe0 ,pdata 
+0x6af6 028752 rshift pdata ,pdata 
+0x6af7 028753 store 1 ,core_bist_ctrl 
+0x6af8 028754 setarg 1 
+0x6af9 028755 arg mem_bistfix_val ,contr 
+:      028756 set_bistfix_loop:
+0x6afa 028757 ifetcht 2 ,contr 
+0x6afb 028758 storet 2 ,core_lpm_reg 
+0x6afc 028759 store 1 ,core_set_bistfix 
+0x6afd 028760 lshift pdata ,pdata 
+0x6afe 028761 bbit0 3 ,set_bistfix_loop 
+0x6aff 028762 rtn 
+:      028765 set_ucode_status:
+0x6b00 028766 fetch 1 ,mem_ucode_status 
+0x6b01 028767 lshift pdata ,pdata 
+0x6b02 028768 setflag true ,0 ,pdata 
+0x6b03 028769 isolate0 15 ,rega 
+0x6b04 028770 rtn true 
+0x6b05 028771 store 1 ,mem_ucode_status 
+0x6b06 028772 rtn 
+:      028775 decrypt_code:
+0x6b07 028776 fetch 1 ,core_bist_ctrl 
+0x6b08 028777 rtnbit0 aes_en 
+0x6b09 028778 branch decrypt_code_skip 
+:      028779 decrypt_code_loop:
+0x6b0a 028780 fetch 1 ,core_dma_status 
+0x6b0b 028781 qisolate1 pdata 
+0x6b0c 028782 rtn true 
+:      028783 decrypt_code_skip:
+0x6b0d 028784 fetch 1 ,core_misc_status 
+0x6b0e 028785 bbit0 1 ,decrypt_code_loop 
+0x6b0f 028786 call do_aes_cbc 
+0x6b10 028787 branch decrypt_code_loop 
+:      028807 load_ucode:
+0x6b11 028808 fetch 2 ,mem_patch_ptr 
+0x6b12 028809 rtn blank 
+0x6b13 028810 jam 0x80 ,core_ucode_ctrl 
+0x6b14 028811 jam 0 ,core_ucode_hi 
+0x6b15 028812 jam 0 ,core_ucode_low 
+0x6b16 028813 fetcht 2 ,mem_patch_len 
+0x6b17 028814 lshift2 temp ,loopcnt 
+0x6b18 028815 iforce contr 
+:      028816 load_ucode_loop:
+0x6b19 028817 ifetch 1 ,contr 
+0x6b1a 028818 store 1 ,core_ucode_data 
+0x6b1b 028819 loop load_ucode_loop 
+0x6b1c 028820 jam 0x0 ,core_ucode_ctrl 
+0x6b1d 028821 rtn 
+:      028828 otp_load_code:
+0x6b1e 028829 copy temp ,loopcnt 
+0x6b1f 028830 fetch 2 ,mem_addr_mi 
+0x6b20 028831 iadd temp ,temp 
+0x6b21 028832 storet 2 ,mem_addr_mi 
+0x6b22 028833 iforce regb 
+0x6b23 028834 copy rega ,nap 
+0x6b24 028835 jam init_key ,core_misc_ctrl 
+0x6b25 028836 call otp_read_data 
+0x6b26 028837 copy nap ,rega 
+0x6b27 028838 isolate0 15 ,rega 
+0x6b28 028839 rtn true 
+0x6b29 028840 call enable_true ,blank 
+0x6b2a 028841 branch set_ucode_status 
+:      028844 otp_enable_chgpump25:
+0x6b2b 028845 jam 0x1 ,core_chgpump_ctrl 
+0x6b2c 028846 nop 300 
+0x6b2d 028847 jam 0x5 ,core_chgpump_ctrl 
+0x6b2e 028848 nop 100 
+0x6b2f 028849 jam 0x25 ,core_chgpump_ctrl 
+0x6b30 028850 nop 1000 
+0x6b31 028851 jam 0x27 ,core_chgpump_ctrl 
+0x6b32 028852 nop 300 
+0x6b33 028853 rtn 
+:      028855 otp_enable_chgpump65:
+0x6b34 028856 call otp_enable_chgpump25 
+0x6b35 028857 jam 0x3f ,core_chgpump_ctrl 
+0x6b36 028858 rtn 
+:      028860 disable_otp:
+0x6b37 028861 jam 0x83 ,core_otp_ctrl 
+:      028862 otp_disable_chgpump:
+0x6b38 028863 jam 0 ,core_chgpump_ctrl 
+0x6b39 028864 rtn 
+:      028866 enable_otp_read:
+0x6b3a 028867 call otp_enable_chgpump25 
+:      028869 otp_reset:
+0x6b3b 028870 jam 0x82 ,core_otp_ctrl 
+0x6b3c 028871 nop 12 
+0x6b3d 028872 jam 0x80 ,core_otp_ctrl 
+0x6b3e 028873 jam 0x82 ,core_otp_ctrl 
+0x6b3f 028874 nop 150 
+0x6b40 028875 rtn 
+:      028878 otp_set_addr:
+0x6b41 028879 lshift3 regb ,regb 
+0x6b42 028880 storer regb ,2 ,core_otp_addr 
+0x6b43 028881 jam 0 ,core_otp_din 
+0x6b44 028882 rtn 
+:      028885 otp_write:
+0x6b45 028886 bpatch patch18_4 ,mem_patch18 
+0x6b46 028887 call otp_enable_chgpump65 
+0x6b47 028888 call otp_set_addr 
+0x6b48 028889 call otp_reset 
+:      028890 otp_program:
+0x6b49 028891 ifetcht 1 ,rega 
+0x6b4a 028892 increase 1 ,rega 
+0x6b4b 028893 force 0 ,queue 
+:      028894 otp_program_bit:
+0x6b4c 028895 qisolate0 temp 
+0x6b4d 028896 branch otp_skip_0 ,true 
+0x6b4e 028897 fetch 1 ,core_otp_din 
+0x6b4f 028898 set1 6 ,pdata 
+0x6b50 028899 set1 7 ,pdata 
+0x6b51 028900 store 1 ,core_otp_din 
+0x6b52 028901 jam 0x02 ,core_otp_ctrl 
+0x6b53 028902 jam 0x82 ,core_otp_ctrl 
+0x6b54 028903 set0 7 ,pdata 
+0x6b55 028904 store 1 ,core_otp_din 
+0x6b56 028905 jam 0x8a ,core_otp_ctrl 
+0x6b57 028906 nop 11 
+0x6b58 028907 jam 0xca ,core_otp_ctrl 
+0x6b59 028908 nop 33 
+0x6b5a 028909 jam 0x4a ,core_otp_ctrl 
+0x6b5b 028910 nop 44 
+0x6b5c 028911 jam 0xca ,core_otp_ctrl 
+0x6b5d 028912 nop 22 
+0x6b5e 028913 jam 0x8a ,core_otp_ctrl 
+0x6b5f 028914 nop 33 
+0x6b60 028915 jam 0x82 ,core_otp_ctrl 
+0x6b61 028916 nop 1 
+0x6b62 028917 jam 0x92 ,core_otp_ctrl 
+0x6b63 028918 nop 10 
+0x6b64 028919 jam 0xb2 ,core_otp_ctrl 
+0x6b65 028920 fetch 1 ,core_otp_rdata 
+0x6b66 028921 jam 0x92 ,core_otp_ctrl 
+0x6b67 028922 nop 1 
+0x6b68 028923 jam 0x82 ,core_otp_ctrl 
+0x6b69 028924 nop 1 
+0x6b6a 028925 qisolate0 pdata 
+0x6b6b 028926 branch otp_program_bit ,true 
+:      028927 otp_skip_0:
+0x6b6c 028928 fetch 2 ,core_otp_addr 
+0x6b6d 028929 increase 1 ,pdata 
+0x6b6e 028930 store 2 ,core_otp_addr 
+0x6b6f 028931 increase 1 ,queue 
+0x6b70 028932 compare 8 ,queue ,0xf 
+0x6b71 028933 nbranch otp_program_bit ,true 
+0x6b72 028934 loop otp_program 
+0x6b73 028935 branch otp_disable_chgpump 
+:      028941 otp_read_data:
+0x6b74 028942 bpatch patch18_5 ,mem_patch18 
+:      028943 otp_read_data1:
+0x6b75 028944 call otp_set_addr 
+0x6b76 028945 jam 0xa2 ,core_otp_ctrl 
+0x6b77 028946 increase 8 ,regb 
+0x6b78 028947 arg 0 ,queue 
+0x6b79 028948 setarg -1 
+:      028949 otp_read_data_loop:
+0x6b7a 028950 fetcht 1 ,core_otp_rdata 
+0x6b7b 028951 istoret 1 ,rega 
+0x6b7c 028952 bcrc temp 
+0x6b7d 028953 jam shift_key ,core_misc_ctrl 
+0x6b7e 028954 storer regb ,2 ,core_otp_addr 
+0x6b7f 028955 isolate1 15 ,rega 
+0x6b80 028956 branch otp_read_noinc ,true 
+0x6b81 028957 increase 1 ,rega 
+0x6b82 028958 branch otp_read_unenc 
+:      028960 otp_read_noinc:
+0x6b83 028961 nbranch otp_read_unenc ,user 
+0x6b84 028962 increase 1 ,queue 
+0x6b85 028963 compare 0 ,queue ,0xf 
+0x6b86 028964 nbranch otp_read_unenc ,true 
+0x6b87 028965 call do_aes_cbc 
+0x6b88 028966 jam init_key ,core_misc_ctrl 
+:      028967 otp_read_unenc:
+0x6b89 028968 increase 8 ,regb 
+0x6b8a 028969 loop otp_read_data_loop 
+0x6b8b 028970 jam 0x82 ,core_otp_ctrl 
+0x6b8c 028971 rtn 
+:      028982 app_lpm_lock_check:
+0x6b8d 028983 fetch 1 ,mem_device_option 
+0x6b8e 028984 beq dvc_op_module ,app_lpm_module_lock 
+0x6b8f 028985 beq dvc_op_dongle ,app_lpm_dongle_lock 
+0x6b90 028987 beq dvc_op_mouse ,app_lpm_mouse_lock 
+0x6b91 028988 beq dvc_op_shutter ,app_lpm_shutter_lock 
+0x6b92 028989 beq dvc_op_shutter_dy ,app_lpm_shutter_lock 
+0x6b93 028990 beq dvc_op_hci_boot ,app_lpm_hciboot_lock 
+0x6b94 028991 beq dvc_op_remote_car ,app_lpm_car_lock_application_and_ble 
+0x6b95 028992 beq dvc_op_car ,app_lpm_car_lock 
+0x6b96 028993 beq dvc_op_mesh ,app_lpm_mesh_lock 
+0x6b97 028994 beq dvc_op_keyboard ,app_lpm_kb_lock 
+0x6b98 028995 branch app_lpm_mpu_lock_24g_ble 
+:      028998 app_lpm_mesh_lock:
+0x6b99 028999 arg car_init ,pdata 
+0x6b9a 029000 arg shutter_dy_shutter_1s_timer ,temp 
+0x6b9b 029001 call app_mpu_s0_lock 
+0x6b9c 029002 branch app_lpm_lock_mesh 
+:      029004 app_lpm_kb_lock:
+0x6b9d 029005 branch app_lpm_lock_mesh 
+:      029008 app_lpm_module_lock:
+:      029009 app_lpm_hciboot_lock:
+0x6b9e 029010 branch app_lpm_mpu_lock_24g 
+:      029013 app_lpm_dongle_lock:
+0x6b9f 029014 arg module_init ,pdata 
+0x6ba0 029015 arg shutter_dy_shutter_1s_timer ,temp 
+0x6ba1 029016 call app_mpu_s0_lock 
+0x6ba2 029017 branch app_lpm_lock_mesh 
+:      029019 app_lpm_mouse_lock:
+0x6ba3 029020 arg car_init ,pdata 
+0x6ba4 029021 arg module_set_state ,temp 
+0x6ba5 029022 call app_mpu_s0_lock 
+0x6ba6 029023 branch app_lpm_lock_mesh 
+:      029025 app_lpm_shutter_lock:
+0x6ba7 029026 arg car_init ,pdata 
+0x6ba8 029027 arg remote_car_moto_data_enable_user ,temp 
+0x6ba9 029028 call app_mpu_s0_lock 
+0x6baa 029029 branch app_lpm_lock_mesh 
+:      029031 app_lpm_car_lock:
+0x6bab 029032 arg dongle_init ,pdata 
+0x6bac 029033 arg shutter_dy_shutter_1s_timer ,temp 
+0x6bad 029034 call app_mpu_s0_lock 
+:      029035 app_lpm_lock_mesh:
+0x6bae 029036 arg ali_mesh_access_layer_resolve_message ,pdata 
+0x6baf 029037 arg ali_mesh_upper_transport_layer_init_queue_param ,temp 
+0x6bb0 029038 branch app_mpu_s1_lock 
+:      029040 app_lpm_car_lock_application_and_ble:
+0x6bb1 029041 arg dongle_init ,pdata 
+0x6bb2 029042 arg shutter_dy_shutter_1s_timer ,temp 
+0x6bb3 029043 call app_mpu_s0_lock 
+0x6bb4 029044 arg le_adv ,pdata 
+0x6bb5 029045 arg le_send_ll_one_lenth ,temp 
+0x6bb6 029046 branch app_mpu_s1_lock 
+:      029049 app_mpu_s0_lock:
+0x6bb7 029050 lshift16 temp ,temp 
+0x6bb8 029051 ior temp ,pdata 
+0x6bb9 029052 branch lpm_write_mpu_s0 
+:      029055 app_lpm_mpu_lock_ble:
+0x6bba 029056 arg le_parse_att ,pdata 
+0x6bbb 029057 arg le_send_ll_one_lenth ,temp 
+:      029058 app_mpu_s1_lock:
+0x6bbc 029059 lshift16 temp ,temp 
+0x6bbd 029060 ior temp ,pdata 
+0x6bbe 029061 branch lpm_write_mpu_s1 
+:      029063 app_lpm_mpu_lock_24g:
+0x6bbf 029064 arg g24_prep ,pdata 
+0x6bc0 029065 arg g24_factory_check ,temp 
+0x6bc1 029066 branch app_mpu_s1_lock 
+:      029068 app_lpm_mpu_lock_24g_ble:
+0x6bc2 029069 call app_lpm_mpu_lock_24g 
+0x6bc3 029070 arg le_parse_att ,pdata 
+0x6bc4 029071 arg le_send_ll_one_lenth ,temp 
+0x6bc5 029072 branch app_mpu_s0_lock 
+:      029078 spid_init:
+0x6bc6 029079 bpatch patch18_6 ,mem_patch18 
+:      029080 spid_init_common:
+0x6bc7 029081 fetch 1 ,mem_spi_init_clk 
+0x6bc8 029082 store 1 ,core_spid_ctrl 
+0x6bc9 029083 fetch 1 ,mem_spi_init_delay_time 
+0x6bca 029084 store 1 ,core_spid_delay 
+0x6bcb 029085 setarg mem_spid_tbuf 
+0x6bcc 029086 store 2 ,core_spid_txaddr 
+0x6bcd 029087 setarg mem_spid_rbuf 
+0x6bce 029088 store 2 ,core_spid_rxaddr 
+0x6bcf 029089 branch twspi_disable 
+:      029094 spid_write_reg:
+0x6bd0 029095 set1 7 ,pdata 
+0x6bd1 029096 store 2 ,mem_spid_tbuf 
+0x6bd2 029097 bpatch patch18_7 ,mem_patch18 
+0x6bd3 029098 jam 2 ,core_spid_txlen 
+0x6bd4 029099 jam 0 ,core_spid_rxlen 
+0x6bd5 029100 jam spid_start ,core_misc_ctrl 
+0x6bd6 029101 branch wait_spid_done 
+:      029104 spid_read_reg:
+0x6bd7 029105 force 1 ,temp 
+:      029106 spid_read_regs:
+0x6bd8 029107 store 1 ,mem_spid_tbuf 
+0x6bd9 029108 bpatch patch19_0 ,mem_patch19 
+0x6bda 029109 jam 1 ,core_spid_txlen 
+0x6bdb 029110 storet 2 ,core_spid_rxlen 
+0x6bdc 029111 jam spid_start ,core_misc_ctrl 
+0x6bdd 029112 call wait_spid_done 
+0x6bde 029113 fetch 1 ,mem_spid_rbuf 
+0x6bdf 029114 rtn 
+:      029117 wait_spid_done:
+0x6be0 029121 nop 5 
+0x6be1 029122 fetch 1 ,core_dma_status 
+0x6be2 029123 bbit0 spid_done ,wait_spid_done 
+0x6be3 029124 rtn 
+:      029132 flash_write:
+0x6be4 029133 disable user 
+0x6be5 029134 copy pdata ,regb 
+0x6be6 029135 fetch 1 ,mem_spi_write_flash_sm 
+0x6be7 029136 rtnne flash_sm_no_buys 
+0x6be8 029137 enable user 
+0x6be9 029138 copy regb ,pdata 
+0x6bea 029139 branch spid_flash_write_start 
+:      029142 flash_write_spi_sm_timer:
+0x6beb 029143 fetch 1 ,mem_spi_write_flash_sm 
+0x6bec 029144 beq flash_sm_start ,spid_flash_write_start 
+0x6bed 029145 beq flash_sm_erase_sector ,spid_flash_erase_sector 
+0x6bee 029146 beq flash_sm_wait_erase_sector ,spid_flash_wait_erase_sector 
+0x6bef 029147 beq flash_sm_write_data ,spid_flash_write_data 
+0x6bf0 029148 beq flash_sm_wait_write_data ,spid_flash_wait_write_data 
+0x6bf1 029149 rtn 
+:      029151 spid_flash_write_start:
+0x6bf2 029152 store 3 ,mem_spi_write_addr 
+0x6bf3 029153 copy rega ,pdata 
+0x6bf4 029154 store 2 ,mem_spi_write_ptr 
+0x6bf5 029155 storet 2 ,mem_spi_write_len 
+0x6bf6 029156 jam flash_sm_erase_sector ,mem_spi_write_flash_sm 
+0x6bf7 029157 branch spid_init_flash 
+:      029159 spid_flash_erase_sector:
+0x6bf8 029160 call spid_init_flash 
+0x6bf9 029161 jam flash_sm_wait_erase_sector ,mem_spi_write_flash_sm 
+0x6bfa 029162 call spid_unlock_flash 
+0x6bfb 029163 arg mem_spid_tbuf ,rega 
+0x6bfc 029164 jam 4 ,core_spid_txlen 
+0x6bfd 029165 fetch 3 ,mem_spi_write_addr 
+0x6bfe 029166 arg flash_command_sector_erase ,temp 
+0x6bff 029167 branch spid_write_flash_common 
+:      029169 spid_flash_wait_erase_sector:
+0x6c00 029170 call spid_init_flash 
+0x6c01 029171 call wait_spid_flash_done 
+0x6c02 029172 jam flash_sm_write_data ,mem_spi_write_flash_sm 
+0x6c03 029173 rtn 
+:      029176 spid_flash_write_data:
+0x6c04 029177 bpatch patch19_1 ,mem_patch19 
+0x6c05 029178 call spid_init_flash 
+0x6c06 029179 jam flash_sm_wait_write_data ,mem_spi_write_flash_sm 
+0x6c07 029180 call spid_unlock_flash 
+0x6c08 029181 call spid_flash_data_preserve 
+0x6c09 029182 call spid_write_flash 
+0x6c0a 029183 branch spid_flash_data_recover 
+:      029184 spid_flash_wait_write_data:
+0x6c0b 029185 call spid_init_flash 
+0x6c0c 029186 call spid_unlock_flash 
+0x6c0d 029187 setarg flash_read_satus 
+0x6c0e 029188 call spid_read_reg 
+0x6c0f 029189 rtnbit1 flash_status_wip 
+0x6c10 029190 jam flash_sm_no_buys ,mem_spi_write_flash_sm 
+0x6c11 029191 fetch 2 ,mem_cb_spi_flash_write_complate 
+0x6c12 029192 branch callback_func 
+:      029193 spid_flash_data_recover:
+0x6c13 029194 fetch 4 ,mem_temp 
+0x6c14 029195 fetcht 2 ,mem_spi_write_ptr 
+:      029196 spid_flash_data_recover_comm:
+0x6c15 029197 increase -4 ,temp 
+0x6c16 029198 istore 4 ,temp 
+0x6c17 029199 rtn 
+:      029201 spid_flash_data_preserve:
+0x6c18 029202 fetcht 2 ,mem_spi_write_ptr 
+0x6c19 029203 copy temp ,rega 
+0x6c1a 029204 increase -4 ,temp 
+0x6c1b 029205 ifetch 4 ,temp 
+0x6c1c 029206 store 4 ,mem_temp 
+0x6c1d 029207 fetcht 2 ,mem_spi_write_len 
+0x6c1e 029208 fetch 3 ,mem_spi_write_addr 
+0x6c1f 029209 rtn 
+:      029211 spid_init_flash:
+0x6c20 029212 bpatch patch19_2 ,mem_patch19 
+0x6c21 029213 call spi_gpio_init 
+0x6c22 029214 call twspi_disable 
+0x6c23 029215 setarg 0 
+0x6c24 029216 store 4 ,mem_spid_tbuf 
+0x6c25 029217 rtn 
+:      029219 spid_unlock_flash:
+0x6c26 029220 jam flash_command_write_enable ,mem_spid_tbuf 
+:      029221 spid_sendcmd_common:
+0x6c27 029222 setarg 0 
+0x6c28 029223 store 2 ,core_spid_rxlen 
+0x6c29 029224 setarg 1 
+0x6c2a 029225 store 2 ,core_spid_txlen 
+0x6c2b 029226 setarg mem_spid_tbuf 
+0x6c2c 029227 store 2 ,core_spid_txaddr 
+0x6c2d 029228 jam spid_start ,core_misc_ctrl 
+0x6c2e 029229 branch wait_spid_done 
+:      029231 spid_flash_release_form_powerdown:
+0x6c2f 029232 jam flash_command_release_from_powerdown ,mem_spid_tbuf 
+0x6c30 029233 branch spid_sendcmd_common 
+:      029235 spid_flash_powerdown:
+0x6c31 029236 jam flash_command_powerdown ,mem_spid_tbuf 
+0x6c32 029237 branch spid_sendcmd_common 
+:      029239 spid_write_flash_data:
+0x6c33 029240 store 3 ,mem_pdatatemp 
+0x6c34 029241 storet 2 ,mem_temp 
+0x6c35 029242 storer rega ,2 ,mem_rega 
+0x6c36 029243 bpatchx patch36_5 ,mem_patch36 
+0x6c37 029244 call spid_unlock_flash 
+0x6c38 029245 fetch 3 ,mem_pdatatemp 
+0x6c39 029246 fetcht 2 ,mem_temp 
+0x6c3a 029247 fetchr rega ,2 ,mem_rega 
+0x6c3b 029248 branch spid_write_flash 
+:      029251 spid_write_flash:
+0x6c3c 029252 increase 4 ,temp 
+0x6c3d 029253 storet 2 ,core_spid_txlen 
+0x6c3e 029254 arg flash_command_write_data ,temp 
+0x6c3f 029255 increase -4 ,rega 
+:      029257 spid_write_flash_common:
+0x6c40 029258 istoret 1 ,rega 
+0x6c41 029259 rshift16 pdata ,temp 
+0x6c42 029260 istoret 1 ,contw 
+0x6c43 029261 rshift8 pdata ,temp 
+0x6c44 029262 istoret 1 ,contw 
+0x6c45 029263 istore 1 ,contw 
+0x6c46 029264 deposit rega 
+0x6c47 029265 store 2 ,core_spid_txaddr 
+0x6c48 029266 setarg 0 
+0x6c49 029267 store 2 ,core_spid_rxlen 
+0x6c4a 029268 jam spid_start ,core_misc_ctrl 
+0x6c4b 029269 call wait_spid_done 
+0x6c4c 029270 branch wait_spid_flash_done 
+:      029274 spid_read_flash:
+0x6c4d 029275 storet 2 ,core_spid_rxlen 
+0x6c4e 029276 rshift16 pdata ,temp 
+0x6c4f 029277 storet 1 ,mem_addr_hi 
+0x6c50 029278 rshift8 pdata ,temp 
+0x6c51 029279 storet 1 ,mem_addr_mi 
+0x6c52 029280 store 1 ,mem_addr_lo 
+0x6c53 029281 setarg 4 
+0x6c54 029282 store 2 ,core_spid_txlen 
+0x6c55 029283 jam flash_command_read_data ,mem_spid_tbuf 
+0x6c56 029284 setarg mem_spid_tbuf 
+0x6c57 029285 store 2 ,core_spid_txaddr 
+0x6c58 029286 deposit rega 
+0x6c59 029287 store 2 ,core_spid_rxaddr 
+0x6c5a 029288 fetch 1 ,core_spid_ctrl 
+0x6c5b 029289 isolate0 15 ,rega 
+0x6c5c 029290 setflag true ,6 ,pdata 
+0x6c5d 029291 store 1 ,core_spid_ctrl 
+0x6c5e 029292 jam spid_start ,core_misc_ctrl 
+:      029293 spid_read_flash_wait:
+0x6c5f 029294 fetch 1 ,core_dma_status 
+0x6c60 029295 bbit1 7 ,spid_read_flash_wait 
+0x6c61 029296 arg spid_done ,queue 
+0x6c62 029297 branch wait_spid_done 
+:      029299 wait_spid_flash_done:
+0x6c63 029300 setarg 2000 
+0x6c64 029301 call sleep 
+0x6c65 029302 call spid_unlock_flash 
+0x6c66 029303 setarg mem_spid_rbuf 
+0x6c67 029304 store 2 ,core_spid_rxaddr 
+0x6c68 029305 setarg flash_read_satus 
+0x6c69 029306 call spid_read_reg 
+0x6c6a 029307 bbit1 flash_status_wip ,wait_spid_flash_done 
+0x6c6b 029308 rtn 
+:      029314 spid_load_flash:
+0x6c6c 029315 storet 2 ,core_spid_rxlen 
+0x6c6d 029316 setarg 4 
+0x6c6e 029317 store 2 ,core_spid_txlen 
+0x6c6f 029318 jam 3 ,mem_spid_tbuf 
+0x6c70 029319 setarg mem_spid_tbuf 
+0x6c71 029320 store 2 ,core_spid_txaddr 
+0x6c72 029321 deposit rega 
+0x6c73 029322 store 2 ,core_spid_rxaddr 
+0x6c74 029323 fetch 1 ,core_spid_ctrl 
+0x6c75 029324 isolate0 15 ,rega 
+0x6c76 029325 setflag true ,6 ,pdata 
+0x6c77 029326 store 1 ,core_spid_ctrl 
+0x6c78 029327 jam spid_start ,core_misc_ctrl 
+:      029328 spi_load_flash_wait:
+0x6c79 029329 fetch 1 ,core_dma_status 
+0x6c7a 029330 bbit1 7 ,spi_load_flash_wait 
+0x6c7b 029331 arg spid_done ,queue 
+0x6c7c 029332 call decrypt_code 
+0x6c7d 029333 call wait_spid_done 
+0x6c7e 029334 isolate1 spid_crcok ,pdata 
+0x6c7f 029335 call set_ucode_status 
+0x6c80 029336 fetch 1 ,mem_addr_hi 
+0x6c81 029337 lshift16 pdata ,regb 
+0x6c82 029338 fetch 2 ,mem_addr_mi 
+0x6c83 029339 byteswap pdata ,pdata 
+0x6c84 029340 ior regb ,pdata 
+0x6c85 029341 iadd temp ,pdata 
+0x6c86 029342 store 1 ,mem_addr_lo 
+0x6c87 029343 rshift8 pdata ,pdata 
+0x6c88 029344 byteswap pdata ,pdata 
+0x6c89 029345 store 2 ,mem_addr_hi 
+0x6c8a 029346 rtn 
+:      029348 spi_gpio_init:
+0x6c8b 029349 fetch 1 ,mem_spi_cs_gpio 
+0x6c8c 029350 fetcht 1 ,mem_spi_so_gpio 
+0x6c8d 029351 isub temp ,null 
+0x6c8e 029352 nbranch spi_pin_set ,zero 
+0x6c8f 029353 call spi_gpio_default_init 
+:      029355 spi_pin_set:
+0x6c90 029356 fetch 1 ,mem_spi_cs_gpio 
+0x6c91 029357 arg gpcfg_spid_ncs ,temp 
+0x6c92 029358 call gpio_config_function_int 
+0x6c93 029359 fetch 1 ,mem_spi_sclk_gpio 
+0x6c94 029360 arg gpcfg_spid_sck ,temp 
+0x6c95 029361 call gpio_config_function_int 
+0x6c96 029362 fetch 1 ,mem_spi_si_gpio 
+0x6c97 029363 arg gpcfg_spid_mosi ,temp 
+0x6c98 029364 call gpio_config_function_int 
+0x6c99 029365 fetch 1 ,mem_spi_so_gpio 
+0x6c9a 029366 arg gpcfg_spid_miso ,temp 
+0x6c9b 029367 branch gpio_config_function_int 
+:      029369 spi_gpio_default_init:
+0x6c9c 029370 jam 1 ,mem_spi_cs_gpio 
+0x6c9d 029371 jam 3 ,mem_spi_si_gpio 
+0x6c9e 029372 jam 0 ,mem_spi_so_gpio 
+0x6c9f 029373 jam 2 ,mem_spi_sclk_gpio 
+0x6ca0 029374 jam 11 ,mem_spi_wp_gpio 
+0x6ca1 029375 jam 10 ,mem_spi_hold_gpio 
+0x6ca2 029376 rtn 
+:      029379 soft_reset_chip:
+0x6ca3 029380 jam 1 ,core_reset 
+0x6ca4 029381 rtn 
+:      029387 iic_init_600khz:
+0x6ca5 029388 jam 5 ,core_iicd_scl_low 
+0x6ca6 029389 jam 7 ,core_iicd_scl_high 
+0x6ca7 029390 jam 7 ,core_iicd_start_setup 
+0x6ca8 029391 jam 7 ,core_iicd_start_hold 
+0x6ca9 029392 jam 7 ,core_iicd_stop_setup 
+0x6caa 029393 jam 5 ,core_iicd_data_setup 
+0x6cab 029394 jam 0 ,core_iicd_data_hold 
+0x6cac 029395 rtn 
+:      029397 iic_init_360khz:
+0x6cad 029398 jam 12 ,core_iicd_scl_low 
+0x6cae 029399 jam 13 ,core_iicd_scl_high 
+0x6caf 029400 jam 13 ,core_iicd_start_setup 
+0x6cb0 029401 jam 13 ,core_iicd_start_hold 
+0x6cb1 029402 jam 13 ,core_iicd_stop_setup 
+0x6cb2 029403 jam 12 ,core_iicd_data_setup 
+0x6cb3 029404 jam 0 ,core_iicd_data_hold 
+0x6cb4 029405 rtn 
+:      029407 iicd_init_pin:
+0x6cb5 029408 call iicd_eeprom_write_enable 
+:      029409 iicd_init_pin_scl_sda:
+0x6cb6 029410 fetch 1 ,mem_eeprom_scl_gpio 
+0x6cb7 029411 arg gpcfg_iic_scl | gpcfg_pullup ,temp 
+0x6cb8 029412 call gpio_config_function_int 
+0x6cb9 029413 fetch 1 ,mem_eeprom_sda_gpio 
+0x6cba 029414 arg gpcfg_iic_sda | gpcfg_pullup ,temp 
+0x6cbb 029415 branch gpio_config_function_int 
+:      029417 iicd_read_init_pin:
+0x6cbc 029418 call iicd_eeprom_write_disable 
+0x6cbd 029419 branch iicd_init_pin_scl_sda 
+:      029421 wait_iicd_done:
+0x6cbe 029422 fetch 1 ,core_dma_status 
+0x6cbf 029423 bbit0 iicd_done ,wait_iicd_done 
+0x6cc0 029424 rtn 
+:      029450 set_eeprom_size_2k:
+0x6cc1 029451 set1 mark_eeprom_size ,mark 
+0x6cc2 029452 jam 0x08 ,mem_eeprom_block_size 
+0x6cc3 029453 rtn 
+:      029455 clear_eeprom_size_2k:
+0x6cc4 029456 set0 mark_eeprom_size ,mark 
+0x6cc5 029457 jam 0x20 ,mem_eeprom_block_size 
+0x6cc6 029458 rtn 
+:      029461 iicd_read_eep_data_size_2k:
+0x6cc7 029462 fetch 1 ,mem_eeprom_base 
+0x6cc8 029463 iadd regb ,pdata 
+0x6cc9 029464 store 1 ,mem_addr_mi 
+0x6cca 029465 branch iicd_read_eep_size_2k 
+:      029467 iicd_read_eep_size_2k_lcadcode:
+0x6ccb 029468 fetch 2 ,mem_addr_mi 
+0x6ccc 029469 byteswap pdata ,pdata 
+0x6ccd 029470 store 1 ,mem_addr_mi 
+:      029475 iicd_read_eep_size_2k:
+0x6cce 029476 setarg 3 
+0x6ccf 029477 store 2 ,core_iicd_txlen 
+0x6cd0 029478 jam 0xa0 ,mem_iicd_tbuf 
+0x6cd1 029479 jam 0xa1 ,mem_iicd_tbuf + 2 
+0x6cd2 029480 branch iicd_read_eep_common 
+:      029486 iicd_write_protect_eep_data:
+0x6cd3 029487 storet 2 ,mem_temp 
+0x6cd4 029488 call iicd_eeprom_write_enable 
+0x6cd5 029489 fetcht 2 ,mem_temp 
+0x6cd6 029490 call iicd_write_eep_data 
+0x6cd7 029491 branch iicd_eeprom_write_disable 
+:      029493 iicd_eeprom_write_enable:
+0x6cd8 029494 fetch 1 ,mem_eeprom_wp_gpio 
+0x6cd9 029495 rtneq gpio_disable 
+0x6cda 029496 bbit0 6 ,iicd_wp_gpio_output_low 
+0x6cdb 029497 setarg 150000 
+0x6cdc 029498 call sleep 
+:      029499 iicd_wp_gpio_output_low:
+0x6cdd 029500 fetcht 1 ,mem_eeprom_wp_gpio 
+0x6cde 029501 branch gpio_out_active 
+:      029503 iicd_eeprom_write_disable:
+0x6cdf 029504 fetcht 1 ,mem_eeprom_wp_gpio 
+0x6ce0 029505 branch gpio_out_inactive 
+:      029510 iicd_read_eep_data:
+0x6ce1 029511 bpatch patch19_3 ,mem_patch19 
+0x6ce2 029512 bmark1 mark_eeprom_size ,iicd_read_eep_data_size_2k 
+0x6ce3 029513 fetch 2 ,mem_eeprom_base 
+0x6ce4 029514 iadd regb ,pdata 
+0x6ce5 029515 byteswap pdata ,pdata 
+0x6ce6 029516 store 2 ,mem_addr_mi 
+:      029519 iicd_read_eep:
+0x6ce7 029520 bpatch patch19_4 ,mem_patch19 
+0x6ce8 029521 bmark1 mark_eeprom_size ,iicd_read_eep_size_2k_lcadcode 
+0x6ce9 029522 setarg 4 
+0x6cea 029523 store 2 ,core_iicd_txlen 
+0x6ceb 029524 jam 0xa0 ,mem_iicd_tbuf 
+0x6cec 029525 jam 0xa1 ,mem_iicd_tbuf + 3 
+:      029526 iicd_read_eep_common:
+0x6ced 029527 setarg mem_iicd_tbuf 
+0x6cee 029528 store 2 ,core_iicd_txaddr 
+0x6cef 029529 storet 2 ,core_iicd_rxlen 
+0x6cf0 029530 storer rega ,2 ,core_iicd_rxaddr 
+0x6cf1 029531 setarg 2 
+0x6cf2 029532 isolate0 15 ,rega 
+0x6cf3 029533 setflag true ,0 ,pdata 
+0x6cf4 029534 store 1 ,core_iicd_ctrl 
+0x6cf5 029535 jam iicd_start ,core_misc_ctrl 
+0x6cf6 029536 arg iicd_done ,queue 
+0x6cf7 029537 call decrypt_code 
+0x6cf8 029538 call wait_iicd_done 
+0x6cf9 029539 isolate1 iicd_crcok ,pdata 
+0x6cfa 029540 call set_ucode_status 
+0x6cfb 029541 bmark1 mark_eeprom_size ,iicd_read_eep_load_code_size_2k 
+:      029542 iicd_inc_addr:
+0x6cfc 029543 fetch 2 ,mem_addr_mi 
+0x6cfd 029544 byteswap pdata ,pdata 
+0x6cfe 029545 iadd temp ,pdata 
+0x6cff 029546 byteswap pdata ,pdata 
+0x6d00 029547 store 2 ,mem_addr_mi 
+0x6d01 029548 rtn 
+:      029550 iicd_read_eep_load_code_size_2k:
+0x6d02 029551 fetch 1 ,mem_addr_mi 
+0x6d03 029552 iadd temp ,pdata 
+0x6d04 029553 byteswap pdata ,pdata 
+0x6d05 029554 store 2 ,mem_addr_mi 
+0x6d06 029555 rtn 
+:      029561 iicd_write_eep_data:
+0x6d07 029562 fetch 2 ,mem_eeprom_base 
+0x6d08 029563 iadd regb ,pdata 
+0x6d09 029566 store 2 ,mem_pdatatemp 
+0x6d0a 029567 bpatch patch19_5 ,mem_patch19 
+0x6d0b 029568 storet 2 ,mem_temp 
+0x6d0c 029569 storer rega ,2 ,mem_contr 
+:      029570 iicd_write_eep_loop:
+0x6d0d 029571 call iicd_eep_transparency 
+0x6d0e 029573 fetcht 2 ,mem_regb 
+0x6d0f 029574 fetchr rega ,2 ,mem_contr 
+0x6d10 029575 fetch 2 ,mem_pdatatemp 
+0x6d11 029577 call iicd_write_eep 
+0x6d12 029579 fetch 2 ,mem_regb 
+0x6d13 029580 fetcht 2 ,mem_contr 
+0x6d14 029581 iadd temp ,temp 
+0x6d15 029582 storet 2 ,mem_contr 
+0x6d16 029583 fetcht 2 ,mem_pdatatemp 
+0x6d17 029584 iadd temp ,temp 
+0x6d18 029585 storet 2 ,mem_pdatatemp 
+0x6d19 029586 fetch 2 ,mem_temp 
+0x6d1a 029587 nbranch iicd_write_eep_loop ,blank 
+0x6d1b 029588 rtn 
+:      029596 iicd_eep_transparency:
+0x6d1c 029597 bpatch patch19_6 ,mem_patch19 
+0x6d1d 029598 fetch 1 ,mem_eeprom_block_size 
+0x6d1e 029599 increase -1 ,pdata 
+0x6d1f 029600 fetcht 2 ,mem_pdatatemp 
+0x6d20 029601 ior temp ,pdata 
+0x6d21 029602 increase 1 ,pdata 
+0x6d22 029603 store 3 ,mem_regc 
+0x6d23 029605 fetch 2 ,mem_temp 
+0x6d24 029606 iadd temp ,pdata 
+0x6d25 029608 fetcht 3 ,mem_regc 
+0x6d26 029609 isub temp ,pdata 
+0x6d27 029610 nbranch iicd_eep_deal_short_packet ,positive 
+0x6d28 029611 store 2 ,mem_temp 
+0x6d29 029612 fetch 3 ,mem_regc 
+0x6d2a 029613 fetcht 2 ,mem_pdatatemp 
+0x6d2b 029614 isub temp ,pdata 
+0x6d2c 029615 store 2 ,mem_regb 
+0x6d2d 029616 rtn 
+:      029618 iicd_eep_deal_short_packet:
+0x6d2e 029619 fetch 2 ,mem_temp 
+0x6d2f 029620 store 2 ,mem_regb 
+0x6d30 029621 setarg 0 
+0x6d31 029622 store 2 ,mem_temp 
+0x6d32 029623 rtn 
+:      029625 iicd_write_eep_size_2k:
+0x6d33 029626 copy regb ,pdata 
+0x6d34 029627 increase 2 ,temp 
+0x6d35 029628 storet 2 ,core_iicd_txlen 
+0x6d36 029629 increase -2 ,rega 
+0x6d37 029630 ifetcht 3 ,rega 
+0x6d38 029631 copy temp ,regb 
+0x6d39 029632 arg 0xa0 ,temp 
+0x6d3a 029633 istoret 1 ,rega 
+0x6d3b 029634 istore 1 ,contw 
+0x6d3c 029635 branch iicd_write_eep_common 
+:      029638 iicd_write_eep:
+0x6d3d 029639 copy pdata ,regb 
+0x6d3e 029640 bpatch patch19_7 ,mem_patch19 
+0x6d3f 029641 bmark1 mark_eeprom_size ,iicd_write_eep_size_2k 
+0x6d40 029642 copy regb ,pdata 
+0x6d41 029643 increase 3 ,temp 
+0x6d42 029644 storet 2 ,core_iicd_txlen 
+0x6d43 029645 increase -3 ,rega 
+0x6d44 029646 ifetcht 3 ,rega 
+0x6d45 029647 copy temp ,regb 
+0x6d46 029648 arg 0xa0 ,temp 
+0x6d47 029649 istoret 1 ,rega 
+0x6d48 029650 byteswap pdata ,pdata 
+0x6d49 029651 istore 2 ,contw 
+:      029652 iicd_write_eep_common:
+0x6d4a 029653 storer rega ,2 ,core_iicd_txaddr 
+0x6d4b 029654 setarg 0 
+0x6d4c 029655 store 2 ,core_iicd_rxlen 
+0x6d4d 029656 jam 1 ,core_iicd_ctrl 
+0x6d4e 029657 jam iicd_start ,core_misc_ctrl 
+0x6d4f 029658 call wait_iicd_done 
+0x6d50 029659 istorer regb ,3 ,rega 
+:      029660 iic_check_eeprom_standby:
+0x6d51 029661 bpatch patch1a_0 ,mem_patch1a 
+0x6d52 029662 jam 0 ,mem_iicd_tbuf + 3 
+:      029663 iic_check_eeprom_standby_wait:
+0x6d53 029664 setarg 1 
+0x6d54 029665 store 2 ,core_iicd_txlen 
+0x6d55 029666 jam 0xa0 ,mem_iicd_tbuf 
+0x6d56 029667 setarg mem_iicd_tbuf 
+0x6d57 029668 store 2 ,core_iicd_txaddr 
+0x6d58 029669 setarg 0 
+0x6d59 029670 store 2 ,core_iicd_rxlen 
+0x6d5a 029671 store 2 ,core_iicd_rxaddr 
+0x6d5b 029672 setarg 3 
+0x6d5c 029673 store 1 ,core_iicd_ctrl 
+0x6d5d 029674 jam iicd_start ,core_misc_ctrl 
+0x6d5e 029675 call wait_iicd_done 
+0x6d5f 029676 fetch 1 ,core_dma_status 
+0x6d60 029677 rtnbit0 iicd_ack 
+0x6d61 029678 nop 1500 
+0x6d62 029679 fetch 1 ,mem_iicd_tbuf + 3 
+0x6d63 029680 increase 1 ,pdata 
+0x6d64 029681 store 1 ,mem_iicd_tbuf + 3 
+0x6d65 029682 sub pdata ,40 ,null 
+0x6d66 029683 nrtn positive 
+0x6d67 029684 branch iic_check_eeprom_standby_wait 
+:      029688 uarta_init_dma_mem:
+0x6d68 029689 call enable_user 
+0x6d69 029690 branch uart_init_dma_mem 
+:      029692 uart_init_dma_mem:
+0x6d6a 029693 rshift16 pdata ,temp 
+0x6d6b 029694 call uarta_init_rx ,user 
+0x6d6c 029695 rshift32 pdata ,pdata 
+0x6d6d 029696 rshift16 pdata ,temp 
+0x6d6e 029697 call uarta_init_tx ,user 
+0x6d6f 029698 fetch 2 ,core_clkoff 
+0x6d70 029699 set0 clock_off_uart ,pdata 
+0x6d71 029700 store 2 ,core_clkoff 
+0x6d72 029701 rtn 
+:      029704 uarta_init_baud_rate:
+0x6d73 029705 store uart_baud_len ,core_uart_baud 
+0x6d74 029706 rtn 
+:      029709 uarta_calc_baud_rate_config:
+0x6d75 029710 call uart_calc_baud_rate_config 
+0x6d76 029711 branch uarta_init_baud_rate 
+:      029714 uart_calc_baud_rate_config:
+0x6d77 029715 call uart_calc_baud_rate_config_choice_uart_clock 
+0x6d78 029716 idiv temp 
+0x6d79 029717 call wait_div_end 
+0x6d7a 029718 quotient pdata 
+0x6d7b 029719 rtn 
+:      029721 uart_calc_baud_rate_config_choice_uart_clock:
+0x6d7c 029722 fetch 1 ,core_uart_clksel 
+0x6d7d 029723 bbit0 uart_clock_select_bit ,uart_calc_baud_rate_config_choice_uart_clock_crystal 
+0x6d7e 029724 setarg uart_clock_freq_48m 
+0x6d7f 029725 rtn 
+:      029726 uart_calc_baud_rate_config_choice_uart_clock_crystal:
+0x6d80 029727 setarg uart_clock_freq_24m 
+0x6d81 029728 rtn 
+:      029730 uart_clock_select_main_freq_crystal:
+0x6d82 029731 fetch 1 ,core_uart_clksel 
+0x6d83 029732 and pdata ,uart_clock_select_crystal ,pdata 
+0x6d84 029733 store 1 ,core_uart_clksel 
+0x6d85 029734 rtn 
+:      029736 uart_clock_select_main_freq_dpll:
+0x6d86 029737 fetch 1 ,core_uart_clksel 
+0x6d87 029738 or pdata ,uart_clock_select_dpll ,pdata 
+0x6d88 029739 store 1 ,core_uart_clksel 
+0x6d89 029740 rtn 
+:      029744 uarta_init_tx:
+0x6d8a 029745 store 2 ,core_uart_tsaddr 
+0x6d8b 029746 store 2 ,core_uart_twptr 
+0x6d8c 029747 storet 2 ,core_uart_teaddr 
+0x6d8d 029748 rtn 
+:      029751 uarta_init_rx:
+0x6d8e 029752 store 2 ,core_uart_rsaddr 
+0x6d8f 029753 store 2 ,core_uart_rrptr 
+0x6d90 029754 storet 2 ,core_uart_readdr 
+0x6d91 029755 rtn 
+:      029757 uarta_prepare_tx:
+0x6d92 029758 fetchr contus ,2 ,core_uart_tsaddr 
+0x6d93 029759 fetchr contue ,2 ,core_uart_teaddr 
+0x6d94 029760 fetchr contu ,2 ,core_uart_twptr 
+0x6d95 029761 rtn 
+:      029763 uarta_prepare_rx:
+0x6d96 029764 fetchr contus ,2 ,core_uart_rsaddr 
+0x6d97 029765 fetchr contue ,2 ,core_uart_readdr 
+0x6d98 029766 fetchr contu ,2 ,core_uart_rrptr 
+0x6d99 029767 rtn 
+:      029769 uarta_send:
+0x6d9a 029770 storer contu ,2 ,core_uart_twptr 
+0x6d9b 029771 rtn 
+:      029773 uarta_rxdone:
+0x6d9c 029774 storer contu ,2 ,core_uart_rrptr 
+0x6d9d 029775 rtn 
+:      029777 uarta_clear_current_rx:
+0x6d9e 029778 call uarta_prepare_rx 
+0x6d9f 029779 fetch 2 ,core_uart_rxitems 
+0x6da0 029780 iadd contu ,contu 
+0x6da1 029781 branch uarta_rxdone 
+:      029783 uarta_prepare_tx_register_push:
+0x6da2 029784 call uart_register_push 
+0x6da3 029785 branch uarta_prepare_tx 
+:      029787 uarta_send_register_pop:
+0x6da4 029788 call uarta_send 
+0x6da5 029789 branch uart_register_pop 
+:      029792 uart_register_push:
+0x6da6 029793 storer contu ,2 ,mem_contu 
+0x6da7 029794 storer contus ,2 ,mem_contue 
+0x6da8 029795 storer contue ,2 ,mem_contus 
+0x6da9 029796 rtn 
+:      029798 uart_register_pop:
+0x6daa 029799 fetchr contu ,2 ,mem_contu 
+0x6dab 029800 fetchr contus ,2 ,mem_contue 
+0x6dac 029801 fetchr contue ,2 ,mem_contus 
+0x6dad 029802 rtn 
+:      029804 wait_uarttx:
+0x6dae 029805 fetch 2 ,core_uart_txitems 
+0x6daf 029806 nbranch wait_uarttx ,blank 
+0x6db0 029807 rtn 
+:      029809 uart_copy_tx_bytes_fast:
+0x6db1 029810 deposit loopcnt 
+0x6db2 029811 rtn blank 
+:      029812 uart_copy_tx_bytes_fast_loop:
+0x6db3 029813 increase -8 ,loopcnt 
+0x6db4 029814 call uart_tx_8_bytes ,positive 
+0x6db5 029815 rtn zero 
+0x6db6 029816 branch uart_copy_tx_bytes_fast_loop ,positive 
+0x6db7 029817 increase 8 ,loopcnt 
+:      029818 uart_copy_tx_bytes_fast_loop_four:
+0x6db8 029819 increase -4 ,loopcnt 
+0x6db9 029820 call uart_tx_4_bytes ,positive 
+0x6dba 029821 rtn zero 
+0x6dbb 029822 branch uart_copy_tx_bytes_fast_loop_four ,positive 
+0x6dbc 029823 increase 4 ,loopcnt 
+0x6dbd 029824 branch uart_copy_tx_bytes 
+:      029826 uart_tx_8_bytes:
+0x6dbe 029827 ifetch 8 ,contr 
+0x6dbf 029828 istore 8 ,contu 
+0x6dc0 029829 rtn 
+:      029831 uart_tx_4_bytes:
+0x6dc1 029832 ifetch 4 ,contr 
+0x6dc2 029833 istore 4 ,contu 
+0x6dc3 029834 rtn 
+:      029836 uart_copy_tx_bytes:
+0x6dc4 029837 deposit loopcnt 
+0x6dc5 029838 rtn blank 
+:      029839 uart_copy_tx_bytes_loop:
+0x6dc6 029840 ifetch 1 ,contr 
+0x6dc7 029841 istore 1 ,contu 
+0x6dc8 029842 loop uart_copy_tx_bytes_loop 
+0x6dc9 029843 rtn 
+:      029845 uart_copy_rx_bytes_fast:
+0x6dca 029846 deposit loopcnt 
+0x6dcb 029847 rtn blank 
+:      029848 uart_copy_rx_bytes_fast_loop:
+0x6dcc 029849 increase -8 ,loopcnt 
+0x6dcd 029850 call uart_rx_8_bytes ,positive 
+0x6dce 029851 rtn zero 
+0x6dcf 029852 branch uart_copy_rx_bytes_fast_loop ,positive 
+0x6dd0 029853 increase 8 ,loopcnt 
+:      029854 uart_copy_rx_bytes_fast_loop_four:
+0x6dd1 029855 increase -4 ,loopcnt 
+0x6dd2 029856 call uart_rx_4_bytes ,positive 
+0x6dd3 029857 rtn zero 
+0x6dd4 029858 branch uart_copy_rx_bytes_fast_loop_four ,positive 
+0x6dd5 029859 increase 4 ,loopcnt 
+0x6dd6 029860 branch uart_copy_rx_bytes 
+:      029863 uart_rx_8_bytes:
+0x6dd7 029864 ifetch 8 ,contu 
+0x6dd8 029865 istore 8 ,contw 
+0x6dd9 029866 rtn 
+:      029868 uart_rx_4_bytes:
+0x6dda 029869 ifetch 4 ,contu 
+0x6ddb 029870 istore 4 ,contw 
+0x6ddc 029871 rtn 
+:      029874 uart_copy_rx_bytes:
+0x6ddd 029875 deposit loopcnt 
+0x6dde 029876 rtn blank 
+:      029877 uart_copy_rx_bytes_loop:
+0x6ddf 029878 ifetch 1 ,contu 
+0x6de0 029879 istore 1 ,contw 
+0x6de1 029880 loop uart_copy_rx_bytes_loop 
+0x6de2 029881 rtn 
+:      029886 app_store_nvram_event:
+0x6de3 029887 jam bt_evt_store_nvram ,mem_fifo_temp 
+0x6de4 029888 branch ui_ipc_send_event 
+:      029890 check_51cmd_update_device_record:
+0x6de5 029891 bpatch patch1a_1 ,mem_patch1a 
+0x6de6 029892 fetch 1 ,mem_nv_data_number 
+0x6de7 029893 rtn blank 
+0x6de8 029894 call check_nvram 
+0x6de9 029895 call init_device_list ,zero 
+0x6dea 029896 call disable_user2 
+0x6deb 029897 call nvram_find_addr_from_bd_list 
+:      029898 write_device_record:
+0x6dec 029899 fetch 1 ,mem_nv_data_number 
+0x6ded 029900 icopy regc 
+0x6dee 029901 fetcht 2 ,mem_nv_data_ptr 
+0x6def 029902 storet 2 ,mem_list_item_ptr 
+:      029903 write_device_loop_find:
+0x6df0 029904 copy regc ,pdata 
+0x6df1 029905 branch app_store_nvram_event ,blank 
+0x6df2 029906 increase -1 ,regc 
+0x6df3 029907 copy temp ,rega 
+0x6df4 029908 ifetch 1 ,rega 
+0x6df5 029909 fetcht 1 ,mem_select_list_item 
+0x6df6 029910 isub temp ,null 
+0x6df7 029911 call set_index_finded_device ,zero 
+0x6df8 029912 branch write_device_loop_find0 ,positive 
+0x6df9 029913 ifetch 1 ,rega 
+0x6dfa 029914 increase 1 ,pdata 
+0x6dfb 029915 istore 1 ,rega 
+:      029916 write_device_loop_find0:
+0x6dfc 029917 fetcht 2 ,mem_list_item_ptr 
+0x6dfd 029918 increase nv_data_len ,temp 
+0x6dfe 029919 storet 2 ,mem_list_item_ptr 
+0x6dff 029920 branch write_device_loop_find 
+:      029922 set_index_finded_device:
+0x6e00 029923 setarg 0 
+0x6e01 029924 istore 1 ,rega 
+0x6e02 029925 fetch 1 ,mem_temp_reconn_record 
+0x6e03 029926 istore 1 ,contw 
+0x6e04 029927 bne rec_3_mode ,set_index_finded_device_ble_mode 
+:      029929 set_index_find_device_master_addr:
+0x6e05 029930 ifetch 6 ,contr 
+0x6e06 029931 istore 8 ,contw 
+0x6e07 029932 setarg 0 
+0x6e08 029933 istore 8 ,contw 
+0x6e09 029934 copy regb ,contr 
+:      029935 store_rec_data_common:
+0x6e0a 029936 call memcpy16 
+0x6e0b 029937 force 1 ,null 
+0x6e0c 029938 rtn 
+:      029940 set_index_finded_device_ble_mode:
+0x6e0d 029941 beq rec_4_mode_random_resolvable_private_address ,set_index_finded_device_irk 
+0x6e0e 029942 beq rec_4_mode_random_non_resolvable_private_address ,set_index_finded_device_ediv 
+0x6e0f 029943 arg mem_le_ltk ,regb 
+0x6e10 029944 branch set_index_find_device_master_addr 
+:      029946 set_index_finded_device_irk:
+0x6e11 029947 arg mem_le_irk ,contr 
+0x6e12 029948 call memcpy16 
+:      029949 store_ble_rec_data_common:
+0x6e13 029950 arg mem_le_ltk ,contr 
+0x6e14 029951 branch store_rec_data_common 
+:      029953 set_index_finded_device_ediv:
+0x6e15 029954 arg mem_le_rand ,contr 
+0x6e16 029955 call memcpy16 
+0x6e17 029956 branch store_ble_rec_data_common 
+:      029961 nvram_find_addr_from_bd_list:
+0x6e18 029962 bpatch patch1a_2 ,mem_patch1a 
+0x6e19 029963 call disable_user 
+0x6e1a 029964 fetch 1 ,mem_nv_data_number 
+0x6e1b 029965 rtn blank 
+0x6e1c 029966 bpatch patch1a_3 ,mem_patch1a 
+0x6e1d 029967 fetch 2 ,mem_ui_state_map 
+0x6e1e 029968 rtnbit0 ui_state_ble_connected 
+:      029969 find_addr_from_bd_list_ble_mode:
+0x6e1f 029970 fetch 1 ,mem_le_conn_peer_addr_type 
+0x6e20 029971 beq master_public_addr ,find_addr_from_bd_list_public_device_addr 
+0x6e21 029972 fetch 1 ,mem_le_plap + 5 
+0x6e22 029973 compare 0xc0 ,pdata ,0xc0 
+0x6e23 029974 branch find_addr_from_bd_list_static_addr ,true 
+0x6e24 029975 compare 0x40 ,pdata ,0xc0 
+0x6e25 029976 branch find_addr_from_bd_list_random_addr ,true 
+0x6e26 029977 branch find_addr_from_bd_list_random_non_resolvable_private_address_sc_or_legacy 
+:      029979 find_addr_from_bd_list_static_addr:
+0x6e27 029980 branch find_addr_from_bd_list_static_addr_reconnect ,user2 
+0x6e28 029981 fetch 1 ,mem_le_preq_init_key_distribution 
+0x6e29 029982 bbit0 le_initator_irk_bit ,find_addr_from_bd_list_public_device_addr 
+0x6e2a 029983 branch find_addr_from_bd_list_static_addr_sc_or_legacy 
+:      029985 find_addr_from_bd_list_static_addr_reconnect:
+0x6e2b 029986 call find_addr_from_bd_list_public_device_addr 
+0x6e2c 029987 rtn user 
+0x6e2d 029988 branch find_addr_from_bd_list_static_addr_sc_or_legacy 
+:      029991 find_addr_from_bd_list_static_addr_sc_or_legacy:
+:      029992 find_addr_from_bd_list_random_non_resolvable_private_address_sc_or_legacy:
+0x6e2e 029993 fetch 1 ,mem_le_pairing_mode 
+0x6e2f 029994 bbit1 le_pairing_mode_secure_connect_bit ,find_addr_from_bd_list_random_non_resolvable_private_address_sc 
+0x6e30 029995 branch find_addr_from_bd_list_random_non_resolvable_private_address 
+:      029997 find_addr_from_bd_list_static_addr_sc:
+:      029998 find_addr_from_bd_list_random_non_resolvable_private_address_sc:
+0x6e31 029999 fetch 6 ,mem_le_plap 
+0x6e32 030000 store 8 ,mem_le_rand 
+0x6e33 030001 branch find_addr_from_bd_list_random_non_resolvable_private_address 
+:      030004 find_addr_from_bd_list_public_device_addr:
+0x6e34 030005 jam rec_4_mode_static_address ,mem_temp_reconn_record 
+0x6e35 030006 fetch 6 ,mem_le_plap 
+0x6e36 030007 branch find_addr_from_bd_list_common 
+:      030009 find_addr_from_bd_list_random_non_resolvable_private_address:
+0x6e37 030010 jam rec_4_mode_random_non_resolvable_private_address ,mem_temp_reconn_record 
+0x6e38 030011 branch find_addr_from_bd_list_common 
+:      030014 find_addr_from_bd_list_random_addr:
+0x6e39 030015 jam rec_4_mode_random_resolvable_private_address ,mem_temp_reconn_record 
+0x6e3a 030016 branch find_addr_from_bd_list_common 
+:      030018 find_addr_from_bd_list_common:
+0x6e3b 030019 bpatch patch1a_4 ,mem_patch1a 
+0x6e3c 030021 fetch 2 ,mem_nv_data_ptr 
+0x6e3d 030022 ifetcht 1 ,pdata 
+0x6e3e 030023 pincrease 1 
+0x6e3f 030024 store 2 ,mem_list_item_ptr 
+0x6e40 030025 storet 1 ,mem_select_list_item 
+0x6e41 030026 fetch 1 ,mem_nv_data_number 
+0x6e42 030027 icopy regc 
+:      030028 nvram_find_addr_from_list:
+0x6e43 030029 fetch 2 ,mem_list_item_ptr 
+0x6e44 030030 copy pdata ,rega 
+0x6e45 030031 call nvram_find_addr_from_list_compare 
+0x6e46 030032 rtn user 
+0x6e47 030033 fetcht 2 ,mem_list_item_ptr 
+0x6e48 030034 increase nv_data_len ,temp 
+0x6e49 030035 storet 2 ,mem_list_item_ptr 
+0x6e4a 030036 increase -1 ,temp 
+0x6e4b 030037 ifetch 1 ,temp 
+0x6e4c 030038 store 1 ,mem_select_list_item 
+0x6e4d 030039 increase -1 ,regc 
+0x6e4e 030040 nbranch nvram_find_addr_from_list ,zero 
+0x6e4f 030041 fetch 1 ,mem_nv_data_number 
+0x6e50 030042 pincrease decreased_one 
+0x6e51 030043 store 1 ,mem_select_list_item 
+0x6e52 030044 rtn 
+:      030045 nvram_find_addr_from_list_compare:
+0x6e53 030046 fetch 1 ,mem_temp_reconn_record 
+0x6e54 030047 bne rec_3_mode ,find_addr_from_list_compare_ble_mode 
+:      030048 find_master_addr_from_list_compare:
+0x6e55 030049 arg mem_temp_reconn_record ,regb 
+0x6e56 030050 arg 7 ,loopcnt 
+0x6e57 030051 call string_compare 
+0x6e58 030052 branch enable_user ,zero 
+0x6e59 030053 rtn 
+:      030055 find_addr_from_list_compare_ble_mode:
+0x6e5a 030056 beq rec_4_mode_random_resolvable_private_address ,find_irk_form_list_compare 
+0x6e5b 030057 beq rec_4_mode_random_non_resolvable_private_address ,find_ediv_form_list_compare 
+0x6e5c 030058 branch find_master_addr_from_list_compare 
+:      030060 find_irk_form_list_compare:
+0x6e5d 030061 ifetcht 1 ,rega 
+0x6e5e 030062 isub temp ,null 
+0x6e5f 030063 nrtn zero 
+0x6e60 030064 arg mem_le_prand ,contw 
+0x6e61 030065 arg 16 ,loopcnt 
+0x6e62 030066 call clear_mem 
+0x6e63 030067 fetch 3 ,mem_le_plap + 3 
+0x6e64 030068 store 3 ,mem_le_prand 
+0x6e65 030069 call genernate_master_macaddress 
+0x6e66 030070 fetch 2 ,mem_le_aes_128 + 13 
+0x6e67 030071 byteswap pdata ,pdata 
+0x6e68 030072 lshift8 pdata ,temp 
+0x6e69 030073 ifetch 1 ,contr 
+0x6e6a 030074 iadd temp ,pdata 
+0x6e6b 030075 fetcht 3 ,mem_le_plap 
+0x6e6c 030076 isub temp ,null 
+0x6e6d 030077 branch enable_user ,zero 
+0x6e6e 030078 rtn 
+:      030081 genernate_master_macaddress:
+0x6e6f 030082 arg mem_le_prand ,contr 
+0x6e70 030083 call load_data128 
+0x6e71 030085 ifetch 1 ,rega 
+0x6e72 030086 call load_regext 
+0x6e73 030087 force 0x38 ,aes_ctrl 
+0x6e74 030088 force 0x0 ,aes_ctrl 
+0x6e75 030089 call wait_aes 
+0x6e76 030090 arg mem_le_aes_128 ,contw 
+0x6e77 030091 branch store_aes_result 
+:      030093 find_ediv_form_list_compare:
+0x6e78 030094 ifetcht 1 ,rega 
+0x6e79 030095 isub temp ,null 
+0x6e7a 030096 nrtn zero 
+0x6e7b 030097 copy contr ,rega 
+0x6e7c 030098 add contr ,8 ,regc 
+0x6e7d 030099 arg mem_le_rand ,regb 
+0x6e7e 030100 arg 8 ,loopcnt 
+0x6e7f 030101 call string_compare 
+0x6e80 030102 branch enable_user ,zero 
+0x6e81 030103 copy regc ,rega 
+0x6e82 030104 arg mem_le_irk ,regb 
+0x6e83 030105 arg 8 ,loopcnt 
+0x6e84 030106 call string_compare 
+0x6e85 030107 branch enable_user ,zero 
+0x6e86 030108 rtn 
+:      030110 check_nvram:
+0x6e87 030111 fetch 2 ,mem_nv_data_ptr 
+0x6e88 030112 ifetcht 1 ,pdata 
+0x6e89 030113 pincrease nv_data_len 
+0x6e8a 030114 ifetch 1 ,pdata 
+0x6e8b 030115 isub temp ,null 
+0x6e8c 030116 rtn 
+:      030118 init_device_list:
+0x6e8d 030119 fetch 1 ,mem_nv_data_number 
+0x6e8e 030120 icopy loopcnt 
+0x6e8f 030121 fetcht 2 ,mem_nv_data_ptr 
+0x6e90 030122 setarg 0 
+:      030123 init_device_list_loop:
+0x6e91 030124 istore 1 ,temp 
+0x6e92 030125 increase nv_data_len ,temp 
+0x6e93 030126 pincrease 1 
+0x6e94 030127 loop init_device_list_loop 
+0x6e95 030128 rtn 
+:      030130 load_device_list_mode_4:
+0x6e96 030133 call enable_user2 
+0x6e97 030134 call nvram_find_addr_from_bd_list 
+0x6e98 030135 nbranch clear_ltk_exists ,user 
+0x6e99 030136 fetch 2 ,mem_list_item_ptr 
+0x6e9a 030137 add pdata ,1 ,contr 
+0x6e9b 030138 arg mem_le_irk ,contw 
+0x6e9c 030139 call memcpy16 
+0x6e9d 030140 arg mem_le_ltk ,contw 
+0x6e9e 030141 call memcpy16 
+0x6e9f 030142 jam 1 ,mem_ltk_exists 
+0x6ea0 030143 rtn 
+:      030145 clear_ltk_exists:
+0x6ea1 030146 jam 0 ,mem_ltk_exists 
+0x6ea2 030147 rtn 
+:      030150 eeprom_store_le_reconn_info:
+0x6ea3 030151 jam rec_4_mode ,mem_record_bt_mode 
+0x6ea4 030152 branch eeprom_store_reconn_info 
+:      030154 eeprom_store_reconn_info:
+0x6ea5 030155 fetch 1 ,mem_device_option 
+0x6ea6 030156 beq dvc_op_module ,check_51cmd_update_device_record 
+0x6ea7 030157 beq dvc_op_mouse ,mouse_store_remote_bdaddr 
+0x6ea8 030158 rtn 
+:      030164 get_gpio_wakeup_index:
+0x6ea9 030165 and temp ,0x1f ,pdata 
+0x6eaa 030166 rshift pdata ,pdata 
+0x6eab 030167 arg mem_gpio_wakeup_cfg ,contw 
+0x6eac 030168 iadd contw ,contw 
+0x6ead 030169 arg 0xf0 ,alarm 
+0x6eae 030170 isolate0 0 ,temp 
+0x6eaf 030171 rtn true 
+0x6eb0 030172 arg 0xf ,alarm 
+0x6eb1 030173 rtn 
+:      030176 gpio_set_wake_by_current_state:
+0x6eb2 030177 bpatch patch1a_5 ,mem_patch1a 
+0x6eb3 030178 set1 gpio_active_bit ,temp 
+0x6eb4 030179 call gpio_get_bit 
+0x6eb5 030180 nsetflag true ,gpio_active_bit ,temp 
+:      030183 gpio_set_wake:
+0x6eb6 030184 bpatch patch1a_6 ,mem_patch1a 
+0x6eb7 030185 sub temp ,ui_button_gpio_disable ,null 
+0x6eb8 030186 rtn zero 
+0x6eb9 030187 arg 4 ,debug 
+0x6eba 030188 isolate1 gpio_active_bit ,temp 
+0x6ebb 030189 branch gpio_set_wake_high ,true 
+0x6ebc 030190 arg 2 ,debug 
+:      030191 gpio_set_wake_high:
+0x6ebd 030192 call get_gpio_wakeup_index 
+0x6ebe 030193 isolate0 0 ,temp 
+0x6ebf 030194 branch gpio_set_wake_low4bit ,true 
+0x6ec0 030195 lshift4 debug ,debug 
+:      030196 gpio_set_wake_low4bit:
+0x6ec1 030197 ifetch 1 ,contw 
+0x6ec2 030198 iand alarm ,pdata 
+0x6ec3 030199 ior debug ,pdata 
+0x6ec4 030200 istore 1 ,contw 
+0x6ec5 030201 rtn 
+:      030204 gpio_set_low_pullup:
+0x6ec6 030205 bpatch patch1a_7 ,mem_patch1a 
+0x6ec7 030206 sub temp ,ui_button_gpio_disable ,null 
+0x6ec8 030207 rtn zero 
+0x6ec9 030208 arg 1 ,debug 
+0x6eca 030209 call get_gpio_wakeup_index 
+0x6ecb 030210 isolate0 0 ,temp 
+0x6ecc 030211 branch gpio_set_low_pullup_low4bit ,true 
+0x6ecd 030212 lshift4 debug ,debug 
+:      030213 gpio_set_low_pullup_low4bit:
+0x6ece 030214 ifetch 1 ,contw 
+0x6ecf 030215 iand alarm ,pdata 
+0x6ed0 030216 ior debug ,pdata 
+0x6ed1 030217 istore 1 ,contw 
+0x6ed2 030218 rtn 
+:      030223 gpio_clr_wake:
+0x6ed3 030224 bpatch patch1b_0 ,mem_patch1b 
+0x6ed4 030225 sub temp ,ui_button_gpio_disable ,null 
+0x6ed5 030226 rtn zero 
+0x6ed6 030227 call get_gpio_wakeup_index 
+0x6ed7 030228 ifetch 1 ,contw 
+0x6ed8 030229 iand alarm ,pdata 
+0x6ed9 030230 istore 1 ,contw 
+0x6eda 030231 rtn 
+:      030233 gpio_config_input_nowake:
+0x6edb 030234 call gpio_clr_wake 
+0x6edc 030235 branch gpio_config_input_without_wake 
+:      030238 gpio_config_input:
+0x6edd 030239 sub temp ,ui_button_gpio_disable ,null 
+0x6ede 030240 rtn zero 
+0x6edf 030241 ncall gpio_set_wake ,wake 
+:      030242 gpio_config_input_without_wake:
+0x6ee0 030243 call gpio_addr 
+0x6ee1 030244 setarg 0 
+0x6ee2 030245 isolate1 gpio_active_bit ,temp 
+0x6ee3 030246 nsetflag true ,6 ,pdata 
+0x6ee4 030247 setflag true ,7 ,pdata 
+0x6ee5 030248 branch gpio_write 
+:      030251 gpio_get_bit:
+0x6ee6 030252 bpatch patch1b_1 ,mem_patch1b 
+0x6ee7 030253 arg core_gpio_in ,contw 
+0x6ee8 030254 and temp ,0x07 ,queue 
+0x6ee9 030255 rshift3 temp ,pdata 
+0x6eea 030256 and_into 3 ,pdata 
+0x6eeb 030257 iadd contw ,contw 
+0x6eec 030258 ifetch 1 ,contw 
+0x6eed 030259 isolate1 gpio_active_bit ,temp 
+0x6eee 030260 branch gpio_get_bit_reverse ,true 
+0x6eef 030261 qisolate0 pdata 
+0x6ef0 030262 rtn 
+:      030263 gpio_get_bit_reverse:
+0x6ef1 030264 qisolate1 pdata 
+0x6ef2 030265 rtn 
+:      030268 gpio_out_inactive:
+0x6ef3 030269 sub temp ,ui_button_gpio_disable ,null 
+0x6ef4 030270 rtn zero 
+0x6ef5 030271 isolate1 gpio_active_bit ,null 
+0x6ef6 030272 branch gpio_out_flag 
+:      030274 gpio_config_output:
+:      030275 gpio_out_active:
+0x6ef7 030276 sub temp ,ui_button_gpio_disable ,null 
+0x6ef8 030277 rtn zero 
+0x6ef9 030278 isolate0 gpio_active_bit ,null 
+:      030281 gpio_out_flag:
+0x6efa 030282 setarg 0 
+0x6efb 030283 nsetflag true ,gpio_active_bit ,pdata 
+0x6efc 030284 ixor temp ,temp 
+:      030287 gpio_out:
+0x6efd 030288 call gpio_addr 
+0x6efe 030289 setarg gpcfg_output_high 
+0x6eff 030290 isolate1 gpio_active_bit ,temp 
+0x6f00 030291 setflag true ,0 ,pdata 
+0x6f01 030292 branch gpio_write 
+:      030295 gpio_check_active:
+0x6f02 030296 sub temp ,ui_button_gpio_disable ,null 
+0x6f03 030297 branch disable_true ,zero 
+0x6f04 030298 call gpio_addr 
+0x6f05 030299 ifetch 1 ,contw 
+0x6f06 030300 bbit1 0 ,gpio_check_active_high 
+0x6f07 030301 isolate0 gpio_active_bit ,temp 
+0x6f08 030302 rtn 
+:      030303 gpio_check_active_high:
+0x6f09 030304 isolate1 gpio_active_bit ,temp 
+0x6f0a 030305 rtn 
+:      030307 gpio_set_analog:
+0x6f0b 030308 call gpio_addr 
+0x6f0c 030309 setarg gpcfg_no_ie 
+:      030310 gpio_write:
+0x6f0d 030311 istore 1 ,contw 
+0x6f0e 030312 rtn 
+:      030314 gpio_set_high_impedance:
+0x6f0f 030315 sub temp ,ui_button_gpio_disable ,null 
+0x6f10 030316 rtn zero 
+0x6f11 030317 call gpio_addr 
+0x6f12 030318 setarg gpcfg_high_impedance 
+0x6f13 030319 branch gpio_write 
+:      030321 gpio_addr:
+0x6f14 030322 and temp ,0x3f ,pdata 
+0x6f15 030323 sub pdata ,gpio_number + -1 ,null 
+0x6f16 030324 nbranch gpio_addr_ext ,positive 
+0x6f17 030325 arg core_gpio_conf ,contw 
+:      030326 gpio_addr_next:
+0x6f18 030327 iadd contw ,contw 
+0x6f19 030328 rtn 
+:      030329 gpio_addr_ext:
+0x6f1a 030330 arg core_gpio_conf_hi ,contw 
+0x6f1b 030331 increase -16 ,pdata 
+0x6f1c 030332 branch gpio_addr_next 
+:      030335 gpio_config_param:
+0x6f1d 030336 and pdata ,0xff ,temp 
+0x6f1e 030337 rshift8 pdata ,pdata 
+0x6f1f 030338 branch gpio_config_function_int 
+:      030341 gpio_config_function:
+0x6f20 030342 rtnbit0 gpio_active_bit 
+:      030343 gpio_config_function_int:
+0x6f21 030344 and_into 0x3f ,pdata 
+0x6f22 030345 sub pdata ,gpio_number + -1 ,null 
+0x6f23 030346 nbranch gpio_config_function_int_ext ,positive 
+0x6f24 030347 arg core_gpio_conf ,contw 
+:      030348 gpio_config_function_int_next:
+0x6f25 030349 iadd contw ,contw 
+0x6f26 030350 istoret 1 ,contw 
+0x6f27 030351 rtn 
+:      030352 gpio_config_function_int_ext:
+0x6f28 030353 arg core_gpio_conf_hi ,contw 
+0x6f29 030354 increase -16 ,pdata 
+0x6f2a 030355 branch gpio_config_function_int_next 
+:      030359 gpio_get_config:
+0x6f2b 030360 and_into 0x3f ,temp 
+0x6f2c 030361 sub temp ,gpio_number + -1 ,null 
+0x6f2d 030362 nbranch gpio_get_config_ext ,positive 
+0x6f2e 030363 setarg core_gpio_conf 
+:      030364 gpio_get_config_next:
+0x6f2f 030365 iadd temp ,contr 
+0x6f30 030366 ifetch 1 ,contr 
+0x6f31 030367 rtn 
+:      030368 gpio_get_config_ext:
+0x6f32 030369 setarg core_gpio_conf_hi 
+0x6f33 030370 increase -16 ,temp 
+0x6f34 030371 branch gpio_get_config_next 
+:      030375 gpio_set_before_lpm:
+0x6f35 030376 arg gpio_number ,loopcnt 
+0x6f36 030377 arg core_gpio_conf ,contr 
+:      030378 setgpio_loop:
+0x6f37 030379 copy contr ,contw 
+0x6f38 030380 ifetch 1 ,contr 
+0x6f39 030381 beq gpcfg_spid_miso ,setgpio_pullup 
+0x6f3a 030382 beq gpcfg_spid_ncs ,setgpio_pullup 
+0x6f3b 030383 beq gpcfg_spid_sck ,setgpio_pullup 
+0x6f3c 030384 beq gpcfg_spid_mosi ,setgpio_pullup 
+0x6f3d 030385 beq gpcfg_spid_sdio ,setgpio_pullup 
+0x6f3e 030386 beq gpcfg_iic_scl ,setgpio_pullup 
+0x6f3f 030387 beq gpcfg_iic_sda ,setgpio_pullup 
+0x6f40 030388 beq gpcfg_input ,setgpio_pullup 
+:      030389 setgpio_loop_end:
+0x6f41 030390 loop setgpio_loop 
+0x6f42 030391 arg core_gpio_conf_hi + gpio_number_ext ,pdata 
+0x6f43 030392 isub contr ,null 
+0x6f44 030393 rtn zero 
+:      030394 gpio_set_before_lpm_ext:
+0x6f45 030395 arg gpio_number_ext ,loopcnt 
+0x6f46 030396 arg core_gpio_conf_hi ,contr 
+0x6f47 030397 branch setgpio_loop 
+:      030400 setgpio_pullup:
+0x6f48 030401 setarg gpcfg_pullup 
+0x6f49 030402 istore 1 ,contw 
+0x6f4a 030403 branch setgpio_loop_end 
+:      030404 setgpio_pulldown:
+0x6f4b 030405 setarg gpcfg_pulldown 
+0x6f4c 030406 istore 1 ,contw 
+0x6f4d 030407 branch setgpio_loop_end 
+:      030411 sadc_calibration:
+0x6f4e 030412 bpatch patch1b_2 ,mem_patch1b 
+0x6f4f 030413 rtn wake 
+0x6f50 030414 jam 0x77 ,core_gpadc_ctrl 
+0x6f51 030415 jam 0xc9 ,core_gpadc_cfg0 
+0x6f52 030416 jam 0x01 ,core_gpadc_cfg3 
+0x6f53 030417 fetch 1 ,mem_adc_clkdiv 
+0x6f54 030418 store 1 ,core_sadc_clkdiv 
+0x6f55 030419 call sadc_read 
+0x6f56 030420 jam 0xc1 ,core_gpadc_cfg0 
+:      030421 sadc_cal_read:
+0x6f57 030422 arg 7 ,loopcnt 
+0x6f58 030423 arg mem_adc_cal_c0 ,rega 
+0x6f59 030424 jam 0x05 ,core_gpadc_cfg2 
+:      030425 sadc_cal_read_loop:
+0x6f5a 030426 fetch 1 ,core_gpadc_status 
+0x6f5b 030427 istore 1 ,rega 
+0x6f5c 030428 increase 1 ,rega 
+0x6f5d 030429 fetch 1 ,core_gpadc_cfg2 
+0x6f5e 030430 increase 0x20 ,pdata 
+0x6f5f 030431 store 1 ,core_gpadc_cfg2 
+0x6f60 030432 loop sadc_cal_read_loop 
+0x6f61 030433 jam 0x00 ,core_gpadc_ctrl 
+0x6f62 030434 rtn 
+:      030436 sadc_cal_write:
+0x6f63 030437 fetch 1 ,core_sadc_ctrl 
+0x6f64 030438 set1 1 ,pdata 
+0x6f65 030439 store 1 ,core_sadc_ctrl 
+0x6f66 030440 arg 7 ,loopcnt 
+0x6f67 030441 arg mem_adc_cal_c0 ,rega 
+0x6f68 030442 jam 0x15 ,core_gpadc_cfg2 
+:      030443 sadc_cal_write_loop:
+0x6f69 030444 ifetch 1 ,rega 
+0x6f6a 030445 store 1 ,core_gpadc_cfg1 
+0x6f6b 030446 increase 1 ,rega 
+0x6f6c 030447 fetch 1 ,core_gpadc_cfg2 
+0x6f6d 030448 increase 0x20 ,pdata 
+0x6f6e 030449 store 1 ,core_gpadc_cfg2 
+0x6f6f 030450 loop sadc_cal_write_loop 
+0x6f70 030451 fetch 1 ,core_sadc_ctrl 
+0x6f71 030452 set0 1 ,pdata 
+0x6f72 030453 store 1 ,core_sadc_ctrl 
+0x6f73 030454 rtn 
+:      030458 adc_init_data:
+0x6f74 030459 bpatch patch1b_3 ,mem_patch1b 
+0x6f75 030460 fetch 8 ,mem_otp_adc 
+0x6f76 030461 branch adc_init_cal_data_default ,blank 
+0x6f77 030462 store 8 ,mem_3v_adc_io_data 
+0x6f78 030463 rtn 
+:      030465 adc_init_cal_data_default:
+0x6f79 030466 setarg 0x0bbe 
+0x6f7a 030467 store 2 ,mem_3v_adc_io_data 
+0x6f7b 030468 setarg 0x03f0 
+0x6f7c 030469 store 2 ,mem_1v_adc_io_data 
+0x6f7d 030470 setarg 0x027e 
+0x6f7e 030471 store 2 ,mem_2v_adc_hvin_data 
+0x6f7f 030472 setarg 0x03c4 
+0x6f80 030473 store 2 ,mem_3v_adc_hvin_data 
+0x6f81 030474 rtn 
+:      030476 enable_adc:
+0x6f82 030477 bpatch patch1b_4 ,mem_patch1b 
+0x6f83 030478 call sadc_cal_write 
+0x6f84 030479 fetch 1 ,core_gpadc_cfg1 
+0x6f85 030480 set0 7 ,pdata 
+0x6f86 030481 store 1 ,core_gpadc_cfg1 
+0x6f87 030482 jam 0x77 ,core_gpadc_ctrl 
+0x6f88 030483 jam 0xc1 ,core_gpadc_cfg0 
+0x6f89 030484 jam 0x01 ,core_gpadc_cfg3 
+0x6f8a 030485 call sadc_channel 
+0x6f8b 030486 fetch 1 ,mem_adc_clkdiv 
+0x6f8c 030487 store 1 ,core_sadc_clkdiv 
+0x6f8d 030488 call sadc_read 
+0x6f8e 030489 jam 0 ,core_sadc_clkdiv 
+0x6f8f 030490 branch sadc_dma 
+:      030492 sadc_channel:
+0x6f90 030493 fetch 1 ,mem_adc_channel 
+0x6f91 030494 lshift4 pdata ,pdata 
+0x6f92 030495 fetcht 1 ,core_gpadc_cfg3 
+0x6f93 030496 and_into 0x0f ,temp 
+0x6f94 030497 ior temp ,temp 
+0x6f95 030498 storet 1 ,core_gpadc_cfg3 
+0x6f96 030499 rtn 
+:      030501 sadc_read:
+0x6f97 030502 jam 0x03 ,core_sadc_ctrl 
+:      030503 sadc_read_wait:
+0x6f98 030504 fetch 1 ,core_perf_status 
+0x6f99 030505 bbit0 saradc_done ,sadc_read_wait 
+0x6f9a 030506 fetcht 2 ,core_sadc_data 
+0x6f9b 030507 storet 2 ,mem_adc_current_value 
+0x6f9c 030508 jam 0x06 ,core_sadc_ctrl 
+:      030509 sadc_read_wait2:
+0x6f9d 030510 fetch 1 ,core_perf_status 
+0x6f9e 030511 bbit1 saradc_done ,sadc_read_wait2 
+0x6f9f 030512 jam 0x00 ,core_sadc_ctrl 
+0x6fa0 030513 rtn 
+:      030515 sadc_dma:
+0x6fa1 030516 fetch 1 ,mem_adc_dma_enable 
+0x6fa2 030517 rtn blank 
+0x6fa3 030518 fetch 1 ,core_gpadc_cfg1 
+0x6fa4 030519 set1 7 ,pdata 
+0x6fa5 030520 store 1 ,core_gpadc_cfg1 
+0x6fa6 030521 fetch 1 ,mem_adc_clkdiv 
+0x6fa7 030522 store 1 ,core_sadc_clkdiv 
+0x6fa8 030523 fetch 2 ,mem_adc_saddr_ptr 
+0x6fa9 030524 store 2 ,core_sadc_saddr 
+0x6faa 030525 fetch 2 ,mem_adc_eaddr_ptr 
+0x6fab 030526 store 2 ,core_sadc_eaddr 
+0x6fac 030527 jam 0x0b ,core_sadc_ctrl 
+0x6fad 030528 nop 1000 
+0x6fae 030529 jam 0x03 ,core_sadc_ctrl 
+0x6faf 030530 rtn 
+:      030532 vdd_calculate_by_mode:
+0x6fb0 030533 bpatch patch1b_5 ,mem_patch1b 
+0x6fb1 030534 fetch 1 ,mem_adc_config_flag 
+0x6fb2 030535 beq adc_config_hvin ,vdd_calculate_hvin 
+0x6fb3 030536 beq adc_config_gpio ,vdd_calculate_io 
+0x6fb4 030537 rtn 
+:      030539 vdd_calculate_hvin:
+0x6fb5 030540 setarg 1000 
+0x6fb6 030541 store 2 ,mem_reference_voltage 
+0x6fb7 030542 fetcht 2 ,mem_3v_adc_hvin_data 
+0x6fb8 030543 fetch 2 ,mem_2v_adc_hvin_data 
+0x6fb9 030544 arg 2000 ,regc 
+0x6fba 030545 branch vdd_calculate 
+:      030547 vdd_calculate_io:
+0x6fbb 030548 setarg 2000 
+0x6fbc 030549 store 2 ,mem_reference_voltage 
+0x6fbd 030550 fetcht 2 ,mem_3v_adc_io_data 
+0x6fbe 030551 fetch 2 ,mem_1v_adc_io_data 
+0x6fbf 030552 arg 1000 ,regc 
+:      030553 vdd_calculate:
+0x6fc0 030554 isub temp ,rega 
+0x6fc1 030555 fetch 2 ,mem_adc_current_value 
+0x6fc2 030556 isub temp ,pdata 
+0x6fc3 030557 nbranch vdd_calculate1 ,positive 
+0x6fc4 030558 fetcht 2 ,mem_reference_voltage 
+0x6fc5 030559 imul32 temp ,regb 
+0x6fc6 030560 copy regc ,pdata 
+0x6fc7 030561 imul32 rega ,pdata 
+0x6fc8 030562 iadd regb ,pdata 
+:      030563 vdd_calculate2:
+0x6fc9 030564 idiv rega 
+0x6fca 030565 call wait_div_end 
+0x6fcb 030566 quotient pdata 
+0x6fcc 030567 rtn 
+:      030569 vdd_calculate1:
+0x6fcd 030570 copy temp ,pdata 
+0x6fce 030571 fetcht 2 ,mem_adc_current_value 
+0x6fcf 030572 isub temp ,pdata 
+0x6fd0 030573 fetcht 2 ,mem_reference_voltage 
+0x6fd1 030574 imul32 temp ,regb 
+0x6fd2 030575 copy regc ,pdata 
+0x6fd3 030576 imul32 rega ,pdata 
+0x6fd4 030577 isub regb ,pdata 
+0x6fd5 030578 nbranch set_pdata_0 ,positive 
+0x6fd6 030579 branch vdd_calculate2 
+:      030583 adc_bat_percent_lowpower_out:
+0x6fd7 030584 ifetch 8 ,rega 
+0x6fd8 030585 store 8 ,mem_pdatatemp 
+0x6fd9 030586 fetch 2 ,mem_pdatatemp 
+0x6fda 030587 fetcht 2 ,mem_pdatatemp + 2 
+0x6fdb 030588 isub temp ,rega 
+0x6fdc 030589 fetch 2 ,mem_pdatatemp + 6 
+0x6fdd 030590 isub temp ,regb 
+0x6fde 030591 fetcht 2 ,mem_pdatatemp + 4 
+0x6fdf 030592 isub temp ,null 
+0x6fe0 030593 ncall adc_set_low_power_flag ,positive 
+0x6fe1 030594 mul32 regb ,100 ,pdata 
+0x6fe2 030595 idiv rega 
+0x6fe3 030596 call wait_div_end 
+0x6fe4 030597 quotient pdata 
+0x6fe5 030598 call adc_set_no_power_flag ,blank 
+0x6fe6 030599 rtn 
+:      030601 adc_set_low_power_flag:
+0x6fe7 030602 fetch 1 ,mem_adc_power_flag 
+0x6fe8 030603 set1 0 ,pdata 
+0x6fe9 030604 store 1 ,mem_adc_power_flag 
+0x6fea 030605 rtn 
+:      030607 adc_clear_low_power_flag:
+0x6feb 030608 fetch 1 ,mem_adc_power_flag 
+0x6fec 030609 set0 0 ,pdata 
+0x6fed 030610 store 1 ,mem_adc_power_flag 
+0x6fee 030611 rtn 
+:      030613 adc_set_no_power_flag:
+0x6fef 030614 fetcht 1 ,mem_adc_power_flag 
+0x6ff0 030615 set1 1 ,temp 
+0x6ff1 030616 storet 1 ,mem_adc_power_flag 
+0x6ff2 030617 rtn 
+:      030619 adc_clear_no_power_flag:
+0x6ff3 030620 fetcht 1 ,mem_adc_power_flag 
+0x6ff4 030621 set0 1 ,temp 
+0x6ff5 030622 storet 1 ,mem_adc_power_flag 
+0x6ff6 030623 rtn 
+:      030628 keyscan_key_init:
+0x6ff7 030629 fetch 2 ,mem_key_num_ptr 
+0x6ff8 030630 ifetch 1 ,pdata 
+:      030631 keyscan_key_init_next:
+0x6ff9 030632 rtn blank 
+0x6ffa 030633 copy pdata ,loopcnt 
+0x6ffb 030635 fetch 2 ,mem_keyscan_ptr 
+0x6ffc 030636 increase 3 ,pdata 
+0x6ffd 030637 copy pdata ,rega 
+:      030638 keyscan_key_init_lp1:
+0x6ffe 030639 ifetcht 1 ,rega 
+0x6fff 030640 call gpio_config_input 
+0x7000 030641 increase key_conf_struct_len ,rega 
+0x7001 030642 loop keyscan_key_init_lp1 
+:      030643 keyscan_key_init_end:
+0x7002 030644 rtn 
+:      030646 keyscan_scan_key:
+0x7003 030647 fetch 2 ,mem_keyscan_ptr 
+0x7004 030648 increase 3 ,pdata 
+0x7005 030649 copy pdata ,rega 
+0x7006 030651 force 0 ,regb 
+0x7007 030652 setarg 0 
+0x7008 030653 store 2 ,mem_key_value_temp 
+:      030654 keyscan_scan_key_lp1:
+0x7009 030655 ifetcht 1 ,rega 
+0x700a 030656 call gpio_get_bit 
+0x700b 030657 bpatch patch1b_6 ,mem_patch1b 
+0x700c 030658 fetch 2 ,mem_key_value_temp 
+0x700d 030659 copy regb ,queue 
+0x700e 030660 qsetflag true ,pdata 
+0x700f 030661 store 2 ,mem_key_value_temp 
+0x7010 030662 increase key_conf_struct_len ,rega 
+0x7011 030663 increase 1 ,regb 
+0x7012 030664 fetch 2 ,mem_key_num_ptr 
+0x7013 030665 ifetch 1 ,pdata 
+:      030666 keyscan_scan_key_lp1_next:
+0x7014 030667 ixor regb ,null 
+0x7015 030668 nbranch keyscan_scan_key_lp1 ,zero 
+0x7016 030669 fetch 2 ,mem_key_value_temp 
+0x7017 030670 fetcht 2 ,mem_key_value_retention 
+0x7018 030671 ixor temp ,null 
+0x7019 030672 rtn zero 
+0x701a 030673 branch enable_user 
+:      030675 keyscan_process_lpm_before:
+0x701b 030676 fetch 2 ,mem_key_num_ptr 
+0x701c 030677 ifetch 1 ,pdata 
+:      030678 keyscan_process_lpm_before_next:
+0x701d 030679 rtn blank 
+0x701e 030680 copy pdata ,loopcnt 
+0x701f 030681 fetch 2 ,mem_keyscan_ptr 
+0x7020 030682 increase 3 ,pdata 
+0x7021 030683 copy pdata ,rega 
+:      030684 keyscan_process_lpm_before_lp1:
+0x7022 030685 ifetcht 1 ,rega 
+0x7023 030686 call gpio_set_wake_by_current_state 
+0x7024 030687 increase key_conf_struct_len ,rega 
+0x7025 030688 loop keyscan_process_lpm_before_lp1 
+:      030689 keyscan_process_lpm_before_end:
+0x7026 030690 rtn 
+:      030692 keyscan_key_process:
+0x7027 030693 arg key_scan_timer ,queue 
+0x7028 030694 call timer_check 
+0x7029 030695 nrtn blank 
+0x702a 030696 setarg 0x20 
+0x702b 030697 arg key_scan_timer ,queue 
+0x702c 030698 call timer_init 
+0x702d 030699 disable user 
+0x702e 030700 call keyscan_process_lpm_before 
+0x702f 030701 bpatch patch1b_7 ,mem_patch1b 
+0x7030 030702 fetch 2 ,mem_key_num_ptr 
+0x7031 030703 ifetch 1 ,pdata 
+:      030704 keyscan_key_process_next:
+0x7032 030705 rtn blank 
+0x7033 030706 call keyscan_scan_key 
+0x7034 030707 nbranch lpm_button_clean_wake_lock ,user 
+0x7035 030708 call lpm_button_get_wake_lock 
+0x7036 030709 disable user 
+0x7037 030710 fetch 2 ,mem_key_value_temp 
+0x7038 030711 store 2 ,mem_key_value_temp4 
+0x7039 030712 jam 0 ,mem_key_value_temp6 
+0x703a 030713 force 0 ,queue 
+:      030714 keyscan_key_lp1:
+0x703b 030715 fetch 2 ,mem_key_value_retention 
+0x703c 030716 rshift pdata ,temp 
+0x703d 030717 storet 2 ,mem_key_value_retention 
+0x703e 030718 and pdata ,0x01 ,pdata 
+0x703f 030719 fetcht 2 ,mem_key_value_temp4 
+0x7040 030720 and temp ,0x01 ,rega 
+0x7041 030721 rshift temp ,temp 
+0x7042 030722 storet 2 ,mem_key_value_temp4 
+0x7043 030723 ixor rega ,null 
+0x7044 030724 ncall keyscan_send_key_data ,zero 
+0x7045 030725 fetch 2 ,mem_key_num_ptr 
+0x7046 030726 ifetch 1 ,pdata 
+:      030727 keyscan_key_lp1_next:
+0x7047 030728 fetcht 1 ,mem_key_value_temp6 
+0x7048 030729 increase 1 ,temp 
+0x7049 030730 storet 1 ,mem_key_value_temp6 
+0x704a 030731 copy temp ,queue 
+0x704b 030732 ixor queue ,null 
+0x704c 030733 nbranch keyscan_key_lp1 ,zero 
+0x704d 030734 fetch 2 ,mem_key_value_temp 
+0x704e 030735 store 2 ,mem_key_value_retention 
+0x704f 030736 rtn 
+:      030737 keyscan_send_key_data:
+0x7050 030738 bpatch patch1c_0 ,mem_patch1c 
+0x7051 030739 fetch 2 ,mem_keyscan_ptr 
+0x7052 030740 increase 1 ,pdata 
+0x7053 030741 ifetch 2 ,pdata 
+0x7054 030742 branch callback_func 
+:      030748 pwm_init:
+0x7055 030749 fetch 1 ,core_clksel 
+0x7056 030750 ior rega ,pdata 
+0x7057 030751 store 1 ,core_clksel 
+0x7058 030752 fetch 2 ,core_clkoff 
+0x7059 030753 set0 clock_off_pwm ,pdata 
+0x705a 030754 store 2 ,core_clkoff 
+:      030755 delay_nop100:
+0x705b 030756 nop 100 
+0x705c 030757 rtn 
+:      030759 pwm_clk_set:
+0x705d 030760 fetch 1 ,core_clksel 
+0x705e 030761 bbit1 6 ,pwm_24m_clk_set 
+0x705f 030762 bbit1 7 ,pwm_33k_clk_set 
+:      030763 pwm_12m_clk_set:
+0x7060 030764 setarg pwm_12mhz 
+0x7061 030765 rtn 
+:      030766 pwm_24m_clk_set:
+0x7062 030767 setarg pwm_24mhz 
+0x7063 030768 rtn 
+:      030769 pwm_33k_clk_set:
+0x7064 030770 setarg pwm_33khz 
+0x7065 030771 rtn 
+:      030774 pwm_out_set:
+0x7066 030775 fetcht 3 ,mem_pdatatemp + 2 
+0x7067 030776 call pwm_clk_set 
+0x7068 030777 idiv temp 
+0x7069 030778 call wait_div_end 
+0x706a 030779 quotient temp 
+0x706b 030780 fetch 1 ,mem_pdatatemp + 5 
+0x706c 030781 imul32 temp ,pdata 
+0x706d 030782 div pdata ,100 
+0x706e 030783 call wait_div_end 
+0x706f 030784 quotient rega 
+0x7070 030785 copy temp ,pdata 
+0x7071 030786 isub rega ,regb 
+0x7072 030788 fetch 1 ,mem_pdatatemp + 1 
+0x7073 030789 call pwm_duty_cycle_set 
+0x7074 030790 fetch 1 ,mem_pdatatemp 
+0x7075 030791 fetcht 1 ,mem_pdatatemp + 1 
+0x7076 030792 and_into 0x0f ,temp 
+0x7077 030793 lshift8 temp ,temp 
+0x7078 030794 ior temp ,pdata 
+0x7079 030795 branch pwm_enable 
+:      030797 pwm_duty_cycle_set:
+0x707a 030798 iforce queue 
+0x707b 030799 call pwm_duty_cycle_set_without_autoload 
+0x707c 030800 branch pwm_autoload_set 
+:      030802 pwm_autoload_set:
+0x707d 030803 fetch 1 ,core_pwm_autoload 
+0x707e 030804 qset1 pdata 
+0x707f 030805 store 1 ,core_pwm_autoload 
+0x7080 030806 fetcht 1 ,core_clksel 
+0x7081 030807 isolate1 7 ,temp 
+0x7082 030808 call delay_1clk_of_33k ,true 
+0x7083 030809 qset0 pdata 
+0x7084 030810 store 1 ,core_pwm_autoload 
+0x7085 030811 rtn 
+:      030814 delay_1clk_of_33k:
+0x7086 030815 nop 480 
+0x7087 030816 rtn 
+:      030818 pwm_duty_cycle_set_without_autoload:
+0x7088 030819 and_into 0x0f ,pdata 
+0x7089 030820 arg core_pwm_pcnt0 ,contw 
+0x708a 030821 mul32 pdata ,4 ,pdata 
+0x708b 030822 iadd contw ,contw 
+0x708c 030823 copy rega ,pdata 
+0x708d 030824 istore 2 ,contw 
+0x708e 030825 copy regb ,pdata 
+0x708f 030826 istore 2 ,contw 
+0x7090 030827 rtn 
+:      030832 pwm_enable_in_syncmode:
+0x7091 030833 rshift8 regb ,queue 
+0x7092 030834 call pwm_init_bit_set 
+0x7093 030835 rshift8 regb ,queue 
+0x7094 030836 call pwm_syncmode_set 
+0x7095 030837 rshift8 rega ,queue 
+0x7096 030838 enable true 
+0x7097 030839 call pwm_syncmode_set_process 
+0x7098 030841 deposit rega 
+0x7099 030842 call pwm_gpio_select 
+0x709a 030843 deposit regb 
+0x709b 030844 branch pwm_enable 
+:      030846 pwm_disable_in_syncmode:
+0x709c 030847 deposit rega 
+0x709d 030848 call pwm_disable 
+0x709e 030849 deposit regb 
+0x709f 030850 call pwm_disable 
+0x70a0 030852 rshift8 rega ,queue 
+0x70a1 030853 disable true 
+0x70a2 030854 call pwm_syncmode_set_process 
+0x70a3 030855 rshift8 regb ,queue 
+0x70a4 030856 disable true 
+0x70a5 030857 call pwm_init_bit_set_process 
+0x70a6 030858 rshift8 regb ,queue 
+0x70a7 030859 disable true 
+0x70a8 030860 branch pwm_syncmode_set_process 
+:      030863 pwm_syncmode_set:
+0x70a9 030864 isolate1 7 ,queue 
+:      030865 pwm_syncmode_set_process:
+0x70aa 030866 and queue ,0x0f ,queue 
+0x70ab 030867 fetch 1 ,core_pwm_sync 
+0x70ac 030868 qsetflag true ,pdata 
+0x70ad 030869 store 1 ,core_pwm_sync 
+0x70ae 030870 rtn 
+:      030872 pwm_init_bit_set:
+0x70af 030873 isolate1 6 ,queue 
+:      030874 pwm_init_bit_set_process:
+0x70b0 030875 and queue ,0x0f ,queue 
+0x70b1 030876 fetch 1 ,core_pwm_init 
+0x70b2 030877 qsetflag true ,pdata 
+0x70b3 030878 store 1 ,core_pwm_init 
+0x70b4 030879 rtn 
+:      030880 pwm_gpio_select:
+0x70b5 030881 call pwm_select_channel 
+:      030882 pwm_gpio_select_process:
+0x70b6 030883 lshift8 pdata ,pdata 
+0x70b7 030884 add queue ,gpcfg_pwm_out0 ,temp 
+0x70b8 030885 ior temp ,pdata 
+0x70b9 030886 branch gpio_config_param 
+:      030888 pwm_enable:
+0x70ba 030889 enable user 
+0x70bb 030890 call pwm_gpio_select 
+0x70bc 030891 branch pwm_set_select 
+:      030893 pwm_disable:
+0x70bd 030894 disable user 
+0x70be 030895 call pwm_select_channel 
+0x70bf 030896 branch pwm_set_select 
+:      030898 pwm_set_select:
+0x70c0 030899 and queue ,0x0f ,queue 
+0x70c1 030900 fetch 1 ,core_pwm_en 
+0x70c2 030901 qsetflag user ,pdata 
+0x70c3 030902 store 1 ,core_pwm_en 
+0x70c4 030903 rtn 
+:      030904 pwm_select_channel:
+0x70c5 030905 rshift8 pdata ,queue 
+0x70c6 030906 and queue ,0x0f ,queue 
+0x70c7 030907 rtn 
+:      030911 wdt_init_config:
+0x70c8 030912 copy pdata ,temp 
+0x70c9 030913 bpatch patch1c_1 ,mem_patch1c 
+0x70ca 030914 call wdt_set_enable 
+0x70cb 030915 setarg 2048 
+0x70cc 030916 isub temp ,pdata 
+0x70cd 030917 copy pdata ,temp 
+0x70ce 030918 rshift4 temp ,temp 
+0x70cf 030919 storet 1 ,core_write_wdt 
+0x70d0 030920 nop 1400 
+0x70d1 030921 copy pdata ,temp 
+0x70d2 030922 and_into 0x0f ,temp 
+0x70d3 030923 storet 1 ,core_write_wdt2 
+0x70d4 030924 rtn 
+:      030927 wdt_set_enable:
+0x70d5 030928 enable user2 
+0x70d6 030929 branch wdt_init_set 
+:      030932 wdt_set_disable:
+0x70d7 030933 bpatch patch1c_2 ,mem_patch1c 
+0x70d8 030934 disable user2 
+:      030935 wdt_init_set:
+0x70d9 030936 fetch 1 ,core_config 
+0x70da 030937 setflag user2 ,3 ,pdata 
+0x70db 030938 store 1 ,core_config 
+0x70dc 030939 rtn 
+:      030944 nec61212_init:
+0x70dd 030945 arg fun_nec_enable | fun_nec_clk_divide_24 ,temp 
+:      030948 nec_init_config:
+0x70de 030949 store 4 ,core_nec_start_addr 
+0x70df 030950 store 2 ,core_nec_rptr 
+0x70e0 030951 storet 1 ,core_nec_ctrl 
+0x70e1 030952 rtn 
+:      030955 nec_check_rxbuff_size:
+0x70e2 030956 fetch 2 ,core_nec_rxitem 
+0x70e3 030957 rtn 
+:      030959 nec_prepare_read:
+0x70e4 030960 fetchr contu ,2 ,core_nec_rptr 
+0x70e5 030961 fetchr contus ,2 ,core_nec_start_addr 
+0x70e6 030962 fetchr contue ,2 ,core_nec_end_addr 
+0x70e7 030963 rtn 
+:      030965 nec_read_done:
+0x70e8 030966 storer contu ,2 ,core_nec_rptr 
+0x70e9 030967 rtn 
+:      030974 nec_parse_nec61212:
+0x70ea 030975 call enable_user 
+0x70eb 030976 arg 0 ,rege 
+0x70ec 030977 call nec_check_rxbuff_size 
+0x70ed 030978 beq 2 ,nec_parse_nec61212_check_timeout 
+0x70ee 030979 sub pdata ,4 ,null 
+0x70ef 030980 rtn positive 
+0x70f0 030981 call nec_prepare_read 
+0x70f1 030982 ifetcht 2 ,contu 
+0x70f2 030983 setarg nec61212_data2repeat_time 
+0x70f3 030984 call nec_check_pulse_range_legal_default_deviation 
+0x70f4 030985 nbranch nec_parse_nec61212_check_repeat_data ,positive 
+0x70f5 030986 copy regd ,temp 
+0x70f6 030987 setarg nec61212_repeat2repeat_time 
+0x70f7 030988 call nec_check_pulse_range_legal_default_deviation 
+0x70f8 030989 nbranch nec_parse_nec61212_check_repeat_data ,positive 
+0x70f9 030991 copy regd ,temp 
+0x70fa 030992 setarg nec61212_boot_code_start_time 
+0x70fb 030993 call nec_check_pulse_range_legal_default_deviation 
+0x70fc 030994 branch nec_parse_nec61212_error_data ,positive 
+0x70fd 030995 ifetcht 2 ,contu 
+0x70fe 030996 setarg nec61212_boot_code_end_time 
+0x70ff 030997 call nec_check_pulse_range_legal_default_deviation 
+0x7100 030998 branch nec_parse_nec61212_error_data ,positive 
+0x7101 030999 call nec_check_rxbuff_size 
+0x7102 031000 sub pdata ,133 ,null 
+0x7103 031001 rtn positive 
+0x7104 031002 arg 32 ,loopcnt 
+:      031003 nec_parse_nec61212_data:
+0x7105 031004 ifetcht 2 ,contu 
+0x7106 031005 setarg nec61212_data_bit_1_start_time 
+0x7107 031006 call nec_check_pulse_range_legal_default_deviation 
+0x7108 031007 branch nec_parse_nec61212_error_data ,positive 
+0x7109 031008 ifetcht 2 ,contu 
+0x710a 031009 setarg nec61212_data_bit_1_end_time 
+0x710b 031010 call nec_check_pulse_range_legal_default_deviation 
+0x710c 031011 nbranch nec_parse_nec61212_add_bit1 ,positive 
+0x710d 031012 copy regd ,temp 
+0x710e 031013 setarg nec61212_data_bit_0_end_time 
+0x710f 031014 call nec_check_pulse_range_legal_default_deviation 
+0x7110 031015 nbranch nec_parse_nec61212_add_bit0 ,positive 
+:      031018 nec_parse_nec61212_error_data:
+0x7111 031019 copy regd ,temp 
+0x7112 031020 setarg nec61212_timeout_time 
+0x7113 031021 isub temp ,null 
+0x7114 031022 branch nec_parse_nec61212_check_timeout_cb ,zero 
+0x7115 031023 branch nec_read_done 
+:      031025 nec_parse_nec61212_add_bit1:
+0x7116 031026 set1 32 ,rege 
+:      031027 nec_parse_nec61212_add_bit0:
+0x7117 031028 rshift rege ,rege 
+0x7118 031029 loop nec_parse_nec61212_data 
+0x7119 031030 branch nec_parse_nec61212_check_stop_bit 
+:      031032 nec_parse_nec61212_check_repeat_data:
+0x711a 031033 call nec_check_rxbuff_size 
+0x711b 031034 sub pdata ,7 ,null 
+0x711c 031035 rtn positive 
+0x711d 031036 ifetcht 2 ,contu 
+0x711e 031037 setarg nec61212_repeat_start_time 
+0x711f 031038 call nec_check_pulse_range_legal_default_deviation 
+0x7120 031039 branch nec_parse_nec61212_error_data ,positive 
+0x7121 031040 ifetcht 2 ,contu 
+0x7122 031041 setarg nec61212_repeat_end_time 
+0x7123 031042 call nec_check_pulse_range_legal_default_deviation 
+0x7124 031043 branch nec_parse_nec61212_error_data ,positive 
+:      031044 nec_parse_nec61212_check_stop_bit:
+0x7125 031045 ifetcht 2 ,contu 
+0x7126 031046 setarg nec61212_stop_time 
+0x7127 031047 call nec_check_pulse_range_legal_default_deviation 
+0x7128 031048 branch nec_parse_nec61212_error_data ,positive 
+0x7129 031049 call nec_read_done 
+0x712a 031050 copy regc ,pdata 
+0x712b 031051 branch callback_func 
+:      031053 nec_parse_nec61212_check_timeout:
+0x712c 031054 call nec_prepare_read 
+0x712d 031055 ifetcht 2 ,contu 
+0x712e 031056 setarg nec61212_timeout_time 
+0x712f 031057 isub temp ,null 
+0x7130 031058 nrtn zero 
+:      031059 nec_parse_nec61212_check_timeout_cb:
+0x7131 031060 call nec_read_done 
+0x7132 031061 call disable_user 
+0x7133 031062 copy regc ,pdata 
+0x7134 031063 branch callback_func 
+:      031070 nec_check_pulse_range_legal_default_deviation:
+0x7135 031071 fetchr regb ,1 ,mem_nec_decode_error_value 
+:      031080 nec_check_pulse_range_legal:
+0x7136 031081 copy temp ,regd 
+0x7137 031082 imul32 regb ,regb 
+0x7138 031083 lshift temp ,temp 
+0x7139 031084 isub temp ,rega 
+0x713a 031085 ncall nec_check_pulse_range_legal_data_negative ,positive 
+0x713b 031086 mul32 rega ,100 ,pdata 
+0x713c 031087 isub regb ,null 
+0x713d 031088 rtn 
+:      031090 nec_check_pulse_range_legal_data_negative:
+0x713e 031091 sub rega ,0 ,rega 
+0x713f 031092 rtn 
+:      031103 function_g2:
+0x7140 031104 bpatch patch1c_3 ,mem_patch1c 
+0x7141 031105 jam 80 ,mem_aes_cmac_data_length 
+0x7142 031106 arg mem_dat ,contw 
+0x7143 031107 arg mem_le_srand ,contr 
+0x7144 031108 call memcpy16 
+0x7145 031109 arg mem_sc_pubkey_local_x_256 ,contr 
+0x7146 031110 call memcpy32 
+0x7147 031111 arg mem_le_pubkey_remote_x_256 ,contr 
+0x7148 031112 call memcpy32 
+0x7149 031113 call inverse_memdat 
+0x714a 031114 arg mem_le_mrand ,contr 
+0x714b 031115 call store_inverse_k 
+0x714c 031116 call function_aes_cmac 
+0x714d 031118 arg mem_aes_cmac_temp ,contw 
+0x714e 031119 call load_inverse_result 
+0x714f 031120 setarg 1000000 
+0x7150 031121 copy pdata ,rega 
+0x7151 031122 fetch 4 ,mem_aes_cmac_temp 
+0x7152 031123 idiv rega 
+0x7153 031124 call wait_div_end 
+0x7154 031125 remainder pdata 
+0x7155 031126 store 4 ,mem_gkey 
+0x7156 031128 rtn 
+:      031130 function_f6_eb:
+0x7157 031131 jam 65 ,mem_aes_cmac_data_length 
+0x7158 031132 arg mem_dat ,contw 
+0x7159 031133 call store_addr_common_a 
+0x715a 031134 call store_addr_common_b 
+0x715b 031135 fetch 3 ,mem_le_pres + 1 
+0x715c 031136 istore 3 ,contw 
+0x715d 031139 call get_r 
+0x715e 031141 arg mem_le_mrand ,contr 
+0x715f 031142 call memcpy16 
+0x7160 031143 arg mem_le_srand ,contr 
+0x7161 031144 call memcpy16 
+0x7162 031145 call inverse_memdat 
+0x7163 031146 arg mem_le_mackey ,contr 
+0x7164 031147 arg mem_aes_cmac_k ,contw 
+0x7165 031148 call memcpy16 
+0x7166 031150 branch function_aes_cmac 
+:      031154 get_r:
+0x7167 031155 fetch 4 ,mem_le_tk 
+0x7168 031156 istore 4 ,contw 
+0x7169 031157 call memset0_4 
+0x716a 031158 branch memset0_8 
+:      031160 function_f6_ea:
+0x716b 031161 bpatch patch1c_4 ,mem_patch1c 
+0x716c 031162 jam 65 ,mem_aes_cmac_data_length 
+0x716d 031163 arg mem_dat ,contw 
+0x716e 031164 call store_addr_common_b 
+0x716f 031165 call store_addr_common_a 
+0x7170 031166 fetch 3 ,mem_le_preq + 1 
+0x7171 031167 istore 3 ,contw 
+0x7172 031170 call get_r 
+0x7173 031171 arg mem_le_srand ,contr 
+0x7174 031172 call memcpy16 
+0x7175 031173 arg mem_le_mrand ,contr 
+0x7176 031174 call memcpy16 
+0x7177 031175 call inverse_memdat 
+0x7178 031176 arg mem_le_mackey ,contr 
+0x7179 031177 arg mem_aes_cmac_k ,contw 
+0x717a 031178 call memcpy16 
+0x717b 031180 call function_aes_cmac 
+0x717c 031181 arg mem_aes_cmac_temp ,contw 
+0x717d 031182 branch load_inverse_result 
+:      031184 function_f5:
+0x717e 031185 jam 32 ,mem_aes_cmac_data_length 
+0x717f 031186 arg mem_le_dhkey_256 ,contr 
+0x7180 031187 arg mem_dat ,contw 
+0x7181 031188 call memcpy32 
+0x7182 031189 call inverse_memdat 
+0x7183 031190 arg mem_le_slat ,contr 
+0x7184 031191 call store_inverse_k 
+0x7185 031192 call function_aes_cmac 
+0x7186 031193 arg mem_aes_cmac_k ,contw 
+0x7187 031194 call store_aes_result 
+0x7188 031195 arg 1 ,temp 
+0x7189 031196 call function_f5_common 
+0x718a 031197 arg mem_le_ltk ,contw 
+0x718b 031198 call load_inverse_result 
+0x718c 031199 arg 0 ,temp 
+0x718d 031200 call function_f5_common 
+0x718e 031201 arg mem_le_mackey ,contw 
+0x718f 031203 branch store_aes_result 
+:      031206 function_f5_common:
+0x7190 031207 bpatch patch1c_5 ,mem_patch1c 
+0x7191 031208 jam 53 ,mem_aes_cmac_data_length 
+0x7192 031209 setarg 0x100 
+0x7193 031210 store 2 ,mem_dat 
+0x7194 031211 call store_addr_common_b 
+0x7195 031212 call store_addr_common_a 
+0x7196 031213 arg mem_le_srand ,contr 
+0x7197 031214 call memcpy16 
+0x7198 031215 arg mem_le_mrand ,contr 
+0x7199 031216 call memcpy16 
+0x719a 031218 setarg 0x6c65 
+0x719b 031219 istore 2 ,contw 
+0x719c 031220 setarg 0x6274 
+0x719d 031221 istore 2 ,contw 
+0x719e 031222 istoret 1 ,contw 
+0x719f 031223 call inverse_memdat 
+0x71a0 031224 branch function_aes_cmac 
+:      031226 store_addr_common_b:
+0x71a1 031227 fetch 6 ,mem_le_lap 
+0x71a2 031228 istore 6 ,contw 
+0x71a3 031229 fetch 1 ,mem_le_conn_own_addr_type 
+0x71a4 031230 istore 1 ,contw 
+0x71a5 031231 rtn 
+:      031233 store_addr_common_a:
+0x71a6 031234 fetch 6 ,mem_le_plap 
+0x71a7 031235 istore 6 ,contw 
+0x71a8 031240 fetch 1 ,mem_le_conn_peer_addr_type 
+0x71a9 031241 istore 1 ,contw 
+0x71aa 031242 rtn 
+:      031244 function_f4_ca:
+0x71ab 031245 jam 65 ,mem_aes_cmac_data_length 
+0x71ac 031246 fetch 1 ,mem_passkey_1bit 
+0x71ad 031247 store 1 ,mem_dat 
+0x71ae 031248 arg mem_sc_pubkey_local_x_256 ,contr 
+0x71af 031249 call memcpy32 
+0x71b0 031250 arg mem_le_pubkey_remote_x_256 ,contr 
+0x71b1 031251 call memcpy32 
+0x71b2 031252 call inverse_memdat 
+0x71b3 031253 arg mem_le_mrand ,contr 
+0x71b4 031254 call store_inverse_k 
+0x71b5 031255 branch function_aes_cmac 
+:      031258 function_f4_cb:
+0x71b6 031259 jam 65 ,mem_aes_cmac_data_length 
+0x71b7 031260 fetch 1 ,mem_passkey_1bit 
+0x71b8 031261 store 1 ,mem_dat 
+0x71b9 031262 arg mem_le_pubkey_remote_x_256 ,contr 
+0x71ba 031263 call memcpy32 
+0x71bb 031264 arg mem_sc_pubkey_local_x_256 ,contr 
+0x71bc 031265 call memcpy32 
+0x71bd 031266 call inverse_memdat 
+0x71be 031267 arg mem_le_srand ,contr 
+0x71bf 031268 call store_inverse_k 
+0x71c0 031269 branch function_aes_cmac 
+:      031271 function_aes_cmac:
+0x71c1 031272 bpatch patch1c_6 ,mem_patch1c 
+0x71c2 031273 call function_aes_cmac_generate_subkey 
+0x71c3 031277 fetch 1 ,mem_aes_cmac_data_length 
+0x71c4 031278 copy pdata ,temp 
+:      031279 function_ceil16:
+0x71c5 031280 increase 15 ,pdata 
+0x71c6 031281 rshift4 pdata ,pdata 
+0x71c7 031282 copy pdata ,regb 
+0x71c8 031283 branch function_aes_cmac_set_flag_0_balnk ,blank 
+0x71c9 031284 and temp ,0x0f ,pdata 
+0x71ca 031285 nbranch function_aes_cmac_set_flag_0 ,blank 
+0x71cb 031287 arg mem_aes_cmac_k1 ,regc 
+0x71cc 031288 arg mem_dat ,pdata 
+0x71cd 031289 increase -16 ,pdata 
+0x71ce 031292 iadd temp ,rega 
+0x71cf 031293 arg mem_aes_cmac_m_last ,contw 
+0x71d0 031294 arg 4 ,loopcnt 
+0x71d1 031295 call xor_loop 
+0x71d2 031299 branch function_aes_cmac_aes 
+:      031301 function_aes_cmac_set_flag_0_balnk:
+0x71d3 031302 arg 1 ,regb 
+0x71d4 031303 arg 0 ,rega 
+0x71d5 031305 branch function_aes_cmac_set_flag_0_common 
+:      031308 function_aes_cmac_set_flag_0:
+0x71d6 031310 and temp ,0x0f ,rega 
+:      031311 function_aes_cmac_set_flag_0_common:
+0x71d7 031312 arg mem_dat ,pdata 
+0x71d8 031313 iadd temp ,pdata 
+0x71d9 031314 isub rega ,contr 
+0x71da 031316 arg mem_aes_cmac_temp ,contw 
+0x71db 031317 call function_aes_cmac_padding 
+0x71dc 031319 arg mem_aes_cmac_k2 ,regc 
+0x71dd 031320 arg mem_aes_cmac_temp ,rega 
+0x71de 031321 arg mem_aes_cmac_m_last ,contw 
+0x71df 031322 arg 4 ,loopcnt 
+0x71e0 031323 call xor_loop 
+:      031330 function_aes_cmac_aes:
+0x71e1 031335 call aes_clear_data 
+0x71e2 031336 call aes_init 
+0x71e3 031339 arg mem_dat ,contr 
+:      031340 function_aes_cmac_aes_loop:
+0x71e4 031342 increase -1 ,regb 
+0x71e5 031343 deposit regb 
+0x71e6 031344 branch function_aes_cmac_aes_loop_end ,blank 
+0x71e7 031345 call load_data128 
+0x71e8 031346 call do_aes_cbc 
+0x71e9 031347 branch function_aes_cmac_aes_loop 
+:      031349 function_aes_cmac_aes_loop_end:
+0x71ea 031350 arg mem_aes_cmac_temp ,contw 
+0x71eb 031351 call store_aes_result 
+0x71ec 031352 arg mem_aes_cmac_m_last ,contr 
+0x71ed 031353 call load_data128 
+0x71ee 031354 call aes_init 
+0x71ef 031355 arg mem_aes_cmac_temp ,contr 
+0x71f0 031356 call load_data128 
+0x71f1 031357 branch do_aes_cbc 
+:      031361 load_inverse_result:
+0x71f2 031363 copy contw ,rega 
+0x71f3 031364 call store_aes_result 
+0x71f4 031366 arg 16 ,loopcnt 
+0x71f5 031367 branch inverse_data 
+:      031369 store_inverse_k:
+0x71f6 031370 arg mem_aes_cmac_k ,contw 
+0x71f7 031371 call memcpy16 
+:      031372 inverse_k:
+0x71f8 031373 arg 16 ,loopcnt 
+0x71f9 031374 arg mem_aes_cmac_k ,rega 
+0x71fa 031375 branch inverse_data 
+:      031377 inverse_memdat:
+0x71fb 031378 fetch 1 ,mem_aes_cmac_data_length 
+0x71fc 031379 copy pdata ,loopcnt 
+0x71fd 031380 arg mem_dat ,rega 
+0x71fe 031381 branch inverse_data 
+:      031383 bn_lshift_0_inverse:
+0x71ff 031384 ifetch 1 ,rega 
+0x7200 031385 lshift pdata ,pdata 
+0x7201 031386 isolate1 0 ,regc 
+0x7202 031387 setflag true ,0 ,pdata 
+0x7203 031388 isolate1 8 ,pdata 
+0x7204 031389 setflag true ,0 ,regc 
+0x7205 031390 istore 1 ,rega 
+0x7206 031391 increase -1 ,rega 
+0x7207 031392 loop bn_lshift_0_inverse 
+0x7208 031393 rtn 
+:      031395 function_aes_cmac_k1_inverse:
+0x7209 031396 arg mem_aes_cmac_k1 ,rega 
+:      031397 function_aes_cmac_inverse_common:
+0x720a 031398 increase 15 ,rega 
+0x720b 031399 force 16 ,loopcnt 
+0x720c 031400 force 0 ,regc 
+0x720d 031401 branch bn_lshift_0_inverse 
+:      031403 function_aes_cmac_k2_inverse:
+0x720e 031404 arg mem_aes_cmac_k2 ,rega 
+0x720f 031405 branch function_aes_cmac_inverse_common 
+:      031408 function_aes_cmac_generate_subkey:
+0x7210 031409 arg mem_aes_cmac_k ,contr 
+0x7211 031410 call load_key 
+0x7212 031413 force regidx_xor ,regext_index 
+0x7213 031414 call aes_clear 
+0x7214 031415 call aes_clear_data 
+0x7215 031416 call do_aes_ocb 
+0x7216 031421 arg mem_aes_cmac_k1 ,contw 
+0x7217 031422 call store_aes_result 
+:      031423 function_aes_cmac_k1:
+0x7218 031424 bpatch patch1c_7 ,mem_patch1c 
+0x7219 031425 fetch 1 ,mem_aes_cmac_k1 
+0x721a 031426 isolate1 7 ,pdata 
+0x721b 031427 nbranch function_aes_cmac_k1_0 ,true 
+0x721c 031428 call function_aes_cmac_k1_inverse 
+0x721d 031431 arg mem_aes_cmac_k1 ,regc 
+0x721e 031433 arg mem_aes_cmac_k1 ,contw 
+0x721f 031436 call function_aes_cmac_xor_rb 
+0x7220 031437 branch function_aes_cmac_k2 
+:      031438 function_aes_cmac_k1_0:
+0x7221 031439 call function_aes_cmac_k1_inverse 
+:      031440 function_aes_cmac_k2:
+0x7222 031442 arg mem_aes_cmac_k1 ,contr 
+0x7223 031443 arg mem_aes_cmac_k2 ,contw 
+0x7224 031444 call memcpy16 
+0x7225 031445 fetch 1 ,mem_aes_cmac_k2 
+0x7226 031446 isolate1 7 ,pdata 
+0x7227 031447 nbranch function_aes_cmac_k2_inverse ,true 
+0x7228 031448 call function_aes_cmac_k2_inverse 
+0x7229 031450 arg mem_aes_cmac_k2 ,regc 
+0x722a 031452 arg mem_aes_cmac_k2 ,contw 
+:      031458 function_aes_cmac_xor_rb:
+0x722b 031459 arg 3 ,loopcnt 
+:      031460 function_aes_cmac_xor_rb_loop:
+0x722c 031461 arg 0 ,temp 
+0x722d 031462 call function_aes_cmac_xor_loop_common 
+0x722e 031463 increase 4 ,regc 
+0x722f 031464 loop function_aes_cmac_xor_rb_loop 
+0x7230 031465 arg 0x8700 ,temp 
+0x7231 031466 lshift16 temp ,temp 
+:      031467 function_aes_cmac_xor_loop_common:
+0x7232 031468 ifetch 4 ,regc 
+0x7233 031469 ixor temp ,pdata 
+0x7234 031470 istore 4 ,contw 
+0x7235 031471 rtn 
+:      031477 function_aes_cmac_padding:
+0x7236 031478 bpatch patch1d_0 ,mem_patch1d 
+0x7237 031479 arg 16 ,loopcnt 
+0x7238 031480 arg 0 ,pdata 
+:      031481 function_aes_cmac_padding_loop:
+0x7239 031482 isub rega ,null 
+0x723a 031483 branch function_aes_cmac_padding_beq_length ,zero 
+0x723b 031484 branch function_aes_cmac_padding_big_length ,positive 
+0x723c 031485 ifetcht 1 ,contr 
+0x723d 031486 istoret 1 ,contw 
+:      031487 function_aes_cmac_padding_loop2:
+0x723e 031488 increase 1 ,pdata 
+0x723f 031489 loop function_aes_cmac_padding_loop 
+0x7240 031490 rtn 
+:      031491 function_aes_cmac_padding_beq_length:
+0x7241 031492 arg 0x80 ,temp 
+:      031493 function_aes_cmac_padding_common:
+0x7242 031494 istoret 1 ,contw 
+0x7243 031495 branch function_aes_cmac_padding_loop2 
+:      031497 function_aes_cmac_padding_big_length:
+0x7244 031498 arg 0 ,temp 
+0x7245 031499 branch function_aes_cmac_padding_common 
+:      031504 concatenate_temp24:
+0x7246 031505 lshift8 temp ,temp 
+:      031506 concatenate_temp16:
+0x7247 031507 lshift16 temp ,temp 
+0x7248 031508 ior temp ,temp 
+0x7249 031509 rtn 
+:      031514 generate_stk:
+0x724a 031515 bpatch patch1d_1 ,mem_patch1d 
+0x724b 031516 call function_s1 
+0x724c 031517 arg mem_le_ltk ,contw 
+0x724d 031518 branch store_aes_result 
+:      031521 authenticate_rconfirm:
+0x724e 031522 arg mem_le_srand ,contw 
+0x724f 031523 branch authenticate_mconfirm ,master 
+0x7250 031524 arg mem_le_mrand ,contw 
+:      031525 authenticate_mconfirm:
+0x7251 031526 copy contr ,rega 
+0x7252 031527 call memcpy16 
+0x7253 031528 call function_c1 
+0x7254 031529 arg mem_le_rconfirm ,contr 
+0x7255 031530 branch compare_res 
+:      031532 generate_confirm:
+0x7256 031533 arg mem_le_mrand ,rega 
+0x7257 031534 branch generate_mrand ,master 
+0x7258 031535 arg mem_le_srand ,rega 
+:      031536 generate_mrand:
+0x7259 031537 copy rega ,contw 
+0x725a 031538 call generate_random 
+0x725b 031539 branch function_c1 
+:      031541 generate_sk:
+0x725c 031542 arg mem_le_skdm ,contr 
+0x725d 031543 call load_data128 
+0x725e 031544 arg mem_le_ltk ,contr 
+0x725f 031545 call load_regext 
+0x7260 031546 force 0x38 ,aes_ctrl 
+0x7261 031547 force 0x0 ,aes_ctrl 
+0x7262 031548 call wait_aes 
+0x7263 031549 arg mem_le_sk ,contw 
+0x7264 031550 branch store_aes_result 
+:      031554 ccm_b0:
+0x7265 031555 force regidx_xor ,regext_index 
+0x7266 031556 force 0x49 ,pdata 
+0x7267 031557 branch iv_common 
+:      031560 first_block_counter:
+0x7268 031561 force 0x49 ,pdata 
+0x7269 031562 branch first_block 
+:      031563 first_block_data:
+0x726a 031564 force 1 ,pdata 
+:      031565 first_block:
+0x726b 031566 force regidx_data ,regext_index 
+:      031567 iv_common:
+0x726c 031568 lshift8 temp ,regext 
+0x726d 031569 ior regext ,regext 
+0x726e 031570 increase 1 ,regext_index 
+0x726f 031571 rshift8 temp ,regext 
+0x7270 031572 rshift16 regext ,regext 
+0x7271 031573 fetch 2 ,mem_ccm_iv 
+0x7272 031574 lshift16 pdata ,pdata 
+0x7273 031575 ior regext ,regext 
+0x7274 031576 increase 1 ,regext_index 
+0x7275 031577 ifetchr regext ,4 ,contr 
+0x7276 031578 increase 1 ,regext_index 
+0x7277 031579 ifetch 2 ,contr 
+0x7278 031580 byteswap rega ,regext 
+0x7279 031581 lshift16 regext ,regext 
+0x727a 031582 ior regext ,regext 
+0x727b 031583 increase 1 ,regext_index 
+0x727c 031584 rtn 
+:      031588 generate_mic:
+0x727d 031589 add regc ,1 ,contr 
+0x727e 031590 ifetch 1 ,contr 
+0x727f 031591 iforce rega 
+0x7280 031592 call first_block_counter 
+0x7281 031593 call do_aes_ocb 
+0x7282 031595 force regidx_data ,regext_index 
+0x7283 031596 ifetch 1 ,regc 
+0x7284 031597 and_into 0x3 ,pdata 
+0x7285 031598 lshift16 pdata ,regext 
+0x7286 031599 set1 8 ,regext 
+0x7287 031600 call clear_hidata 
+0x7288 031601 call do_aes_cbc 
+0x7289 031603 copy rega ,loopcnt 
+0x728a 031604 add regc ,2 ,contr 
+0x728b 031605 call padding_data 
+:      031606 generate_mic_loop:
+0x728c 031607 call aes_load_data 
+0x728d 031608 call do_aes_cbc 
+0x728e 031609 deposit loopcnt 
+0x728f 031610 branch generate_mic_end ,blank 
+0x7290 031611 branch generate_mic_loop 
+:      031612 generate_mic_end:
+0x7291 031613 force regidx_result ,regext_index 
+0x7292 031614 deposit regext 
+0x7293 031615 store 4 ,mem_le_mic 
+0x7294 031616 rtn 
+:      031618 aes_crypt_data:
+0x7295 031619 increase 1 ,rega 
+0x7296 031620 call first_block_data 
+0x7297 031621 copy regc ,contr 
+0x7298 031622 call aes_load_xor 
+0x7299 031623 call do_aes_ctr 
+0x729a 031624 call store_enc_data 
+0x729b 031625 increase 16 ,regc 
+0x729c 031626 increase -16 ,regb 
+0x729d 031627 branch aes_crypt_data ,positive 
+0x729e 031628 rtn 
+:      031633 le_encrypt_new_start:
+0x729f 031634 call ccm_init_common 
+0x72a0 031635 bpatch patch1d_2 ,mem_patch1d 
+0x72a1 031636 jam 0 ,core_ccm_aad0 
+0x72a2 031637 jam 1 ,core_ccm_aad1 
+0x72a3 031638 fetch 1 ,mem_le_txheader 
+0x72a4 031639 and_into 0x3 ,pdata 
+0x72a5 031640 store 1 ,core_ccm_aad2 
+0x72a6 031641 fetch 2 ,mem_contr 
+0x72a7 031642 store 2 ,core_ccm_input_playload_addr 
+0x72a8 031643 setarg mem_le_txpayload 
+0x72a9 031644 store 2 ,core_ccm_output_playload_addr 
+0x72aa 031646 fetchr rega ,1 ,mem_le_txlen 
+0x72ab 031647 fetcht 5 ,mem_ccm_pcnt_tx 
+0x72ac 031648 call ccm_b0 
+0x72ad 031649 jam 2 ,core_ccm_ctrl 
+0x72ae 031650 jam 3 ,core_ccm_ctrl 
+0x72af 031652 fetch 1 ,mem_le_txlen 
+0x72b0 031653 store 2 ,core_ccm_inptr 
+0x72b1 031654 increase 4 ,pdata 
+0x72b2 031655 store 1 ,mem_le_txlen 
+0x72b3 031656 fetch 5 ,mem_ccm_pcnt_tx 
+0x72b4 031657 increase 1 ,pdata 
+0x72b5 031658 set0 le_ccm_directionbit ,pdata 
+0x72b6 031659 store 5 ,mem_ccm_pcnt_tx 
+0x72b7 031660 rtn 
+:      031663 ccm_wait_enc:
+0x72b8 031664 fetch 2 ,core_ccm_outptr 
+0x72b9 031665 isub temp ,null 
+0x72ba 031666 rtn zero 
+0x72bb 031667 nrtn blank 
+0x72bc 031669 branch ccm_wait_enc 
+:      031671 ccm_check_enc_done:
+0x72bd 031672 fetch 1 ,core_misc_status 
+0x72be 031673 bbit0 6 ,assert 
+:      031674 ccm_enc_done:
+0x72bf 031675 setarg mem_le_txpayload 
+0x72c0 031676 iadd temp ,contw 
+0x72c1 031677 arg regidx_result ,regext_index 
+0x72c2 031678 istorer regext ,4 ,contw 
+0x72c3 031679 branch ccm_ctrl_clr 
+:      031681 ccm_init_common:
+0x72c4 031682 bpatch patch1d_3 ,mem_patch1d 
+0x72c5 031683 force regidx_result ,regext_index 
+0x72c6 031684 call aes_clear 
+0x72c7 031685 call aes_clear_data 
+0x72c8 031686 setarg 0 
+0x72c9 031687 store 2 ,core_ccm_inptr 
+0x72ca 031688 rtn 
+:      031690 wait_ccm_done:
+0x72cb 031691 fetch 1 ,core_misc_status 
+0x72cc 031692 bbit0 6 ,wait_ccm_done 
+:      031693 ccm_ctrl_clr:
+0x72cd 031694 jam 0 ,core_ccm_ctrl 
+0x72ce 031695 rtn 
+:      031698 wait_aes:
+0x72cf 031699 nbranch wait_aes ,aes_ready 
+0x72d0 031700 rtn 
+:      031702 do_aes_ocb:
+0x72d1 031703 force 0x30 ,aes_ctrl 
+0x72d2 031704 force 0x0 ,aes_ctrl 
+0x72d3 031705 branch wait_aes 
+:      031707 do_aes_cbc:
+0x72d4 031708 force 0x32 ,aes_ctrl 
+0x72d5 031709 force 0x2 ,aes_ctrl 
+0x72d6 031710 branch wait_aes 
+:      031712 do_aes_ctr:
+0x72d7 031713 force 0x34 ,aes_ctrl 
+0x72d8 031714 force 0x4 ,aes_ctrl 
+0x72d9 031715 branch wait_aes 
+:      031718 aes_init:
+0x72da 031719 force 1 ,aes_ctrl 
+0x72db 031720 force 0 ,aes_ctrl 
+0x72dc 031721 rtn 
+:      031724 wait_keyinit_done:
+0x72dd 031725 fetch 1 ,core_aes_decode_key_init 
+0x72de 031726 bbit0 2 ,wait_keyinit_done 
+0x72df 031727 rtn 
+:      031730 dec_key_initial:
+0x72e0 031731 store 2 ,core_keybuf_saddr 
+0x72e1 031732 force 0xc0 ,aes_ctrl 
+0x72e2 031733 force 0x80 ,aes_ctrl 
+0x72e3 031734 branch wait_keyinit_done 
+:      031736 do_aes_ecb_dec:
+0x72e4 031737 force regidx_data ,regext_index 
+0x72e5 031738 copy regb ,contr 
+0x72e6 031739 force 4 ,loopcnt 
+0x72e7 031740 call aes_ecb_dec_loop 
+0x72e8 031742 force 0x180 ,aes_ctrl 
+0x72e9 031743 force 0x80 ,aes_ctrl 
+0x72ea 031744 call wait_aes 
+:      031745 ecb_dec_generate:
+0x72eb 031746 force regidx_result ,regext_index 
+0x72ec 031747 copy regc ,contw 
+0x72ed 031748 force 4 ,loopcnt 
+:      031749 ecb_dec_generate_loop:
+0x72ee 031750 copy regext ,pdata 
+0x72ef 031751 istore 4 ,contw 
+0x72f0 031752 increase 1 ,regext_index 
+0x72f1 031753 loop ecb_dec_generate_loop 
+0x72f2 031754 rtn 
+:      031756 aes_ecb_dec_loop:
+0x72f3 031757 ifetch 2 ,contr 
+0x72f4 031758 ifetcht 2 ,contr 
+0x72f5 031759 lshift16 temp ,temp 
+0x72f6 031760 ior temp ,regext 
+0x72f7 031761 increase 1 ,regext_index 
+0x72f8 031762 loop aes_ecb_dec_loop 
+0x72f9 031763 rtn 
+:      031766 do_aes_cbc_dec:
+0x72fa 031767 force regidx_xor ,regext_index 
+0x72fb 031768 copy rega ,contr 
+0x72fc 031769 force 4 ,loopcnt 
+0x72fd 031770 call aes_ecb_dec_loop 
+0x72fe 031772 force regidx_data ,regext_index 
+0x72ff 031773 copy regb ,contr 
+0x7300 031774 force 4 ,loopcnt 
+0x7301 031775 call aes_ecb_dec_loop 
+0x7302 031776 force 0x182 ,aes_ctrl 
+0x7303 031777 force 0x82 ,aes_ctrl 
+0x7304 031778 call wait_aes 
+0x7305 031779 branch ecb_dec_generate 
+:      031782 function_s1:
+0x7306 031783 force regidx_data ,regext_index 
+0x7307 031784 fetch 4 ,mem_le_mrand 
+0x7308 031785 iforce regext 
+0x7309 031786 increase 1 ,regext_index 
+0x730a 031787 ifetch 4 ,contr 
+0x730b 031788 iforce regext 
+0x730c 031789 increase 1 ,regext_index 
+0x730d 031790 fetch 4 ,mem_le_srand 
+0x730e 031791 iforce regext 
+0x730f 031792 increase 1 ,regext_index 
+0x7310 031793 ifetch 4 ,contr 
+0x7311 031794 iforce regext 
+0x7312 031795 increase 1 ,regext_index 
+0x7313 031796 call aes_clear 
+0x7314 031797 increase -4 ,regext_index 
+0x7315 031798 fetch 4 ,mem_le_tk 
+0x7316 031799 copy pdata ,regext 
+0x7317 031800 increase 4 ,regext_index 
+0x7318 031801 force 0x38 ,aes_ctrl 
+0x7319 031802 force 0x8 ,aes_ctrl 
+0x731a 031803 branch wait_aes 
+:      031806 function_c1:
+0x731b 031807 bpatch patch1d_4 ,mem_patch1d 
+0x731c 031808 fetch 6 ,mem_le_lap 
+0x731d 031809 fetcht 6 ,mem_le_plap 
+0x731e 031810 branch function_c1_master ,master 
+0x731f 031811 fetch 6 ,mem_le_plap 
+0x7320 031812 fetcht 6 ,mem_le_lap 
+:      031813 function_c1_master:
+0x7321 031814 force regidx_xor ,regext_index 
+0x7322 031815 copy temp ,regext 
+0x7323 031816 increase 1 ,regext_index 
+0x7324 031817 rshift32 temp ,regext 
+0x7325 031818 lshift16 pdata ,pdata 
+0x7326 031819 ior regext ,regext 
+0x7327 031820 increase 1 ,regext_index 
+0x7328 031821 rshift32 pdata ,regext 
+0x7329 031822 increase 1 ,regext_index 
+0x732a 031823 force 0 ,regext 
+0x732b 031824 force 0 ,pdata 
+0x732c 031825 fetch 1 ,mem_le_conn_peer_addr_type 
+0x732d 031826 fetcht 1 ,mem_le_adv_own_addr_type 
+0x732e 031827 nbranch function_c1_irat ,master 
+0x732f 031829 fetch 1 ,mem_le_conn_own_addr_type 
+0x7330 031830 fetcht 1 ,mem_le_conn_peer_addr_type 
+:      031831 function_c1_irat:
+0x7331 031832 store 1 ,mem_le_iat 
+0x7332 031833 storet 1 ,mem_le_rat 
+0x7333 031834 force regidx_data ,regext_index 
+0x7334 031835 arg mem_le_iat ,regb 
+0x7335 031836 force 4 ,loopcnt 
+:      031837 function_c1_loop1:
+0x7336 031838 ifetch 4 ,rega 
+0x7337 031839 ifetcht 4 ,regb 
+0x7338 031840 ixor temp ,regext 
+0x7339 031841 increase 1 ,regext_index 
+0x733a 031842 increase 4 ,rega 
+0x733b 031843 increase 4 ,regb 
+0x733c 031844 loop function_c1_loop1 
+0x733d 031845 call aes_clear 
+0x733e 031846 increase -4 ,regext_index 
+0x733f 031847 fetch 4 ,mem_le_tk 
+0x7340 031848 copy pdata ,regext 
+0x7341 031849 increase 4 ,regext_index 
+0x7342 031850 force 0x38 ,aes_ctrl 
+0x7343 031851 force 0xc ,aes_ctrl 
+0x7344 031852 call wait_aes 
+0x7345 031854 call aes_clear_data 
+0x7346 031855 force 0x3a ,aes_ctrl 
+0x7347 031856 force 0x8 ,aes_ctrl 
+0x7348 031857 branch wait_aes 
+:      031859 padding_data:
+0x7349 031860 compare 0 ,loopcnt ,3 
+0x734a 031861 rtn true 
+0x734b 031862 deposit contr 
+0x734c 031863 iadd loopcnt ,contw 
+0x734d 031864 force 0 ,pdata 
+:      031865 padding_loop:
+0x734e 031866 istore 1 ,contw 
+0x734f 031867 increase 1 ,loopcnt 
+0x7350 031868 compare 0 ,loopcnt ,3 
+0x7351 031869 rtn true 
+0x7352 031870 branch padding_loop 
+:      031872 aes_load_data:
+0x7353 031873 force regidx_data ,regext_index 
+:      031874 load_data_loop:
+0x7354 031875 deposit loopcnt 
+0x7355 031876 branch load_data_padding ,blank 
+0x7356 031877 ifetch 4 ,contr 
+0x7357 031878 increase -4 ,loopcnt 
+:      031879 load_data_padding:
+0x7358 031880 iforce regext 
+0x7359 031881 increase 1 ,regext_index 
+0x735a 031882 compare regidx_key ,regext_index ,0xf 
+0x735b 031883 rtn true 
+0x735c 031884 branch load_data_loop 
+:      031886 aes_load_xor:
+0x735d 031887 force regidx_xor ,regext_index 
+0x735e 031888 branch load_regext 
+:      031889 load_key:
+0x735f 031890 force regidx_key ,regext_index 
+0x7360 031891 branch load_regext 
+:      031892 load_data128:
+0x7361 031893 force regidx_data ,regext_index 
+:      031894 load_regext:
+0x7362 031895 force 4 ,loopcnt 
+:      031896 load_regext_loop:
+0x7363 031897 ifetch 4 ,contr 
+0x7364 031898 iforce regext 
+0x7365 031899 increase 1 ,regext_index 
+0x7366 031900 loop load_regext_loop 
+0x7367 031901 rtn 
+:      031903 load_sk:
+0x7368 031904 arg mem_le_sk ,contr 
+0x7369 031905 branch load_key 
+:      031907 clear_hidata:
+0x736a 031908 force 4 ,loopcnt 
+0x736b 031909 branch clear_data_rest 
+:      031911 regext_clear:
+0x736c 031912 force 0 ,regext_index 
+0x736d 031913 force 16 ,loopcnt 
+0x736e 031914 branch clear_loop 
+:      031916 aes_clear_data:
+0x736f 031917 force regidx_data ,regext_index 
+:      031918 aes_clear:
+0x7370 031919 force 4 ,loopcnt 
+:      031920 clear_loop:
+0x7371 031921 force 0 ,regext 
+:      031922 clear_data_rest:
+0x7372 031923 increase 1 ,regext_index 
+0x7373 031924 loop clear_loop 
+0x7374 031925 rtn 
+:      031927 store_aes_result:
+0x7375 031928 force regidx_result ,regext_index 
+0x7376 031929 force 4 ,loopcnt 
+:      031930 send_aes_result_loop:
+0x7377 031931 deposit regext 
+0x7378 031932 istore 4 ,contw 
+0x7379 031933 increase 1 ,regext_index 
+0x737a 031934 loop send_aes_result_loop 
+0x737b 031935 rtn 
+:      031937 store_enc_data:
+0x737c 031938 force regidx_result ,regext_index 
+0x737d 031939 copy regc ,contw 
+0x737e 031940 add regb ,1 ,loopcnt 
+0x737f 031941 sub loopcnt ,15 ,null 
+0x7380 031942 branch store_enc_loop ,positive 
+0x7381 031943 force 16 ,loopcnt 
+:      031944 store_enc_loop:
+0x7382 031945 deposit regext 
+0x7383 031946 sub loopcnt ,3 ,null 
+0x7384 031947 branch store_enc_byte ,positive 
+0x7385 031948 istore 4 ,contw 
+0x7386 031949 increase -4 ,loopcnt 
+0x7387 031950 rtn zero 
+0x7388 031951 increase 1 ,regext_index 
+0x7389 031952 branch store_enc_loop 
+:      031953 store_enc_byte:
+0x738a 031954 istore 1 ,contw 
+0x738b 031955 rshift8 pdata ,pdata 
+0x738c 031956 loop store_enc_byte 
+0x738d 031957 rtn 
+:      031960 compare_res:
+0x738e 031961 force regidx_result ,regext_index 
+0x738f 031962 force 4 ,loopcnt 
+:      031963 compare_res_loop:
+0x7390 031964 ifetch 4 ,contr 
+0x7391 031965 isub regext ,null 
+0x7392 031966 nrtn zero 
+0x7393 031967 increase 1 ,regext_index 
+0x7394 031968 loop compare_res_loop 
+0x7395 031969 branch enable_zero 
+:      031971 enable_authrom:
+0x7396 031972 fetch 1 ,core_clkoff 
+0x7397 031973 set0 clock_off_auth_rom ,pdata 
+0x7398 031974 store 1 ,core_clkoff 
+0x7399 031975 rtn 
+:      031977 disable_authrom:
+0x739a 031978 fetch 1 ,core_clkoff 
+0x739b 031979 set1 clock_off_auth_rom ,pdata 
+0x739c 031980 store 1 ,core_clkoff 
+0x739d 031981 rtn 
+:      031989 init_memp:
+0x739e 031990 arg mem_p ,contw 
+0x739f 031991 setsect 0 ,0x3ffff 
+0x73a0 031992 setsect 1 ,0x3ffff 
+0x73a1 031993 setsect 2 ,0x3ffff 
+0x73a2 031994 setsect 3 ,0x3fbff 
+0x73a3 031995 istore 9 ,contw 
+0x73a4 031996 setsect 0 ,0x3ffff 
+0x73a5 031997 setsect 1 ,0x3ffff 
+0x73a6 031998 setsect 2 ,0x3ffff 
+0x73a7 031999 setsect 3 ,0x3ffff 
+0x73a8 032000 istore 9 ,contw 
+0x73a9 032001 setsect 0 ,0x3ffff 
+0x73aa 032002 setsect 1 ,0x3ffff 
+0x73ab 032003 setsect 2 ,0x3cfff 
+0x73ac 032004 setsect 3 ,0x3ffff 
+0x73ad 032005 istore 9 ,contw 
+0x73ae 032006 setsect 0 ,0x3ffff 
+0x73af 032007 setsect 1 ,0x3ffff 
+0x73b0 032008 setsect 2 ,0x3ffef 
+0x73b1 032009 setsect 3 ,0x3ffff 
+0x73b2 032010 istore 9 ,contw 
+0x73b3 032011 setsect 0 ,0x3ffff 
+0x73b4 032012 setsect 1 ,0x3ffff 
+0x73b5 032013 setsect 2 ,0x3ffff 
+0x73b6 032014 setsect 3 ,0x3ffff 
+0x73b7 032015 istore 9 ,contw 
+0x73b8 032016 setsect 0 ,0x3ffff 
+0x73b9 032017 setsect 1 ,0x26c7f 
+0x73ba 032018 setsect 2 ,0x146b 
+0x73bb 032019 setsect 3 ,0x37bb3 
+0x73bc 032020 istore 9 ,contw 
+0x73bd 032021 setsect 0 ,0x1feb8 
+0x73be 032022 setsect 1 ,0x10c12 
+0x73bf 032023 setsect 2 ,0x2b722 
+0x73c0 032024 setsect 3 ,0x29fa6 
+0x73c1 032025 istore 9 ,contw 
+0x73c2 032026 setsect 0 ,0xe70f 
+0x73c3 032027 setsect 1 ,0x16720 
+0x73c4 032028 setsect 2 ,0x519e 
+0x73c5 032029 setsect 3 ,0x19084 
+0x73c6 032030 istore 9 ,contw 
+0x73c7 032031 setsect 0 ,0x31012 
+0x73c8 032032 setsect 1 ,0x360bf 
+0x73c9 032033 setsect 2 ,0x3f0af 
+0x73ca 032034 setsect 3 ,0x3d3 
+0x73cb 032035 istore 9 ,contw 
+0x73cc 032036 setsect 0 ,0x3a188 
+0x73cd 032037 setsect 1 ,0x3ad0 
+0x73ce 032038 setsect 2 ,0x3cbf2 
+0x73cf 032039 setsect 3 ,0x243d9 
+0x73d0 032040 istore 9 ,contw 
+0x73d1 032041 setsect 0 ,0x2b030 
+0x73d2 032042 setsect 1 ,0x36a03 
+0x73d3 032043 setsect 2 ,0x11188 
+0x73d4 032044 setsect 3 ,0x1e520 
+0x73d5 032045 istore 9 ,contw 
+0x73d6 032046 setsect 0 ,0x3a11e 
+0x73d7 032047 setsect 1 ,0xfe5d 
+0x73d8 032048 setsect 2 ,0xdd57 
+0x73d9 032049 setsect 3 ,0x1ac93 
+0x73da 032050 istore 9 ,contw 
+0x73db 032051 setsect 0 ,0x11ed 
+0x73dc 032052 setsect 1 ,0x218c4 
+0x73dd 032053 setsect 2 ,0x8da7 
+0x73de 032054 setsect 3 ,0x257ff 
+0x73df 032055 istore 9 ,contw 
+0x73e0 032056 setsect 0 ,0x3192b 
+0x73e1 032057 setsect 1 ,0x34641 
+0x73e2 032058 setsect 2 ,0x1be0c 
+0x73e3 032059 setsect 3 ,0x366ad 
+0x73e4 032060 istore 9 ,contw 
+0x73e5 032061 setsect 0 ,0x1f83 
+0x73e6 032062 setsect 1 ,0x15a23 
+0x73e7 032063 setsect 2 ,0x3f9b0 
+0x73e8 032064 setsect 3 ,0x3949 
+0x73e9 032065 istore 9 ,contw 
+0x73ea 032066 setsect 0 ,0x13a51 
+0x73eb 032067 setsect 1 ,0x153fd 
+0x73ec 032068 setsect 2 ,0x3372a 
+0x73ed 032069 setsect 3 ,0xf1bb 
+0x73ee 032070 istore 9 ,contw 
+0x73ef 032071 setsect 0 ,0x3ae85 
+0x73f0 032072 setsect 1 ,0x1eed9 
+0x73f1 032073 setsect 2 ,0x9e66 
+0x73f2 032074 setsect 3 ,0x1a8 
+0x73f3 032075 istore 8 ,contw 
+0x73f4 032076 rtn 
+:      032084 init_memp_256:
+0x73f5 032085 arg mem_p_256 ,contw 
+0x73f6 032086 setsect 0 ,0x3ffff 
+0x73f7 032087 setsect 1 ,0x3ffff 
+0x73f8 032088 setsect 2 ,0x3ffff 
+0x73f9 032089 setsect 3 ,0x3ffff 
+0x73fa 032090 istore 9 ,contw 
+0x73fb 032091 setsect 0 ,0x3ffff 
+0x73fc 032092 setsect 1 ,0x3f 
+0x73fd 032093 setsect 2 ,0x0 
+0x73fe 032094 setsect 3 ,0x0 
+0x73ff 032095 istore 9 ,contw 
+0x7400 032096 setsect 0 ,0x0 
+0x7401 032097 setsect 1 ,0x0 
+0x7402 032098 setsect 2 ,0x1000 
+0x7403 032099 setsect 3 ,0x0 
+0x7404 032100 istore 9 ,contw 
+0x7405 032101 setsect 0 ,0x3ff00 
+0x7406 032102 setsect 1 ,0x3ffff 
+0x7407 032103 setsect 2 ,0x3ffcf 
+0x7408 032104 setsect 3 ,0x3ffff 
+0x7409 032105 istore 9 ,contw 
+0x740a 032106 setsect 0 ,0x3ffff 
+0x740b 032107 setsect 1 ,0x3ffff 
+0x740c 032108 setsect 2 ,0x3ffff 
+0x740d 032109 setsect 3 ,0x3ff 
+0x740e 032110 istore 9 ,contw 
+0x740f 032111 setsect 0 ,0x0 
+0x7410 032112 setsect 1 ,0x0 
+0x7411 032113 setsect 2 ,0x0 
+0x7412 032114 setsect 3 ,0x0 
+0x7413 032115 istore 9 ,contw 
+0x7414 032116 setsect 0 ,0x10000 
+0x7415 032117 setsect 1 ,0x0 
+0x7416 032118 setsect 2 ,0x3f000 
+0x7417 032119 setsect 3 ,0x3ffff 
+0x7418 032120 istore 9 ,contw 
+0x7419 032121 setsect 0 ,0x296ff 
+0x741a 032122 setsect 1 ,0x22630 
+0x741b 032123 setsect 2 ,0x3945d 
+0x741c 032124 setsect 3 ,0x3d284 
+0x741d 032125 istore 9 ,contw 
+0x741e 032126 setsect 0 ,0x333a0 
+0x741f 032127 setsect 1 ,0x4b7a 
+0x7420 032128 setsect 2 ,0x37d8 
+0x7421 032129 setsect 3 ,0x3c9dc 
+0x7422 032130 istore 9 ,contw 
+0x7423 032131 setsect 0 ,0x3a440 
+0x7424 032132 setsect 1 ,0x1b958 
+0x7425 032133 setsect 2 ,0x38bce 
+0x7426 032134 setsect 3 ,0x1091f 
+0x7427 032135 istore 9 ,contw 
+0x7428 032136 setsect 0 ,0x2e12c 
+0x7429 032137 setsect 1 ,0x1f47c 
+0x742a 032138 setsect 2 ,0x356b1 
+0x742b 032139 setsect 3 ,0x2fd47 
+0x742c 032140 istore 9 ,contw 
+0x742d 032141 setsect 0 ,0x6837 
+0x742e 032142 setsect 1 ,0x2ed90 
+0x742f 032143 setsect 2 ,0x1ecec 
+0x7430 032144 setsect 3 ,0x1acc5 
+0x7431 032145 istore 9 ,contw 
+0x7432 032146 setsect 0 ,0x23357 
+0x7433 032147 setsect 1 ,0x18af3 
+0x7434 032148 setsect 2 ,0xf9e1 
+0x7435 032149 setsect 3 ,0x129f0 
+0x7436 032150 istore 9 ,contw 
+0x7437 032151 setsect 0 ,0x2e7eb 
+0x7438 032152 setsect 1 ,0x3e6e3 
+0x7439 032153 setsect 2 ,0x3e1a7 
+0x743a 032154 setsect 3 ,0x10b8b 
+0x743b 032155 istore 9 ,contw 
+0x743c 032156 setsect 0 ,0x24fe3 
+0x743d 032157 setsect 1 ,0x20ef 
+0x743e 032158 setsect 2 ,0x1b5a6 
+0x743f 032159 setsect 3 ,0xdc2f 
+0x7440 032160 istore 9 ,contw 
+0x7441 032161 setsect 0 ,0x13860 
+0x7442 032162 setsect 1 ,0x2bd69 
+0x7443 032163 setsect 2 ,0x391a 
+0x7444 032164 setsect 3 ,0x1b222 
+0x7445 032165 istore 9 ,contw 
+0x7446 032166 rtn 
+:      032172 publickey_init:
+0x7447 032175 branch sp_initialize_256 
+:      032177 sp_calc_sequence_256_check:
+0x7448 032178 bpatch patch1d_5 ,mem_patch1d 
+0x7449 032183 fetch 1 ,mem_secure_connections_enable 
+0x744a 032184 rtn blank 
+0x744b 032185 fetch 1 ,mem_sc_local_key_invalid 
+0x744c 032186 rtneq sp_key_valid_256 
+0x744d 032189 fetch 1 ,mem_sc_calc 
+0x744e 032190 beq sp_calc_standby ,sp_initialize_256 
+0x744f 032191 rtn 
+:      032192 stop_publickey_calc_256:
+0x7450 032193 jam sp_calc_standby ,mem_sc_calc 
+0x7451 032194 rtn 
+:      032199 sp_clear_flags:
+0x7452 032200 bpatch patch1d_6 ,mem_patch1d 
+0x7453 032201 setarg mem_sp_state_end 
+0x7454 032202 arg mem_sp_state_start ,contw 
+0x7455 032203 isub contw ,loopcnt 
+0x7456 032204 call clear_mem 
+0x7457 032205 setarg mem_sp_state_xmem_end 
+0x7458 032206 arg mem_sp_state_xmem ,contw 
+0x7459 032207 isub contw ,loopcnt 
+0x745a 032208 branch clear_mem 
+:      032212 sp_calc_check_publickey_256:
+0x745b 032213 call sp_calc_b256 
+0x745c 032214 arg mem_le_pubkey_remote_y_256 ,rega 
+0x745d 032215 arg mem_t7_256 ,contw 
+0x745e 032216 call bn_sqrmod_256 
+0x745f 032217 arg mem_le_pubkey_remote_x_256 ,rega 
+0x7460 032218 arg mem_t2_256 ,contw 
+0x7461 032219 call bn_sqrmod_256 
+0x7462 032220 arg mem_t2_256 ,rega 
+0x7463 032221 arg mem_le_pubkey_remote_x_256 ,regb 
+0x7464 032222 arg mem_t2_256 ,contw 
+0x7465 032223 call bn_mulmod_256 
+0x7466 032224 arg mem_a_256 ,rega 
+0x7467 032225 arg mem_le_pubkey_remote_x_256 ,regb 
+0x7468 032226 arg mem_t3_256 ,contw 
+0x7469 032227 call bn_mulmod_256 
+0x746a 032228 arg mem_t3_256 ,rega 
+0x746b 032229 arg mem_t2_256 ,regb 
+0x746c 032230 arg mem_t2_256 ,contw 
+0x746d 032231 call bn_addmod_256 
+0x746e 032232 arg mem_t0_256 ,rega 
+0x746f 032233 arg mem_t2_256 ,regb 
+0x7470 032234 arg mem_t0_256 ,contw 
+0x7471 032235 call bn_addmod_256 
+0x7472 032236 arg 32 ,loopcnt 
+0x7473 032237 arg mem_t7_256 ,rega 
+0x7474 032238 arg mem_t0_256 ,regb 
+0x7475 032239 branch string_compare 
+:      032241 sp_calc_b256:
+0x7476 032242 arg mem_gy_256 ,rega 
+0x7477 032243 arg mem_t0_256 ,contw 
+0x7478 032244 call bn_sqrmod_256 
+0x7479 032245 arg mem_gx_256 ,rega 
+0x747a 032246 arg mem_t2_256 ,contw 
+0x747b 032247 call bn_sqrmod_256 
+0x747c 032248 arg mem_t2_256 ,rega 
+0x747d 032249 arg mem_gx_256 ,regb 
+0x747e 032250 arg mem_t2_256 ,contw 
+0x747f 032251 call bn_mulmod_256 
+0x7480 032252 arg mem_a_256 ,rega 
+0x7481 032253 arg mem_gx_256 ,regb 
+0x7482 032254 arg mem_t3_256 ,contw 
+0x7483 032255 call bn_mulmod_256 
+0x7484 032256 arg mem_t3_256 ,rega 
+0x7485 032257 arg mem_t2_256 ,regb 
+0x7486 032258 arg mem_t2_256 ,contw 
+0x7487 032259 call bn_addmod_256 
+0x7488 032260 arg mem_t0_256 ,rega 
+0x7489 032261 arg mem_t2_256 ,regb 
+0x748a 032262 arg mem_t0_256 ,contw 
+0x748b 032263 branch bn_submod_256 
+:      032268 random_generator:
+0x748c 032269 increase -1 ,queue 
+0x748d 032270 nrtn positive 
+0x748e 032271 random pdata 
+0x748f 032272 istore 2 ,contw 
+0x7490 032273 branch random_generator 
+:      032274 compare4:
+0x7491 032275 increase -1 ,queue 
+0x7492 032276 nbranch compare4_success ,positive 
+0x7493 032277 ifetch 4 ,rega 
+0x7494 032278 copy pdata ,temp 
+0x7495 032279 ifetch 4 ,regb 
+0x7496 032280 iflip temp ,pdata 
+0x7497 032281 nbranch compare4_failed ,zero 
+0x7498 032282 increase 4 ,rega 
+0x7499 032283 increase 4 ,regb 
+0x749a 032284 branch compare4 
+:      032285 compare4_failed:
+0x749b 032286 branch disable_true 
+:      032288 compare4_success:
+0x749c 032289 branch enable_true 
+:      032294 bn_testbit:
+0x749d 032295 and pdata ,7 ,queue 
+0x749e 032296 rshift3 pdata ,pdata 
+0x749f 032297 iadd contr ,contr 
+0x74a0 032298 ifetch 1 ,contr 
+0x74a1 032299 qisolate0 pdata 
+0x74a2 032300 rtn 
+:      032303 bn_eq_zero:
+0x74a3 032304 ifetch 8 ,contr 
+0x74a4 032305 nrtn blank 
+0x74a5 032306 ifetch 8 ,contr 
+0x74a6 032307 nrtn blank 
+0x74a7 032308 ifetch 8 ,contr 
+0x74a8 032309 rtn 
+:      032314 bn_eq_0:
+0x74a9 032315 ifetch 4 ,rega 
+0x74aa 032316 iforce temp 
+0x74ab 032317 ifetch 4 ,regb 
+0x74ac 032318 isub temp ,null 
+0x74ad 032319 nrtn zero 
+0x74ae 032320 increase 4 ,rega 
+0x74af 032321 increase 4 ,regb 
+0x74b0 032322 loop bn_eq_0 
+0x74b1 032323 rtn 
+:      032325 bn_bigeq:
+0x74b2 032326 force 6 ,loopcnt 
+0x74b3 032327 increase 20 ,rega 
+0x74b4 032328 increase 20 ,regb 
+:      032329 bn_bigeq_0:
+0x74b5 032330 ifetch 4 ,regb 
+0x74b6 032331 iforce temp 
+0x74b7 032332 ifetch 4 ,rega 
+0x74b8 032333 isub temp ,pdata 
+0x74b9 032334 nrtn positive 
+0x74ba 032335 nrtn blank 
+0x74bb 032336 increase -4 ,rega 
+0x74bc 032337 increase -4 ,regb 
+0x74bd 032338 loop bn_bigeq_0 
+0x74be 032339 rtn 
+:      032340 bn_add:
+0x74bf 032341 force 6 ,loopcnt 
+0x74c0 032342 force 0 ,regc 
+:      032343 bn_add_0:
+0x74c1 032344 ifetch 4 ,rega 
+0x74c2 032345 iforce temp 
+0x74c3 032346 ifetch 4 ,regb 
+0x74c4 032347 iadd temp ,pdata 
+0x74c5 032348 iadd regc ,pdata 
+0x74c6 032349 istore 4 ,contw 
+0x74c7 032350 isolate1 32 ,pdata 
+0x74c8 032351 setflag true ,0 ,regc 
+0x74c9 032352 increase 4 ,rega 
+0x74ca 032353 increase 4 ,regb 
+0x74cb 032354 loop bn_add_0 
+0x74cc 032355 rtn 
+:      032357 bn_sub:
+0x74cd 032358 force 6 ,loopcnt 
+0x74ce 032359 force 0 ,regc 
+:      032360 bn_sub_0:
+0x74cf 032361 ifetch 4 ,regb 
+0x74d0 032362 iforce temp 
+0x74d1 032363 ifetch 4 ,rega 
+0x74d2 032364 isub temp ,pdata 
+0x74d3 032365 isub regc ,pdata 
+0x74d4 032366 istore 4 ,contw 
+0x74d5 032367 isolate1 32 ,pdata 
+0x74d6 032368 setflag true ,0 ,regc 
+0x74d7 032369 increase 4 ,rega 
+0x74d8 032370 increase 4 ,regb 
+0x74d9 032371 loop bn_sub_0 
+0x74da 032372 rtn 
+:      032374 bn_rshift6:
+0x74db 032375 force 6 ,loopcnt 
+0x74dc 032376 increase 20 ,rega 
+:      032377 bn_rshift:
+0x74dd 032378 force 0 ,regc 
+:      032379 bn_rshift_0:
+0x74de 032380 ifetch 4 ,rega 
+0x74df 032381 isolate1 0 ,pdata 
+0x74e0 032382 setflag true ,1 ,regc 
+0x74e1 032383 rshift pdata ,pdata 
+0x74e2 032384 isolate1 0 ,regc 
+0x74e3 032385 setflag true ,31 ,pdata 
+0x74e4 032386 istore 4 ,rega 
+0x74e5 032387 increase -4 ,rega 
+0x74e6 032388 rshift regc ,regc 
+0x74e7 032389 loop bn_rshift_0 
+0x74e8 032390 rtn 
+:      032391 bn_lshift:
+0x74e9 032392 force 6 ,loopcnt 
+0x74ea 032393 force 0 ,regc 
+:      032394 bn_lshift_0:
+0x74eb 032395 ifetch 4 ,rega 
+0x74ec 032396 isolate1 31 ,pdata 
+0x74ed 032397 setflag true ,1 ,regc 
+0x74ee 032398 lshift pdata ,pdata 
+0x74ef 032399 isolate1 0 ,regc 
+0x74f0 032400 setflag true ,0 ,pdata 
+0x74f1 032401 istore 4 ,rega 
+0x74f2 032402 increase 4 ,rega 
+0x74f3 032403 rshift regc ,regc 
+0x74f4 032404 loop bn_lshift_0 
+0x74f5 032405 rtn 
+:      032408 bn_load:
+0x74f6 032409 force 6 ,loopcnt 
+:      032410 bn_load_0:
+0x74f7 032411 ifetch 4 ,contr 
+0x74f8 032412 iforce regext 
+0x74f9 032413 increase 1 ,regext_index 
+0x74fa 032414 loop bn_load_0 
+0x74fb 032415 rtn 
+:      032419 sp_initialize_256:
+0x74fc 032420 bpatch patch1d_7 ,mem_patch1d 
+0x74fd 032421 fetch 1 ,mem_secure_connections_enable 
+0x74fe 032422 nbranch sp_pubkey_calc_256 ,blank 
+:      032424 sc_reset:
+0x74ff 032425 jam sp_calc_standby ,mem_sc_calc 
+0x7500 032426 jam sp_key_invalid ,mem_sc_local_key_invalid 
+0x7501 032427 rtn 
+:      032431 sp_wait_pubkey_calc_256_done:
+0x7502 032432 fetch 1 ,mem_secure_connections_enable 
+0x7503 032433 rtn blank 
+0x7504 032434 fetch 1 ,mem_sc_local_key_invalid 
+0x7505 032435 rtneq sp_key_valid_256 
+0x7506 032436 call sp_calc_sequence_256 
+0x7507 032437 branch sp_wait_pubkey_calc_256_done 
+:      032441 sp_debug_private_256:
+0x7508 032442 arg mem_sc_private_key_256 ,contw 
+0x7509 032443 setsect 0 ,0x1abd 
+0x750a 032444 setsect 1 ,0x1b34f 
+0x750b 032445 setsect 2 ,0x19b8a 
+0x750c 032446 setsect 3 ,0x26562 
+0x750d 032447 istore 9 ,contw 
+0x750e 032448 setsect 0 ,0x340b7 
+0x750f 032449 setsect 1 ,0x1efa 
+0x7510 032450 setsect 2 ,0xaff6 
+0x7511 032451 setsect 3 ,0xfd41 
+0x7512 032452 istore 9 ,contw 
+0x7513 032453 setsect 0 ,0x3d210 
+0x7514 032454 setsect 1 ,0x26cf8 
+0x7515 032455 setsect 2 ,0x3874c 
+0x7516 032456 setsect 3 ,0x3157c 
+0x7517 032457 istore 9 ,contw 
+0x7518 032458 setsect 0 ,0x2d4a3 
+0x7519 032459 setsect 1 ,0x3d27d 
+0x751a 032460 setsect 2 ,0x3 
+0x751b 032461 istore 5 ,contw 
+0x751c 032462 rtn 
+:      032465 sp_pubkey_calc_256:
+0x751d 032466 fetch 1 ,mem_sc_local_key_invalid 
+0x751e 032467 rtnne sp_key_invalid 
+0x751f 032468 fetch 1 ,mem_sc_calc 
+0x7520 032469 rtnne sp_calc_standby 
+0x7521 032470 call init_memp_256 
+0x7522 032471 arg mem_sc_private_key_256 ,contw 
+0x7523 032472 force 15 ,queue 
+0x7524 032473 call random_generator 
+0x7525 032474 random pdata 
+0x7526 032475 rshift pdata ,pdata 
+0x7527 032476 istore 2 ,contw 
+0x7528 032478 fetch 1 ,mem_sp_debug_mode 
+0x7529 032479 ncall sp_debug_private_256 ,blank 
+0x752a 032481 arg mem_k_256 ,contw 
+0x752b 032482 arg mem_sc_private_key_256 ,contr 
+0x752c 032483 call memcpy32 
+0x752d 032485 arg mem_ax_256 ,contw 
+0x752e 032486 arg mem_gx_256 ,contr 
+0x752f 032487 call memcpy64 
+0x7530 032489 arg mem_az_256 ,contw 
+0x7531 032490 call clear_mem_256 
+0x7532 032491 jam 1 ,mem_az_256 
+0x7533 032493 call eckp_calc_init_256 
+0x7534 032494 jam sp_calc_pubkey_256 ,mem_sc_calc 
+0x7535 032495 rtn 
+:      032497 sp_pubkey_generated_256:
+0x7536 032498 arg mem_sc_pubkey_local_x_256 ,contw 
+0x7537 032499 arg mem_bx_256 ,contr 
+0x7538 032500 call memcpy64 
+0x7539 032501 jam sp_key_valid_256 ,mem_sc_local_key_invalid 
+0x753a 032502 jam sp_calc_standby ,mem_sc_calc 
+0x753b 032503 rtn 
+:      032507 sp_dhkey_calc_256:
+0x753c 032508 fetch 1 ,mem_sp_dhkey_invalid 
+0x753d 032509 rtnne sp_key_invalid 
+0x753e 032510 fetch 1 ,mem_sc_calc 
+0x753f 032511 rtnne sp_calc_standby 
+0x7540 032513 arg mem_k_256 ,contw 
+0x7541 032514 arg mem_sc_private_key_256 ,contr 
+0x7542 032515 call memcpy32 
+0x7543 032517 arg mem_ax_256 ,contw 
+0x7544 032518 arg mem_le_pubkey_remote_x_256 ,contr 
+0x7545 032519 call memcpy64 
+0x7546 032521 arg mem_az_256 ,contw 
+0x7547 032522 call clear_mem_256 
+0x7548 032523 jam 1 ,mem_az_256 
+0x7549 032525 call eckp_calc_init_256 
+0x754a 032526 jam sp_calc_dhkey_256 ,mem_sc_calc 
+0x754b 032527 rtn 
+:      032530 sp_dhkey_generated_256:
+0x754c 032532 arg mem_le_dhkey_256 ,contw 
+0x754d 032533 arg mem_bx_256 ,contr 
+0x754e 032534 call memcpy32 
+0x754f 032535 jam sp_key_valid_256 ,mem_sp_dhkey_invalid 
+0x7550 032536 jam sp_calc_standby ,mem_sc_calc 
+0x7551 032537 rtn 
+:      032541 sp_calc_sequence_256:
+0x7552 032542 fetch 1 ,mem_secure_connections_enable 
+0x7553 032543 rtn blank 
+0x7554 032544 fetch 1 ,mem_sc_calc 
+0x7555 032545 rtn blank 
+0x7556 032546 increase 0x80 ,pdata 
+0x7557 032547 store 1 ,mem_sc_calc 
+0x7558 032548 rtnbit1 7 
+0x7559 032549 fetch 2 ,mem_ec_loopc 
+0x755a 032550 branch sp_calc_sequence_done_256 ,blank 
+0x755b 032551 branch eckp_calc_256 
+:      032553 sp_calc_sequence_done_256:
+0x755c 032554 bpatch patch1e_0 ,mem_patch1e 
+0x755d 032555 call ecunmapz_256 
+0x755e 032556 fetch 1 ,mem_sc_calc 
+0x755f 032557 beq sp_calc_pubkey_256 ,sp_pubkey_generated_256 
+0x7560 032558 beq sp_calc_dhkey_256 ,sp_dhkey_generated_256 
+0x7561 032559 rtn 
+:      032562 eckp_calc_256:
+0x7562 032563 call ecdbl_256 
+0x7563 032564 fetch 2 ,mem_ec_loopc 
+0x7564 032565 increase -1 ,pdata 
+0x7565 032566 store 2 ,mem_ec_loopc 
+0x7566 032567 arg mem_k_256 ,contr 
+0x7567 032568 call bn_testbit 
+0x7568 032569 rtn true 
+0x7569 032570 branch ecadd_256 
+:      032572 eckp_calc_init_256:
+0x756a 032573 bpatch patch1e_1 ,mem_patch1e 
+0x756b 032574 setarg 256 
+0x756c 032575 store 2 ,mem_ec_loopc 
+:      032576 eckp_calc_init_256_1:
+0x756d 032577 fetch 2 ,mem_ec_loopc 
+0x756e 032578 rtn blank 
+0x756f 032579 increase -1 ,pdata 
+0x7570 032580 store 2 ,mem_ec_loopc 
+0x7571 032581 arg mem_k_256 ,contr 
+0x7572 032582 call bn_testbit 
+0x7573 032583 branch eckp_calc_init_256_1 ,true 
+0x7574 032584 arg mem_ax_256 ,contr 
+0x7575 032585 arg mem_cx_256 ,contw 
+0x7576 032586 branch memcpy96 
+:      032589 ecunmapz_256:
+0x7577 032590 arg mem_cz_256 ,rega 
+0x7578 032591 arg mem_t3_256 ,contw 
+0x7579 032592 call bn_invmod_256 
+0x757a 032593 arg mem_t3_256 ,rega 
+0x757b 032594 arg mem_t1_256 ,contw 
+0x757c 032595 call bn_sqrmod_256 
+0x757d 032596 arg mem_cx_256 ,rega 
+0x757e 032597 arg mem_t1_256 ,regb 
+0x757f 032598 arg mem_bx_256 ,contw 
+0x7580 032599 call bn_mulmod_256 
+0x7581 032600 arg mem_t3_256 ,rega 
+0x7582 032601 arg mem_t1_256 ,regb 
+0x7583 032602 arg mem_t2_256 ,contw 
+0x7584 032603 call bn_mulmod_256 
+0x7585 032604 arg mem_cy_256 ,rega 
+0x7586 032605 arg mem_t2_256 ,regb 
+0x7587 032606 arg mem_by_256 ,contw 
+0x7588 032607 branch bn_mulmod_256 
+:      032609 ecdbl_256:
+0x7589 032610 arg mem_cz_256 ,rega 
+0x758a 032611 arg mem_t2_256 ,contw 
+0x758b 032612 call bn_sqrmod_256 
+0x758c 032613 arg mem_t2_256 ,rega 
+0x758d 032614 arg mem_t3_256 ,contw 
+0x758e 032615 call bn_sqrmod_256 
+0x758f 032617 arg mem_a_256 ,rega 
+0x7590 032618 arg mem_t3_256 ,regb 
+0x7591 032619 arg mem_t3_256 ,contw 
+0x7592 032620 call bn_mulmod_256 
+0x7593 032621 arg mem_cx_256 ,rega 
+0x7594 032622 arg mem_t2_256 ,contw 
+0x7595 032623 call bn_sqrmod_256 
+0x7596 032625 arg mem_t2_256 ,contr 
+0x7597 032626 arg mem_t1_256 ,contw 
+0x7598 032627 call memcpy32 
+0x7599 032628 arg mem_t1_256 ,rega 
+0x759a 032629 call bn_lshiftmod_256 
+0x759b 032630 arg mem_t2_256 ,rega 
+0x759c 032631 arg mem_t1_256 ,regb 
+0x759d 032632 arg mem_t2_256 ,contw 
+0x759e 032633 call bn_addmod_256 
+0x759f 032635 arg mem_t2_256 ,rega 
+0x75a0 032636 arg mem_t3_256 ,regb 
+0x75a1 032637 arg mem_t2_256 ,contw 
+0x75a2 032638 call bn_addmod_256 
+0x75a3 032640 arg mem_cx_256 ,contr 
+0x75a4 032641 arg mem_t1_256 ,contw 
+0x75a5 032642 call memcpy32 
+0x75a6 032643 arg mem_cy_256 ,rega 
+0x75a7 032644 arg mem_t3_256 ,contw 
+0x75a8 032645 call bn_sqrmod_256 
+0x75a9 032646 arg mem_t1_256 ,rega 
+0x75aa 032647 call bn_lshiftmod_256 
+0x75ab 032648 arg mem_t1_256 ,rega 
+0x75ac 032649 call bn_lshiftmod_256 
+0x75ad 032650 arg mem_t1_256 ,rega 
+0x75ae 032651 arg mem_t3_256 ,regb 
+0x75af 032652 arg mem_t1_256 ,contw 
+0x75b0 032653 call bn_mulmod_256 
+0x75b1 032654 arg mem_t3_256 ,rega 
+0x75b2 032655 arg mem_t0_256 ,contw 
+0x75b3 032656 call bn_sqrmod_256 
+0x75b4 032657 arg mem_t0_256 ,rega 
+0x75b5 032658 call bn_lshiftmod_256 
+0x75b6 032659 arg mem_t0_256 ,rega 
+0x75b7 032660 call bn_lshiftmod_256 
+0x75b8 032661 arg mem_t0_256 ,rega 
+0x75b9 032662 call bn_lshiftmod_256 
+0x75ba 032663 arg mem_cy_256 ,contr 
+0x75bb 032664 arg mem_t3_256 ,contw 
+0x75bc 032665 call memcpy32 
+0x75bd 032666 arg mem_t3_256 ,rega 
+0x75be 032667 call bn_lshiftmod_256 
+0x75bf 032668 arg mem_t3_256 ,rega 
+0x75c0 032669 arg mem_cz_256 ,regb 
+0x75c1 032670 arg mem_cz_256 ,contw 
+0x75c2 032671 call bn_mulmod_256 
+0x75c3 032674 arg mem_t2_256 ,rega 
+0x75c4 032675 arg mem_t3_256 ,contw 
+0x75c5 032676 call bn_sqrmod_256 
+0x75c6 032678 arg mem_t3_256 ,rega 
+0x75c7 032679 arg mem_t1_256 ,regb 
+0x75c8 032680 arg mem_t3_256 ,contw 
+0x75c9 032681 call bn_submod_256 
+0x75ca 032682 arg mem_t3_256 ,rega 
+0x75cb 032683 arg mem_t1_256 ,regb 
+0x75cc 032684 arg mem_cx_256 ,contw 
+0x75cd 032685 call bn_submod_256 
+0x75ce 032686 arg mem_t1_256 ,rega 
+0x75cf 032687 arg mem_cx_256 ,regb 
+0x75d0 032688 arg mem_t3_256 ,contw 
+0x75d1 032689 call bn_submod_256 
+0x75d2 032690 arg mem_t3_256 ,rega 
+0x75d3 032691 arg mem_t2_256 ,regb 
+0x75d4 032692 arg mem_t3_256 ,contw 
+0x75d5 032693 call bn_mulmod_256 
+0x75d6 032694 arg mem_t3_256 ,rega 
+0x75d7 032695 arg mem_t0_256 ,regb 
+0x75d8 032696 arg mem_cy_256 ,contw 
+0x75d9 032697 branch bn_submod_256 
+:      032699 ecadd_256:
+0x75da 032701 arg mem_az_256 ,rega 
+0x75db 032702 arg mem_t7_256 ,contw 
+0x75dc 032703 call bn_sqrmod_256 
+0x75dd 032704 arg mem_cx_256 ,rega 
+0x75de 032705 arg mem_t7_256 ,regb 
+0x75df 032706 arg mem_t0_256 ,contw 
+0x75e0 032707 call bn_mulmod_256 
+0x75e1 032710 arg mem_az_256 ,rega 
+0x75e2 032711 arg mem_t7_256 ,regb 
+0x75e3 032712 arg mem_t7_256 ,contw 
+0x75e4 032713 call bn_mulmod_256 
+0x75e5 032714 arg mem_cy_256 ,rega 
+0x75e6 032715 arg mem_t7_256 ,regb 
+0x75e7 032716 arg mem_t1_256 ,contw 
+0x75e8 032717 call bn_mulmod_256 
+0x75e9 032720 arg mem_cz_256 ,rega 
+0x75ea 032721 arg mem_t7_256 ,contw 
+0x75eb 032722 call bn_sqrmod_256 
+0x75ec 032723 arg mem_ax_256 ,rega 
+0x75ed 032724 arg mem_t7_256 ,regb 
+0x75ee 032725 arg mem_t2_256 ,contw 
+0x75ef 032726 call bn_mulmod_256 
+0x75f0 032728 arg mem_cz_256 ,rega 
+0x75f1 032729 arg mem_t7_256 ,regb 
+0x75f2 032730 arg mem_t7_256 ,contw 
+0x75f3 032731 call bn_mulmod_256 
+0x75f4 032732 arg mem_ay_256 ,rega 
+0x75f5 032733 arg mem_t7_256 ,regb 
+0x75f6 032734 arg mem_t3_256 ,contw 
+0x75f7 032735 call bn_mulmod_256 
+0x75f8 032740 arg mem_t0_256 ,regb 
+0x75f9 032741 arg mem_t2_256 ,rega 
+0x75fa 032742 arg mem_t7_256 ,contw 
+0x75fb 032743 call bn_submod_256 
+0x75fc 032744 arg mem_t0_256 ,rega 
+0x75fd 032745 arg mem_t2_256 ,regb 
+0x75fe 032746 arg mem_t0_256 ,contw 
+0x75ff 032747 call bn_addmod_256 
+0x7600 032750 arg mem_t1_256 ,regb 
+0x7601 032751 arg mem_t3_256 ,rega 
+0x7602 032752 arg mem_t2_256 ,contw 
+0x7603 032753 call bn_submod_256 
+0x7604 032754 arg mem_t1_256 ,rega 
+0x7605 032755 arg mem_t3_256 ,regb 
+0x7606 032756 arg mem_t1_256 ,contw 
+0x7607 032757 call bn_addmod_256 
+0x7608 032758 arg mem_t1_256 ,rega 
+0x7609 032759 arg mem_t7_256 ,regb 
+0x760a 032760 arg mem_t1_256 ,contw 
+0x760b 032761 call bn_mulmod_256 
+0x760c 032762 arg mem_cz_256 ,rega 
+0x760d 032763 arg mem_az_256 ,regb 
+0x760e 032764 arg mem_t3_256 ,contw 
+0x760f 032765 call bn_mulmod_256 
+0x7610 032766 arg mem_t3_256 ,rega 
+0x7611 032767 arg mem_t7_256 ,regb 
+0x7612 032768 arg mem_cz_256 ,contw 
+0x7613 032769 call bn_mulmod_256 
+0x7614 032771 arg mem_t7_256 ,rega 
+0x7615 032772 arg mem_t7_256 ,contw 
+0x7616 032773 call bn_sqrmod_256 
+0x7617 032774 arg mem_t7_256 ,rega 
+0x7618 032775 arg mem_t0_256 ,regb 
+0x7619 032776 arg mem_t3_256 ,contw 
+0x761a 032777 call bn_mulmod_256 
+0x761b 032778 arg mem_t7_256 ,rega 
+0x761c 032779 arg mem_t1_256 ,regb 
+0x761d 032780 arg mem_t1_256 ,contw 
+0x761e 032781 call bn_mulmod_256 
+0x761f 032782 arg mem_t2_256 ,rega 
+0x7620 032783 arg mem_cx_256 ,contw 
+0x7621 032784 call bn_sqrmod_256 
+0x7622 032785 arg mem_cx_256 ,rega 
+0x7623 032786 arg mem_t3_256 ,regb 
+0x7624 032787 arg mem_cx_256 ,contw 
+0x7625 032788 call bn_submod_256 
+0x7626 032789 arg mem_cx_256 ,contr 
+0x7627 032790 arg mem_t7_256 ,contw 
+0x7628 032791 call memcpy32 
+0x7629 032792 arg mem_t7_256 ,rega 
+0x762a 032793 call bn_lshiftmod_256 
+0x762b 032794 arg mem_t3_256 ,rega 
+0x762c 032795 arg mem_t7_256 ,regb 
+0x762d 032796 arg mem_t3_256 ,contw 
+0x762e 032797 call bn_submod_256 
+0x762f 032798 arg mem_t3_256 ,rega 
+0x7630 032799 arg mem_t2_256 ,regb 
+0x7631 032800 arg mem_t2_256 ,contw 
+0x7632 032801 call bn_mulmod_256 
+0x7633 032802 arg mem_t2_256 ,rega 
+0x7634 032803 arg mem_t1_256 ,regb 
+0x7635 032804 arg mem_cy_256 ,contw 
+0x7636 032805 call bn_submod_256 
+0x7637 032806 arg mem_cy_256 ,rega 
+0x7638 032807 arg mem_p_256 ,regb 
+0x7639 032808 arg mem_cy_256 ,contw 
+0x763a 032809 force 0 ,regc 
+0x763b 032810 fetch 1 ,mem_cy_256 
+0x763c 032811 isolate1 0 ,pdata 
+0x763d 032812 call bn_add_256 ,true 
+0x763e 032813 copy regc ,alarm 
+0x763f 032814 arg mem_cy_256 ,rega 
+0x7640 032815 call bn_rshift_256 
+0x7641 032816 fetch 1 ,mem_cy5_256 
+0x7642 032817 isolate1 0 ,alarm 
+0x7643 032818 setflag true ,7 ,pdata 
+0x7644 032819 store 1 ,mem_cy5_256 
+0x7645 032820 rtn 
+:      032822 bn_invmod_256:
+0x7646 032823 copy contw ,timeup 
+0x7647 032824 arg mem_tmp0_256 ,contw 
+0x7648 032825 call clear_mem_256 
+0x7649 032826 force 0 ,pdata 
+0x764a 032828 store 4 ,mem_t2_256 
+0x764b 032829 jam 1 ,mem_tmp0_256 
+0x764c 032830 arg mem_tmp1_256 ,contw 
+0x764d 032831 call clear_mem_512 
+0x764e 032832 arg mem_p_256 ,contr 
+0x764f 032833 arg mem_tmp2_256 ,contw 
+0x7650 032834 call memcpy32 
+0x7651 032835 copy rega ,contr 
+0x7652 032836 arg mem_tmp3_256 ,contw 
+0x7653 032837 call memcpy32 
+:      032843 bn_invmod_256_2:
+0x7654 032844 arg mem_tmp3_256 ,contr 
+0x7655 032845 call bn_eq_zero_256 
+0x7656 032846 branch bn_invmod_256_0 ,blank 
+0x7657 032851 arg mem_tmp3_256 ,rega 
+0x7658 032852 arg mem_tmp0_256 ,regb 
+0x7659 032853 call bn_rshifteven_256 
+0x765a 032854 arg mem_tmp2_256 ,rega 
+0x765b 032855 arg mem_tmp1_256 ,regb 
+0x765c 032856 call bn_rshifteven_256 
+0x765d 032858 arg mem_tmp3_256 ,rega 
+0x765e 032859 arg mem_tmp2_256 ,regb 
+0x765f 032860 call bn_bigeq_256 
+0x7660 032861 branch bn_invmod_256_1 ,positive 
+0x7661 032862 arg mem_tmp2_256 ,rega 
+0x7662 032863 arg mem_tmp3_256 ,regb 
+0x7663 032864 copy rega ,contw 
+0x7664 032865 call bn_sub_256 
+0x7665 032866 arg mem_tmp0_256 ,rega 
+0x7666 032867 arg mem_tmp1_256 ,regb 
+0x7667 032868 copy regb ,contw 
+0x7668 032869 call bn_add_256 
+0x7669 032870 ifetch 1 ,rega 
+0x766a 032871 iadd regc ,regc 
+0x766b 032872 ifetch 1 ,regb 
+0x766c 032873 iadd regc ,pdata 
+0x766d 032874 istore 1 ,regb 
+0x766e 032875 branch bn_invmod_256_2 
+:      032876 bn_invmod_256_1:
+0x766f 032877 arg mem_tmp3_256 ,rega 
+0x7670 032878 arg mem_tmp2_256 ,regb 
+0x7671 032879 copy rega ,contw 
+0x7672 032880 call bn_sub_256 
+0x7673 032881 arg mem_tmp1_256 ,rega 
+0x7674 032882 arg mem_tmp0_256 ,regb 
+0x7675 032883 copy regb ,contw 
+0x7676 032884 call bn_add_256 
+0x7677 032885 ifetch 1 ,rega 
+0x7678 032886 iadd regc ,regc 
+0x7679 032887 ifetch 1 ,regb 
+0x767a 032888 iadd regc ,pdata 
+0x767b 032889 istore 1 ,regb 
+0x767c 032890 branch bn_invmod_256_2 
+:      032891 bn_invmod_256_0:
+0x767d 032893 arg mem_tmp1_256 ,rega 
+0x767e 032894 copy timeup ,contw 
+0x767f 032895 call bn_p256mod 
+0x7680 032897 arg mem_p_256 ,rega 
+0x7681 032898 copy timeup ,regb 
+0x7682 032899 copy timeup ,contw 
+0x7683 032900 branch bn_submod_256 
+:      032903 bn_mulmod_256:
+0x7684 032904 copy contw ,timeup 
+0x7685 032906 force 0 ,regext_index 
+0x7686 032908 arg mem_tmp1_256 ,contw 
+0x7687 032909 call clear_mem_512 
+0x7688 032910 arg mem_regext ,contw 
+0x7689 032911 call clear_mem_512 
+0x768a 032915 copy rega ,contr 
+0x768b 032917 jam 0 ,mem_regext 
+0x768c 032918 setarg 0 
+0x768d 032919 call bn_load_mem 
+0x768e 032920 copy regb ,contr 
+0x768f 032921 call bn_load_256 
+0x7690 032924 force 0 ,queue 
+0x7691 032925 arg mem_tmp1_256 ,contw 
+:      032926 bn_mulmod_256_1:
+0x7692 032929 arg mem_regext ,temp 
+0x7693 032930 copy queue ,regb 
+0x7694 032931 lshift2 regb ,pdata 
+0x7695 032933 iadd temp ,regb 
+0x7696 032934 force 0 ,temp 
+0x7697 032935 force 0 ,regc 
+:      032936 bn_mulmod_256_0:
+0x7698 032941 ifetch 4 ,contw 
+0x7699 032942 iforce rega 
+0x769a 032945 ifetch 4 ,regb 
+0x769b 032946 copy regc ,regext_index 
+0x769c 032947 imul32 regext ,pdata 
+0x769d 032948 iadd rega ,pdata 
+0x769e 032949 iadd temp ,pdata 
+0x769f 032950 istore 4 ,contw 
+0x76a0 032951 rshift32 pdata ,temp 
+0x76a1 032952 increase 1 ,regc 
+0x76a2 032953 compare 8 ,regc ,0xff 
+0x76a3 032954 nbranch bn_mulmod_256_0 ,true 
+0x76a4 032956 deposit temp 
+0x76a5 032957 istore 4 ,contw 
+0x76a6 032958 increase -32 ,contw 
+0x76a7 032961 increase 1 ,queue 
+0x76a8 032962 compare 8 ,queue ,0xff 
+0x76a9 032963 nbranch bn_mulmod_256_1 ,true 
+0x76aa 032964 arg mem_tmp1_256 ,rega 
+0x76ab 032965 copy timeup ,contw 
+0x76ac 032966 branch bn_p256mod 
+:      032968 bn_p256mod:
+0x76ad 032969 bpatch patch1e_2 ,mem_patch1e 
+0x76ae 032970 copy contw ,timeup 
+0x76af 032971 copy rega ,alarm 
+0x76b0 032972 arg mem_tmp2_256 ,regb 
+0x76b1 032973 copy regb ,contw 
+0x76b2 032974 call memset0_4 
+0x76b3 032975 istore 8 ,contw 
+0x76b4 032976 add rega ,44 ,contr 
+0x76b5 032977 call memcpy8 
+0x76b6 032978 call memcpy12 
+0x76b7 032979 copy regb ,rega 
+0x76b8 032980 call bn_lshiftmod_256 
+0x76b9 032981 arg mem_tmp2_256 ,regb 
+0x76ba 032982 copy alarm ,rega 
+0x76bb 032983 copy timeup ,contw 
+0x76bc 032984 call bn_addmod_256 
+0x76bd 032986 arg mem_tmp2_256 ,regb 
+0x76be 032987 copy regb ,contw 
+0x76bf 032988 call memset0_4 
+0x76c0 032989 istore 8 ,contw 
+0x76c1 032990 add alarm ,48 ,contr 
+0x76c2 032991 call memcpy16 
+0x76c3 032992 call memset0_4 
+0x76c4 032993 copy regb ,rega 
+0x76c5 032994 call bn_lshiftmod_256 
+0x76c6 032998 arg mem_tmp2_256 ,regb 
+0x76c7 032999 copy timeup ,rega 
+0x76c8 033000 copy rega ,contw 
+0x76c9 033001 call bn_addmod_256 
+0x76ca 033005 arg mem_tmp2_256 ,regb 
+0x76cb 033006 copy regb ,contw 
+0x76cc 033007 add alarm ,32 ,contr 
+0x76cd 033008 call memcpy12 
+0x76ce 033009 call memset0_4 
+0x76cf 033010 istore 8 ,contw 
+0x76d0 033011 add alarm ,56 ,contr 
+0x76d1 033012 call memcpy8 
+0x76d2 033013 copy timeup ,rega 
+0x76d3 033014 copy rega ,contw 
+0x76d4 033015 call bn_addmod_256 
+0x76d5 033019 arg mem_tmp2_256 ,regb 
+0x76d6 033020 copy regb ,contw 
+0x76d7 033021 add alarm ,36 ,contr 
+0x76d8 033022 call memcpy12 
+0x76d9 033023 add alarm ,52 ,contr 
+0x76da 033024 call memcpy12 
+0x76db 033025 add alarm ,52 ,contr 
+0x76dc 033026 call memcpy4 
+0x76dd 033027 add alarm ,32 ,contr 
+0x76de 033028 call memcpy4 
+0x76df 033029 copy timeup ,rega 
+0x76e0 033030 copy rega ,contw 
+0x76e1 033031 call bn_addmod_256 
+0x76e2 033034 arg mem_tmp2_256 ,regb 
+0x76e3 033035 copy regb ,contw 
+0x76e4 033036 add alarm ,44 ,contr 
+0x76e5 033037 call memcpy12 
+0x76e6 033038 call memset0_4 
+0x76e7 033039 istore 8 ,contw 
+0x76e8 033040 add alarm ,32 ,contr 
+0x76e9 033041 call memcpy4 
+0x76ea 033042 add alarm ,40 ,contr 
+0x76eb 033043 call memcpy4 
+0x76ec 033044 copy timeup ,rega 
+0x76ed 033045 copy rega ,contw 
+0x76ee 033046 call bn_submod_256 
+0x76ef 033049 arg mem_tmp2_256 ,regb 
+0x76f0 033050 copy regb ,contw 
+0x76f1 033051 add alarm ,48 ,contr 
+0x76f2 033052 call memcpy8 
+0x76f3 033053 call memcpy8 
+0x76f4 033054 force 0 ,pdata 
+0x76f5 033055 istore 8 ,contw 
+0x76f6 033056 add alarm ,36 ,contr 
+0x76f7 033057 call memcpy4 
+0x76f8 033058 add alarm ,44 ,contr 
+0x76f9 033059 call memcpy4 
+0x76fa 033060 copy timeup ,rega 
+0x76fb 033061 copy rega ,contw 
+0x76fc 033062 call bn_submod_256 
+0x76fd 033065 arg mem_tmp2_256 ,regb 
+0x76fe 033066 copy regb ,contw 
+0x76ff 033067 add alarm ,52 ,contr 
+0x7700 033068 call memcpy12 
+0x7701 033069 add alarm ,32 ,contr 
+0x7702 033070 call memcpy12 
+0x7703 033071 call memset0_4 
+0x7704 033072 add alarm ,48 ,contr 
+0x7705 033073 call memcpy4 
+0x7706 033074 copy timeup ,rega 
+0x7707 033075 copy rega ,contw 
+0x7708 033076 call bn_submod_256 
+0x7709 033079 arg mem_tmp2_256 ,regb 
+0x770a 033080 copy regb ,contw 
+0x770b 033081 add alarm ,56 ,contr 
+0x770c 033082 call memcpy8 
+0x770d 033083 call memset0_4 
+0x770e 033084 add alarm ,36 ,contr 
+0x770f 033085 call memcpy12 
+0x7710 033086 call memset0_4 
+0x7711 033087 add alarm ,52 ,contr 
+0x7712 033088 call memcpy4 
+0x7713 033089 copy timeup ,rega 
+0x7714 033090 copy rega ,contw 
+0x7715 033091 branch bn_submod_256 
+:      033094 bn_load_mem:
+0x7716 033095 force 32 ,loopcnt 
+0x7717 033096 arg mem_regext ,contw 
+0x7718 033097 iadd contw ,contw 
+0x7719 033098 branch memcpy 
+:      033100 bn_load_256:
+0x771a 033101 force 8 ,loopcnt 
+0x771b 033102 branch bn_load_0 
+:      033104 bn_sqrmod_256:
+0x771c 033105 copy rega ,regb 
+0x771d 033106 branch bn_mulmod_256 
+:      033108 bn_add_256:
+0x771e 033109 force 8 ,loopcnt 
+0x771f 033110 branch bn_add + 1 
+:      033112 bn_addmod_256:
+0x7720 033113 call bn_add_256 
+0x7721 033114 copy contw ,rega 
+0x7722 033115 branch bn_lshiftmod_ismod_256 
+:      033117 bn_lshiftmod_256:
+0x7723 033118 call bn_lshift_256 
+:      033119 bn_lshiftmod_ismod_256:
+0x7724 033120 isolate1 0 ,regc 
+0x7725 033121 branch bn_lshiftmod_p_256 ,true 
+0x7726 033122 arg mem_p_256 ,regb 
+0x7727 033123 copy rega ,regc 
+0x7728 033124 increase -32 ,rega 
+0x7729 033125 call bn_bigeq_256 
+0x772a 033126 nrtn positive 
+0x772b 033127 copy regc ,rega 
+0x772c 033128 branch sub_p2_256 
+:      033130 bn_lshiftmod_p_256:
+0x772d 033131 call sub_p2_256 
+0x772e 033133 copy rega ,regc 
+0x772f 033134 increase -32 ,rega 
+0x7730 033135 arg mem_p_256 ,regb 
+0x7731 033136 call bn_bigeq_256 
+0x7732 033137 nrtn positive 
+0x7733 033138 copy regc ,rega 
+0x7734 033139 branch sub_p2_256 
+:      033142 sub_p2_256:
+0x7735 033143 increase -32 ,rega 
+0x7736 033144 arg mem_p_256 ,regb 
+0x7737 033145 copy rega ,contw 
+0x7738 033146 branch bn_sub_256 
+:      033151 bn_submod_256:
+0x7739 033152 call bn_sub_256 
+0x773a 033154 branch bn_submod_256_np ,true 
+0x773b 033157 add contw ,-32 ,rega 
+0x773c 033158 arg mem_p_256 ,regb 
+0x773d 033159 call bn_bigeq_256 
+0x773e 033160 nrtn positive 
+0x773f 033161 arg mem_p_256 ,regb 
+0x7740 033162 add contw ,-32 ,rega 
+0x7741 033164 copy rega ,contw 
+0x7742 033165 branch bn_sub_256 
+:      033166 bn_submod_256_np:
+0x7743 033167 add contw ,-32 ,rega 
+0x7744 033168 arg mem_p_256 ,regb 
+0x7745 033169 copy rega ,contw 
+0x7746 033170 call bn_add_256 
+0x7747 033172 rtn true 
+0x7748 033173 add contw ,-32 ,rega 
+0x7749 033174 arg mem_p_256 ,regb 
+0x774a 033175 copy rega ,contw 
+0x774b 033176 branch bn_add_256 
+:      033180 bn_sub_256:
+0x774c 033181 force 8 ,loopcnt 
+0x774d 033182 branch bn_sub + 1 
+:      033184 bn_rshift_256:
+0x774e 033185 force 8 ,loopcnt 
+0x774f 033186 increase 28 ,rega 
+0x7750 033187 branch bn_rshift 
+:      033189 bn_lshift_256:
+0x7751 033190 force 8 ,loopcnt 
+0x7752 033191 force 0 ,regc 
+0x7753 033192 branch bn_lshift_0 
+:      033194 bn_bigeq_256:
+0x7754 033195 force 8 ,loopcnt 
+0x7755 033196 increase 28 ,rega 
+0x7756 033197 increase 28 ,regb 
+0x7757 033198 branch bn_bigeq_0 
+:      033201 bn_eq_zero_256:
+0x7758 033202 ifetch 8 ,contr 
+0x7759 033203 nrtn blank 
+0x775a 033204 branch bn_eq_zero 
+:      033209 bn_rshifteven_256:
+0x775b 033210 copy rega ,alarm 
+:      033211 bn_rshifteven_256_1:
+0x775c 033212 copy alarm ,rega 
+0x775d 033213 ifetch 1 ,rega 
+0x775e 033214 isolate1 0 ,pdata 
+0x775f 033215 rtn true 
+0x7760 033216 call bn_rshift_256 
+0x7761 033217 ifetch 1 ,regb 
+0x7762 033218 isolate0 0 ,pdata 
+0x7763 033219 branch bn_rshifteven_256_0 ,true 
+0x7764 033220 arg mem_p_256 ,rega 
+0x7765 033221 copy regb ,contw 
+0x7766 033222 call bn_add_256 
+0x7767 033223 ifetch 1 ,regb 
+0x7768 033224 iadd regc ,pdata 
+0x7769 033225 istore 1 ,regb 
+0x776a 033226 increase -32 ,regb 
+:      033227 bn_rshifteven_256_0:
+0x776b 033228 add regb ,32 ,rega 
+0x776c 033229 force 9 ,loopcnt 
+0x776d 033230 call bn_rshift 
+0x776e 033231 branch bn_rshifteven_256_1 
+:      033234 ui_init:
+0x776f 033235 rtn wake 
+0x7770 033236 call lpm_disable_exen_output 
+0x7771 033237 call ui_button_init 
+0x7772 033238 call ui_timer_init 
+0x7773 033239 branch ui_led_init_global 
+:      033241 ui_dispatch:
+0x7774 033242 call ui_led_dispatch 
+0x7775 033243 branch ui_timer_check 
+:      033245 ui_button_init:
+0x7776 033246 fetch 1 ,mem_ui_button_gpio 
+0x7777 033247 rtneq ui_button_gpio_disable 
+0x7778 033248 iforce temp 
+0x7779 033249 call gpio_config_output 
+0x777a 033250 fetcht 1 ,mem_ui_button_gpio 
+0x777b 033251 call gpio_out_inactive 
+0x777c 033252 nop 100 
+0x777d 033253 fetcht 1 ,mem_ui_button_gpio 
+0x777e 033254 call gpio_config_input 
+0x777f 033255 branch ui_button_polling 
+:      033259 ui_button_polling:
+0x7780 033260 bpatch patch1e_3 ,mem_patch1e 
+0x7781 033261 fetch 1 ,mem_ui_button_gpio 
+0x7782 033262 rtneq ui_button_gpio_disable 
+0x7783 033263 copy pdata ,temp 
+0x7784 033264 call gpio_get_bit 
+0x7785 033265 nbranch ui_button_up ,true 
+:      033267 ui_button_down:
+0x7786 033268 call ui_button_check_long_press 
+0x7787 033269 fetch 2 ,mem_ui_state_map 
+0x7788 033270 set1 ui_state_btn_down ,pdata 
+0x7789 033271 store 2 ,mem_ui_state_map 
+0x778a 033272 fetch 1 ,mem_ui_button_last_state 
+0x778b 033273 rtneq ui_button_state_down 
+0x778c 033274 jam ui_button_state_down ,mem_ui_button_last_state 
+0x778d 033276 fetch 1 ,mem_ui_button_timeout 
+0x778e 033277 store 1 ,mem_ui_button_timer 
+0x778f 033278 call lpm_button_get_wake_lock 
+0x7790 033279 jam bt_evt_button_down ,mem_fifo_temp 
+0x7791 033280 branch ui_ipc_send_event 
+:      033281 ui_button_up:
+0x7792 033282 fetch 2 ,mem_ui_state_map 
+0x7793 033283 set0 ui_state_btn_down ,pdata 
+0x7794 033284 store 2 ,mem_ui_state_map 
+0x7795 033285 fetch 1 ,mem_ui_button_last_state 
+0x7796 033286 rtneq ui_button_state_up 
+0x7797 033287 jam ui_button_state_up ,mem_ui_button_last_state 
+0x7798 033289 jam 0 ,mem_ui_button_timer 
+0x7799 033290 call lpm_button_clean_wake_lock 
+0x779a 033291 jam bt_evt_button_up ,mem_fifo_temp 
+0x779b 033292 branch ui_ipc_send_event 
+:      033294 ui_button_check_long_press:
+0x779c 033295 fetch 1 ,mem_ui_button_timer 
+0x779d 033296 rtn blank 
+0x779e 033297 increase -1 ,pdata 
+0x779f 033298 store 1 ,mem_ui_button_timer 
+0x77a0 033299 nrtn blank 
+0x77a1 033301 jam bt_evt_button_long_pressed ,mem_fifo_temp 
+0x77a2 033302 branch ui_ipc_send_event 
+:      033304 lpm_button_get_wake_lock:
+0x77a3 033305 arg wake_lock_button ,queue 
+0x77a4 033306 branch lpm_get_wake_lock 
+:      033308 lpm_button_clean_wake_lock:
+0x77a5 033309 arg wake_lock_button ,queue 
+0x77a6 033310 branch lpm_put_wake_lock 
+:      033317 calc_curr_struct_prt:
+0x77a7 033318 bpatch patch1e_4 ,mem_patch1e 
+0x77a8 033319 fetch 2 ,mem_ui_led_struct_ptr 
+0x77a9 033320 mul32 rega ,led_offset_length ,regb 
+0x77aa 033321 iadd regb ,regb 
+0x77ab 033322 rtn 
+:      033325 ui_led_init_global:
+0x77ac 033326 fetch 1 ,mem_ui_led_struct_num 
+0x77ad 033327 rtn blank 
+0x77ae 033328 copy pdata ,loopcnt 
+0x77af 033329 fetch 2 ,mem_ui_led_struct_ptr 
+0x77b0 033330 copy pdata ,regb 
+:      033331 ui_led_init_loop:
+0x77b1 033332 add regb ,led_offset_led_gpio ,regc 
+0x77b2 033333 ifetcht 1 ,regc 
+0x77b3 033334 call ui_led_init_set 
+0x77b4 033335 increase led_offset_length ,regb 
+0x77b5 033336 loop ui_led_init_loop 
+0x77b6 033337 rtn 
+:      033340 ui_led_init_set:
+0x77b7 033341 fetch 1 ,mem_ui_led_init_state_set 
+0x77b8 033342 branch gpio_out_inactive ,blank 
+0x77b9 033343 branch gpio_out_active 
+:      033346 ui_led_on_global:
+0x77ba 033347 call calc_curr_struct_prt 
+0x77bb 033348 setarg ui_led_state_lighting 
+0x77bc 033349 istore 1 ,regb 
+0x77bd 033350 call ui_led_stop_timer 
+0x77be 033351 branch ui_led_on_static 
+:      033355 ui_led_blink_stop_global:
+:      033356 ui_led_off_global:
+0x77bf 033358 call calc_curr_struct_prt 
+0x77c0 033359 setarg ui_led_state_darking 
+0x77c1 033360 istore 1 ,regb 
+0x77c2 033362 call ui_led_stop_timer 
+0x77c3 033363 branch ui_led_off_static 
+:      033367 ui_led_blink_start_global:
+0x77c4 033368 call calc_curr_struct_prt 
+0x77c5 033369 setarg ui_led_state_blink_start 
+0x77c6 033370 istore 1 ,regb 
+0x77c7 033371 setarg led_infinite_flash_num 
+0x77c8 033372 istore 1 ,contw 
+0x77c9 033373 branch ui_led_off_static 
+:      033378 ui_led_set_style_global:
+0x77ca 033379 call calc_curr_struct_prt 
+0x77cb 033380 arg led_offset_length ,loopcnt 
+0x77cc 033381 copy regc ,contr 
+0x77cd 033382 copy regb ,contw 
+0x77ce 033383 branch memcpy_fast 
+:      033387 ui_led_dispatch:
+0x77cf 033388 fetch 1 ,mem_ui_led_struct_num 
+0x77d0 033389 rtn blank 
+0x77d1 033390 arg 0 ,rega 
+:      033391 ui_led_blink_polling:
+0x77d2 033392 call ui_led_change_style_by_type 
+0x77d3 033393 increase 1 ,rega 
+0x77d4 033394 fetch 1 ,mem_ui_led_struct_num 
+0x77d5 033395 isub rega ,null 
+0x77d6 033396 rtn zero 
+0x77d7 033397 branch ui_led_blink_polling 
+:      033400 ui_led_off_static:
+0x77d8 033401 add regb ,led_offset_led_gpio ,regc 
+0x77d9 033402 ifetcht 1 ,regc 
+0x77da 033403 branch gpio_out_inactive 
+:      033406 ui_led_on_static:
+0x77db 033407 add regb ,led_offset_led_gpio ,regc 
+0x77dc 033408 ifetcht 1 ,regc 
+0x77dd 033409 branch gpio_out_active 
+:      033413 ui_led_change_style_by_type:
+0x77de 033414 add rega ,ui_led_blink ,queue 
+0x77df 033415 call timer_check 
+0x77e0 033416 nrtn blank 
+0x77e1 033418 call calc_curr_struct_prt 
+0x77e2 033420 ifetch 1 ,regb 
+0x77e3 033422 beq ui_led_state_lighting ,ui_led_on_static 
+0x77e4 033423 beq ui_led_state_darking ,ui_led_off_static 
+0x77e5 033424 beq ui_led_state_blink_stop ,ui_led_off_static 
+0x77e6 033425 beq ui_led_state_blink_darking ,ui_led_blink_state_darking 
+:      033426 ui_led_blink_state_lighting:
+0x77e7 033427 call ui_led_on_static 
+0x77e8 033428 add regb ,led_offset_cb_ledon ,regc 
+0x77e9 033429 call push_stack 
+0x77ea 033430 ifetch 2 ,regc 
+0x77eb 033431 call callback_func 
+0x77ec 033432 call pop_stack 
+0x77ed 033433 setarg ui_led_state_blink_darking 
+0x77ee 033434 istore 1 ,regb 
+0x77ef 033435 add regb ,led_offset_on_time ,regc 
+0x77f0 033436 ifetch 2 ,regc 
+0x77f1 033437 branch ui_led_blink_timer_start 
+:      033440 ui_led_blink_state_darking:
+0x77f2 033441 call ui_led_off_static 
+0x77f3 033442 add regb ,led_offset_cb_ledoff ,regc 
+0x77f4 033443 call push_stack 
+0x77f5 033444 ifetch 2 ,regc 
+0x77f6 033445 call callback_func 
+0x77f7 033446 call pop_stack 
+0x77f8 033448 add regb ,led_offset_blink_count ,regc 
+0x77f9 033449 ifetch 1 ,regc 
+0x77fa 033450 beq led_infinite_flash_num ,ui_led_blink_infinite 
+0x77fb 033451 increase -1 ,pdata 
+0x77fc 033452 istore 1 ,regc 
+0x77fd 033453 branch ui_led_blink_stop_global ,blank 
+:      033454 ui_led_blink_infinite:
+0x77fe 033455 setarg ui_led_state_blink_lighting 
+0x77ff 033456 istore 1 ,regb 
+0x7800 033457 add regb ,led_offset_off_time ,regc 
+0x7801 033458 ifetch 2 ,regc 
+:      033459 ui_led_blink_timer_start:
+0x7802 033460 add rega ,ui_led_blink ,queue 
+0x7803 033461 branch timer_init 
+:      033463 ui_led_stop_timer:
+0x7804 033464 setarg 0 
+0x7805 033465 branch ui_led_blink_timer_start 
+:      033471 ui_timer_timeout:
+0x7806 033472 setarg 0x1000 
+0x7807 033473 lshift16 pdata ,pdata 
+0x7808 033474 iadd regb ,regb 
+0x7809 033475 rtn 
+:      033477 ui_timer_check:
+0x780a 033478 bpatch patch1e_5 ,mem_patch1e 
+0x780b 033479 arg 0 ,rega 
+0x780c 033480 fetcht 4 ,mem_ui_timer_last_btclk 
+0x780d 033481 copy clkn_bt ,regb 
+0x780e 033482 copy regb ,pdata 
+0x780f 033483 isub temp ,null 
+0x7810 033484 ncall ui_timer_timeout ,positive 
+:      033485 ui_timer_check_loop:
+0x7811 033486 copy regb ,pdata 
+0x7812 033487 increase 160 ,temp 
+0x7813 033488 increase 160 ,temp 
+0x7814 033489 isub temp ,null 
+0x7815 033490 nbranch ui_timer_check_end ,positive 
+0x7816 033491 increase 1 ,rega 
+0x7817 033492 and rega ,0x0f ,pdata 
+0x7818 033493 nbranch ui_timer_check_loop ,blank 
+0x7819 033494 arg 0 ,rega 
+0x781a 033495 call ui_timer_check_send_evt 
+:      033496 ui_timer_init:
+0x781b 033497 copy clkn_bt ,pdata 
+0x781c 033498 store 4 ,mem_ui_timer_last_btclk 
+0x781d 033499 rtn 
+:      033500 ui_timer_check_end:
+0x781e 033501 copy rega ,pdata 
+0x781f 033502 rtn blank 
+0x7820 033503 increase -160 ,temp 
+0x7821 033504 increase -160 ,temp 
+0x7822 033505 set0 28 ,temp 
+0x7823 033506 storet 4 ,mem_ui_timer_last_btclk 
+:      033507 ui_timer_check_send_evt:
+0x7824 033508 branch app_evt_timer 
+:      033515 ui_ipc_get_lock:
+0x7825 033516 jam 1 ,mem_ipc_lock_bt 
+:      033517 ui_ipc_get_lock_wait:
+0x7826 033518 fetch 1 ,mem_ipc_lock_c51 
+0x7827 033519 nbranch ui_ipc_get_lock_wait ,blank 
+0x7828 033520 rtn 
+:      033522 ui_ipc_put_lock:
+0x7829 033523 jam 0 ,mem_ipc_lock_bt 
+0x782a 033524 rtn 
+:      033528 ui_ipc_send_event:
+0x782b 033529 bpatch patch1e_6 ,mem_patch1e 
+0x782c 033530 call ui_ipc_get_lock 
+0x782d 033531 copy rega ,pdata 
+0x782e 033532 store 4 ,mem_rega 
+0x782f 033533 arg mem_ipc_fifo_bt2c51 ,rega 
+0x7830 033534 call fifo_in 
+0x7831 033535 fetch 4 ,mem_rega 
+0x7832 033536 copy pdata ,rega 
+0x7833 033537 branch ui_ipc_put_lock 
+:      033539 ui_ipc_send_cmd:
+0x7834 033540 bpatch patch1e_7 ,mem_patch1e 
+0x7835 033541 call ui_ipc_get_lock 
+0x7836 033542 copy rega ,pdata 
+0x7837 033543 store 4 ,mem_rega 
+0x7838 033544 arg mem_ipc_fifo_c512bt ,rega 
+0x7839 033545 call fifo_in 
+0x783a 033546 fetch 4 ,mem_rega 
+0x783b 033547 copy pdata ,rega 
+0x783c 033548 branch ui_ipc_put_lock 
+:      033550 ui_ipc_clean_all_fifo:
+0x783d 033551 setarg 0 
+0x783e 033552 store util_fifo_len ,mem_ipc_fifo_c512bt 
+0x783f 033553 store util_fifo_len ,mem_ipc_fifo_bt2c51 
+0x7840 033554 rtn 
+:      033556 check_51cmd:
+0x7841 033557 bpatch patch1f_0 ,mem_patch1f 
+0x7842 033558 fetch 1 ,mem_hci_cmd 
+0x7843 033559 nrtn blank 
+0x7844 033560 arg mem_ipc_fifo_c512bt ,rega 
+0x7845 033561 call fifo_is_empty 
+0x7846 033562 rtn blank 
+0x7847 033563 jam ipc_continue_process ,mem_ipc_skip_continue_proc 
+0x7848 033564 call check_51cmd_once 
+0x7849 033565 fetch 1 ,mem_ipc_skip_continue_proc 
+0x784a 033566 branch check_51cmd ,blank 
+0x784b 033567 rtn 
+:      033569 check_51cmd_once:
+0x784c 033570 call ui_ipc_get_lock 
+0x784d 033571 arg mem_ipc_fifo_c512bt ,rega 
+0x784e 033572 call fifo_out 
+0x784f 033573 copy pdata ,temp 
+0x7850 033574 call ui_ipc_put_lock 
+0x7851 033575 bpatch patch1f_1 ,mem_patch1f 
+0x7852 033576 copy temp ,pdata 
+0x7853 033577 rtn blank 
+0x7854 033578 beq bt_cmd_start_adv ,check_51cmd_adv 
+0x7855 033579 beq bt_cmd_stop_adv ,check_51cmd_stop_adv 
+0x7856 033580 beq bt_cmd_start_direct_adv ,check_51cmd_direct_adv 
+0x7857 033581 beq bt_cmd_stop_direct_adv ,check_51cmd_stop_direct_adv 
+0x7858 033582 beq bt_cmd_led_off ,check_51cmd_led_off 
+0x7859 033583 beq bt_cmd_led_on ,check_51cmd_led_on 
+0x785a 033584 beq bt_cmd_led_blink ,check_51cmd_led_start_blink 
+0x785b 033585 beq bt_cmd_le_start_conn ,check_51cmd_le_start_con 
+0x785c 033586 beq bt_cmd_le_start_scan ,check_51cmd_start_scan 
+0x785d 033587 beq bt_cmd_le_stop_scan ,check_51cmd_stop_scan 
+0x785e 033588 beq bt_cmd_enter_hibernate ,check_51cmd_hibernate 
+0x785f 033590 store 1 ,mem_fifo_temp 
+:      033593 check_51cmd_once_continue:
+0x7860 033594 fetch 1 ,mem_fifo_temp 
+0x7861 033595 bmark0 mark_context ,check_51cmd_check_idle 
+0x7862 033596 bpatch patch1f_2 ,mem_patch1f 
+0x7863 033597 fetch 1 ,mem_fifo_temp 
+0x7864 033598 beq bt_cmd_le_disconnect ,check_51cmd_le_disconnect 
+0x7865 033599 beq bt_cmd_le_smp_security_request ,check_51cmd_le_smp_sec_req 
+0x7866 033600 beq bt_cmd_le_update_conn ,check_51cmd_ble_update_connect_param 
+0x7867 033601 beq bt_cmd_store_reconn_info_le ,eeprom_store_le_reconn_info 
+0x7868 033602 rtn 
+:      033604 check_51cmd_check_idle:
+0x7869 033605 store 1 ,mem_fifo_temp 
+0x786a 033606 call context_check_idle 
+0x786b 033607 branch check_51cmd_restore ,zero 
+0x786c 033608 call context_search_plap 
+0x786d 033609 nrtn zero 
+:      033610 check_51cmd_restore:
+0x786e 033611 jam ipc_skip_continue_process ,mem_ipc_skip_continue_proc 
+0x786f 033612 branch ui_ipc_send_cmd 
+:      033619 check_51cmd_adv:
+0x7870 033620 jam on ,mem_le_adv_enable 
+0x7871 033621 jam adv_ind ,mem_le_adv_type 
+0x7872 033622 fetch 2 ,mem_ui_state_map 
+0x7873 033623 set1 ui_state_ble_adv ,pdata 
+0x7874 033624 store 2 ,mem_ui_state_map 
+0x7875 033625 rtn 
+:      033629 check_51cmd_stop_adv:
+0x7876 033630 fetch 2 ,mem_ui_state_map 
+0x7877 033631 set0 ui_state_ble_adv ,pdata 
+0x7878 033632 store 2 ,mem_ui_state_map 
+0x7879 033633 jam off ,mem_le_adv_enable 
+0x787a 033634 rtn 
+:      033638 check_51cmd_direct_adv:
+0x787b 033639 jam on ,mem_le_adv_enable 
+0x787c 033640 jam adv_direct_ind ,mem_le_adv_type 
+0x787d 033641 fetch 2 ,mem_ui_state_map 
+0x787e 033642 set1 ui_state_ble_adv ,pdata 
+0x787f 033643 store 2 ,mem_ui_state_map 
+0x7880 033644 rtn 
+:      033648 check_51cmd_stop_direct_adv:
+0x7881 033649 fetch 2 ,mem_ui_state_map 
+0x7882 033650 set0 ui_state_ble_adv ,pdata 
+0x7883 033651 store 2 ,mem_ui_state_map 
+0x7884 033652 jam off ,mem_le_adv_enable 
+0x7885 033653 rtn 
+:      033657 check_51cmd_le_disconnect:
+0x7886 033658 setarg 20 
+0x7887 033659 store 2 ,mem_le_superto 
+0x7888 033660 store 2 ,mem_le_init_superto 
+0x7889 033661 branch le_send_terminate_ind_user_terminated 
+:      033665 check_51cmd_ble_update_connect_param:
+0x788a 033666 branch le_l2cap_tx_update_req 
+:      033670 check_51cmd_led_off:
+0x788b 033671 arg 0 ,rega 
+0x788c 033672 branch ui_led_off_global 
+:      033676 check_51cmd_led_on:
+0x788d 033677 arg 0 ,rega 
+0x788e 033678 branch ui_led_on_global 
+:      033682 check_51cmd_led_start_blink:
+0x788f 033683 arg 0 ,rega 
+0x7890 033684 call calc_curr_struct_prt 
+0x7891 033685 ifetch 1 ,regb 
+0x7892 033686 beq ui_led_state_blink_start ,check_51cmd_led_start_blink_in_blink 
+0x7893 033687 beq ui_led_state_blink_lighting ,check_51cmd_led_start_blink_in_blink 
+0x7894 033688 beq ui_led_state_blink_darking ,check_51cmd_led_start_blink_in_blink 
+0x7895 033689 branch ui_led_blink_start_global 
+:      033691 check_51cmd_led_start_blink_in_blink:
+0x7896 033692 ifetch 1 ,contr 
+0x7897 033693 rtneq led_infinite_flash_num 
+0x7898 033694 branch ui_led_blink_start_global 
+:      033698 check_51cmd_le_start_con:
+0x7899 033699 jam on ,mem_le_scan_enable 
+0x789a 033700 jam hci_cmd_le_create_conn ,mem_hci_cmd 
+0x789b 033703 rtn 
+:      033707 check_51cmd_start_scan:
+0x789c 033708 jam on ,mem_le_scan_enable 
+0x789d 033709 rtn 
+:      033713 check_51cmd_stop_scan:
+0x789e 033714 jam off ,mem_le_scan_enable 
+0x789f 033715 jam 0 ,mem_hci_cmd 
+0x78a0 033716 rtn 
+:      033720 check_51cmd_hibernate:
+0x78a1 033721 fetch 2 ,mem_cb_before_hibernate 
+0x78a2 033722 call callback_func 
+0x78a3 033723 fetch 1 ,mem_ui_button_gpio 
+0x78a4 033724 beq ui_button_gpio_disable ,check_51cmd_hibernate_btn_disabled 
+0x78a5 033725 copy pdata ,temp 
+0x78a6 033726 call gpio_config_input 
+:      033727 check_51cmd_hibernate_btn_disabled:
+0x78a7 033728 call ui_ipc_clean_all_fifo 
+0x78a8 033729 branch lpm_hibernate 
+:      033733 check_51cmd_le_smp_sec_req:
+0x78a9 033734 branch le_send_smp_security_request 
+:      033739 ui_check_paring_button:
+0x78aa 033740 fetch 1 ,mem_ui_state_map 
+0x78ab 033741 rtnbit0 ui_state_btn_down 
+0x78ac 033742 rtn 
+:      033747 queue_init:
+0x78ad 033748 fetch 2 ,mem_queue_ptr 
+0x78ae 033749 add pdata ,queue_offset_curr_num ,contw 
+0x78af 033750 setarg 0 
+0x78b0 033751 istore 3 ,contw 
+0x78b1 033752 rtn 
+:      033756 queue_push:
+0x78b2 033757 bpatch patch1f_3 ,mem_patch1f 
+0x78b3 033758 call disable_user 
+0x78b4 033759 call queue_full 
+0x78b5 033760 rtn blank 
+0x78b6 033761 fetch 2 ,mem_queue_ptr 
+0x78b7 033762 add pdata ,queue_offset_curr_num ,regb 
+0x78b8 033763 ifetcht 1 ,regb 
+0x78b9 033764 increase 1 ,temp 
+0x78ba 033765 istoret 1 ,regb 
+0x78bb 033767 ifetcht 1 ,pdata 
+0x78bc 033768 copy temp ,loopcnt 
+0x78bd 033769 add pdata ,queue_offset_write_ptr ,regb 
+0x78be 033770 ifetch 1 ,regb 
+0x78bf 033771 imul32 temp ,pdata 
+0x78c0 033772 iadd contr ,contw 
+0x78c1 033773 copy rega ,contr 
+:      033774 calc_queue_next_ptr:
+0x78c2 033775 call memcpy 
+0x78c3 033776 call queue_get_size 
+0x78c4 033777 pincrease -1 
+0x78c5 033778 ifetcht 1 ,regb 
+0x78c6 033779 increase 1 ,temp 
+0x78c7 033780 iand temp ,temp 
+0x78c8 033781 istoret 1 ,regb 
+0x78c9 033782 branch enable_user 
+:      033787 queue_pop:
+0x78ca 033788 bpatch patch1f_4 ,mem_patch1f 
+0x78cb 033789 call disable_user 
+0x78cc 033790 call queue_empty 
+0x78cd 033791 rtn blank 
+0x78ce 033792 fetch 2 ,mem_queue_ptr 
+0x78cf 033793 add pdata ,queue_offset_curr_num ,regb 
+0x78d0 033794 ifetcht 1 ,regb 
+0x78d1 033795 increase -1 ,temp 
+0x78d2 033796 istoret 1 ,regb 
+0x78d3 033797 ifetcht 1 ,pdata 
+0x78d4 033798 copy temp ,loopcnt 
+0x78d5 033799 add pdata ,queue_offset_read_ptr ,regb 
+0x78d6 033800 ifetch 1 ,regb 
+0x78d7 033801 imul32 temp ,pdata 
+0x78d8 033802 iadd contr ,contr 
+0x78d9 033803 increase 1 ,contr 
+0x78da 033804 copy rega ,contw 
+0x78db 033805 branch calc_queue_next_ptr 
+:      033812 queue_get_new_ele:
+0x78dc 033813 call disable_user 
+0x78dd 033814 call queue_empty 
+0x78de 033815 rtn blank 
+0x78df 033816 fetch 2 ,mem_queue_ptr 
+0x78e0 033817 ifetcht 1 ,pdata 
+0x78e1 033818 copy temp ,loopcnt 
+0x78e2 033819 add pdata ,queue_offset_read_ptr ,regb 
+0x78e3 033820 ifetch 1 ,regb 
+0x78e4 033821 imul32 temp ,pdata 
+0x78e5 033822 iadd contr ,contr 
+0x78e6 033823 increase 1 ,contr 
+0x78e7 033824 copy contr ,regb 
+0x78e8 033825 copy rega ,contw 
+0x78e9 033826 call memcpy 
+0x78ea 033827 branch enable_user 
+:      033829 queue_store_new_ele:
+0x78eb 033830 call disable_user 
+0x78ec 033831 call queue_empty 
+0x78ed 033832 rtn blank 
+0x78ee 033833 fetch 2 ,mem_queue_ptr 
+0x78ef 033834 ifetcht 1 ,pdata 
+0x78f0 033835 copy temp ,loopcnt 
+0x78f1 033836 add pdata ,queue_offset_read_ptr ,regb 
+0x78f2 033837 ifetch 1 ,regb 
+0x78f3 033838 imul32 temp ,pdata 
+0x78f4 033839 iadd contr ,contr 
+0x78f5 033840 add contr ,2 ,contw 
+0x78f6 033841 copy rega ,contr 
+0x78f7 033842 increase -1 ,loopcnt 
+0x78f8 033843 call memcpy 
+0x78f9 033844 branch enable_user 
+:      033847 queue_empty:
+0x78fa 033848 fetch 2 ,mem_queue_ptr 
+0x78fb 033849 add pdata ,queue_offset_curr_num ,contr 
+0x78fc 033850 ifetch 1 ,contr 
+0x78fd 033851 rtn 
+:      033854 queue_full:
+0x78fe 033855 call queue_get_size 
+0x78ff 033856 ifetcht 1 ,contr 
+0x7900 033857 isub temp ,pdata 
+0x7901 033858 rtn 
+:      033861 queue_get_size:
+0x7902 033862 fetch 2 ,mem_queue_ptr 
+0x7903 033863 add pdata ,queue_offset_length ,contr 
+0x7904 033864 ifetch 1 ,contr 
+0x7905 033865 rtn 
+:      033873 usb_isr:
+0x7906 033874 bpatch patch1f_5 ,mem_patch1f 
+0x7907 033875 fetch 1 ,core_usb_status 
+0x7908 033876 isolate1 usb_status_reset ,pdata 
+0x7909 033877 call usb_init_restart ,true 
+0x790a 033878 fetch 2 ,core_usb_status 
+0x790b 033879 store 2 ,core_usb_status 
+0x790c 033880 store 2 ,mem_usb_status 
+0x790d 033881 call usb_nak_state_judge 
+0x790e 033882 call usb_rx 
+0x790f 033883 call usb0_tx 
+0x7910 033884 call usb_tx 
+0x7911 033885 branch usb_nak_state 
+:      033887 usb_init:
+0x7912 033888 bpatch patch1f_6 ,mem_patch1f 
+0x7913 033889 call enable_authrom 
+0x7914 033890 call usb_init_param 
+:      033891 usb_init_restart:
+0x7915 033892 jam 0x00 ,core_usb_config 
+0x7916 033893 nop 10000 
+0x7917 033894 jam 0x0 ,core_usb_hmode 
+0x7918 033895 fetch 2 ,core_clkoff 
+0x7919 033896 set0 clock_off_usb ,pdata 
+0x791a 033897 store 2 ,core_clkoff 
+0x791b 033898 jam 0x21 ,core_usb_epmap 
+0x791c 033899 jam 0x9d ,core_usb_pupd 
+0x791d 033900 jam 0x3c ,core_usb_config 
+0x791e 033901 setarg mem_usb_rxbuf 
+0x791f 033902 store 2 ,core_usb_rx_saddr 
+0x7920 033903 store 2 ,core_usb_rxptr 
+0x7921 033904 setarg mem_usb_rxbuf_end 
+0x7922 033905 store 2 ,core_usb_rx_eaddr 
+0x7923 033906 jam 0x80 ,core_usb_hmode 
+0x7924 033907 jam 0 ,core_usb_addr 
+0x7925 033908 jam 0xff ,core_usb_status 
+0x7926 033909 setarg mem_usb_clear_mem_end 
+0x7927 033910 arg mem_usb_clear_mem_start ,contw 
+0x7928 033911 isub contw ,loopcnt 
+0x7929 033912 branch clear_mem 
+:      033914 usb_offline_check_init:
+0x792a 033915 fetcht 1 ,mem_usb_offline_check_gpio 
+0x792b 033916 branch gpio_config_input 
+:      033917 usb_offline_state:
+0x792c 033918 fetch 1 ,mem_usb_device_enumeration_endflag 
+0x792d 033919 rtn blank 
+0x792e 033920 fetcht 1 ,mem_usb_offline_check_gpio 
+0x792f 033921 call gpio_get_bit 
+0x7930 033922 branch usb_init_restart ,true 
+0x7931 033923 rtn 
+:      033925 usb_init_param:
+0x7932 033926 jam dev_default ,mem_usb0_state 
+0x7933 033927 setarg 0x0 
+0x7934 033928 store 1 ,mem_remain 
+0x7935 033929 store 2 ,mem_usb_zero_packet 
+0x7936 033930 pincrease 1 
+0x7937 033931 store 2 ,mem_usb_ones_packet 
+0x7938 033932 pincrease 1 
+0x7939 033933 store 2 ,mem_usb_two_packet 
+0x793a 033934 arg mem_string0 ,contw 
+0x793b 033935 setarg 0x030404 
+0x793c 033936 istore 3 ,contw 
+0x793d 033937 setarg 0x0409 
+0x793e 033938 istore 2 ,contw 
+0x793f 033939 arg mem_string1 ,contw 
+0x7940 033940 setsect 0 ,0x15906 
+0x7941 033941 setsect 1 ,0x210d2 
+0x7942 033942 setsect 2 ,0x10494 
+0x7943 033943 setsect 3 ,0x1 
+0x7944 033944 istore 9 ,contw 
+0x7945 033945 arg mem_string2 ,contw 
+0x7946 033946 setsect 0 ,0x1570f 
+0x7947 033947 setsect 1 ,0x15c9a 
+0x7948 033948 setsect 2 ,0x256c6 
+0x7949 033949 setsect 3 ,0x1cdcd 
+0x794a 033950 istore 9 ,contw 
+0x794b 033951 setsect 0 ,0x14420 
+0x794c 033952 setsect 1 ,0x25d99 
+0x794d 033953 setsect 2 ,0x25636 
+0x794e 033954 setsect 3 ,0x1 
+0x794f 033955 istore 7 ,contw 
+0x7950 033956 arg mem_string3 ,contw 
+0x7951 033957 setsect 0 ,0x1620a 
+0x7952 033958 setsect 1 ,0xc8c 
+0x7953 033959 setsect 2 ,0x30333 
+0x7954 033960 setsect 3 ,0xc0c0 
+0x7955 033961 istore 9 ,contw 
+0x7956 033962 setsect 0 ,0x3130 
+0x7957 033963 istore 2 ,contw 
+0x7958 033964 setarg usb_kbdata_vendor_define_addr 
+0x7959 033965 store 2 ,mem_hidreportdesc_kb 
+0x795a 033966 setarg usb_msdata_addr 
+0x795b 033967 store 2 ,mem_hidreportdesc_m 
+0x795c 033968 arg usb_devicedata_addr ,contr 
+0x795d 033969 arg mem_devicedesc ,contw 
+0x795e 033970 arg 19 ,loopcnt 
+0x795f 033971 call memcpy 
+0x7960 033972 arg usb_confdata_addr ,contr 
+0x7961 033973 arg mem_confdesc ,contw 
+0x7962 033974 arg 60 ,loopcnt 
+0x7963 033975 call memcpy 
+:      033976 usb_config_cb:
+0x7964 033977 fetch 2 ,mem_cb_usb_config 
+0x7965 033978 branch callback_func 
+:      033980 usb_tx_interval_config:
+0x7966 033981 fetch 1 ,mem_usb_tx_interval 
+0x7967 033982 rtn blank 
+0x7968 033983 store 1 ,mem_confdesc + 34 
+0x7969 033984 store 1 ,mem_confdesc + 59 
+0x796a 033985 rtn 
+:      033987 usb_nak_state:
+0x796b 033988 arg usb_timer_nak ,queue 
+0x796c 033989 call timer_check 
+0x796d 033990 nrtn blank 
+0x796e 033991 fetch 1 ,mem_usb_wakestate_onetime_flag 
+0x796f 033992 nrtn blank 
+0x7970 033993 fetch 1 ,mem_usb_device_enumeration_endflag 
+0x7971 033994 ncall usb_mac_wakeup_judge ,blank 
+0x7972 033995 rtn 
+:      033997 usb_nak_state_judge:
+0x7973 033998 fetch 1 ,mem_usb_status 
+0x7974 033999 bbit1 usb_status_nak ,usb_nak_state_timer_init 
+0x7975 034000 rtn 
+:      034002 usb_nak_state_timer_init:
+0x7976 034003 call usb0_attached_state_judge 
+0x7977 034004 call timer_reinit 
+0x7978 034005 setarg timer_nak_delay 
+0x7979 034006 arg usb_timer_nak ,queue 
+0x797a 034007 branch timer_init 
+:      034009 usb0_attached_state_judge:
+0x797b 034010 fetch 1 ,mem_usb_state 
+0x797c 034011 bne usb_connected ,usb_clear_halt_dispose 
+0x797d 034012 jam 0 ,mem_usb_wakestate_onetime_flag 
+0x797e 034013 jam 0 ,mem_usb_mac_wakeup_trig 
+0x797f 034014 rtn 
+:      034016 usb_clear_halt_dispose:
+0x7980 034017 fetch 1 ,mem_usb_clear_halt 
+0x7981 034018 rtn blank 
+0x7982 034019 jam 0 ,mem_usb_clear_halt 
+0x7983 034020 jam usb_connected ,mem_usb_state 
+0x7984 034021 jam 1 ,mem_usb_device_enumeration_endflag 
+0x7985 034022 rtn 
+:      034024 usb_rx_no_data:
+0x7986 034025 fetch 1 ,mem_usb_status 
+0x7987 034026 bbit1 usb_status_setup ,usb_class_type 
+0x7988 034027 rtn 
+:      034029 usb_rx_len:
+0x7989 034030 fetchr contus ,2 ,core_usb_rx_saddr 
+0x798a 034031 fetchr contue ,2 ,core_usb_rx_eaddr 
+0x798b 034032 fetchr contu ,2 ,core_usb_rxptr 
+0x798c 034033 ifetch 2 ,contu 
+0x798d 034034 rshift8 pdata ,temp 
+0x798e 034035 rshift4 temp ,temp 
+0x798f 034036 arg 0xfff ,contr 
+0x7990 034037 iand contr ,loopcnt 
+0x7991 034038 storer loopcnt ,2 ,mem_usb_read_len 
+0x7992 034039 rtn 
+:      034042 usb_rx_data:
+0x7993 034043 call usb_rx_len 
+:      034044 usb_rx_read:
+0x7994 034045 ifetch 1 ,contu 
+0x7995 034046 istore 1 ,contw 
+0x7996 034047 loop usb_rx_read 
+0x7997 034048 storer contu ,2 ,core_usb_rxptr 
+0x7998 034049 rtn 
+:      034051 usb_rx_ep13:
+0x7999 034052 arg mem_usb_ccid_buf ,contw 
+0x799a 034053 call usb_rx_read 
+0x799b 034054 arg mem_usb_ccid_buf + 4 ,temp 
+0x799c 034055 storet 2 ,core_usb_tx_saddr3 
+0x799d 034056 fetch 1 ,mem_usb_ccid_buf + 1 
+0x799e 034057 pincrease 6 
+0x799f 034058 istore 1 ,temp 
+0x79a0 034059 jam 0x8 ,core_usb_trig 
+0x79a1 034060 rtn 
+:      034063 usb_rx:
+0x79a2 034064 bpatch patch1f_7 ,mem_patch1f 
+0x79a3 034065 fetch 1 ,mem_usb_status 
+0x79a4 034066 rtnbit0 usb_status_rxready 
+0x79a5 034067 call usb_rx_len 
+0x79a6 034068 compare 13 ,temp ,0xff 
+0x79a7 034069 branch usb_rx_ep13 ,true 
+0x79a8 034070 arg mem_usb_setup ,contw 
+0x79a9 034071 call usb_rx_read 
+0x79aa 034072 fetch 1 ,mem_usb_read_len 
+0x79ab 034073 beq 0x00 ,usb_rx_no_data 
+0x79ac 034074 beq 0x01 ,usb_out_one_byte 
+0x79ad 034075 sub pdata ,7 ,null 
+0x79ae 034076 rtn positive 
+:      034077 usb_class_type:
+0x79af 034078 bpatchx patch20_0 ,mem_patch20 
+0x79b0 034079 set0 mark_isstr ,mark 
+0x79b1 034080 fetch 1 ,mem_usb_setup_bmrequesttype 
+0x79b2 034081 and_into 0x80 ,pdata 
+0x79b3 034082 beq in_device ,usb_in_device 
+0x79b4 034083 beq out_device ,usb_out_device 
+0x79b5 034084 branch assert 
+:      034086 usb_out_one_byte:
+0x79b6 034087 fetch 1 ,mem_usb_setup 
+0x79b7 034088 rtnbit1 7 
+0x79b8 034089 call usb_get_led_status 
+0x79b9 034090 branch usb0_reply_zerolen 
+:      034093 usb_in_device:
+0x79ba 034094 fetch 1 ,mem_usb_setup_bmrequesttype 
+0x79bb 034095 rshift4 pdata ,pdata 
+0x79bc 034096 rshift pdata ,pdata 
+0x79bd 034097 and_into 0x03 ,pdata 
+0x79be 034098 beq standard_req ,usb_in_standard_req 
+0x79bf 034099 beq class_req ,usb_in_class_req 
+0x79c0 034100 beq manufacturer_req ,usb_in_manufacturer_req 
+0x79c1 034101 branch assert 
+:      034103 usb_out_device:
+0x79c2 034104 fetch 1 ,mem_usb_setup_bmrequesttype 
+0x79c3 034105 rshift4 pdata ,pdata 
+0x79c4 034106 rshift pdata ,pdata 
+0x79c5 034107 and_into 0x03 ,pdata 
+0x79c6 034108 beq standard_req ,usb_out_standard_req 
+0x79c7 034109 beq class_req ,usb_out_class_req 
+0x79c8 034110 beq manufacturer_req ,usb_out_manufacturer_req 
+0x79c9 034111 branch assert 
+:      034113 usb_in_standard_req:
+0x79ca 034114 fetch 1 ,mem_usb_setup_brequest 
+0x79cb 034115 beq get_configuration ,usb0_request_get_configuration 
+0x79cc 034116 beq get_descriptor ,usb0_request_get_descriptor 
+0x79cd 034117 beq get_interface ,usb0_request_get_interface 
+0x79ce 034118 beq get_status ,usb0_request_get_status 
+0x79cf 034119 branch usb0_force_stall 
+:      034121 usb_in_class_req:
+0x79d0 034122 fetch 1 ,mem_usb_setup_brequest 
+0x79d1 034123 beq get_idle ,usb_get_idle 
+0x79d2 034124 beq get_report ,usb_get_report 
+0x79d3 034125 beq get_protocol ,usb_get_protocol_req 
+0x79d4 034126 branch usb0_force_stall 
+:      034128 usb_in_manufacturer_req:
+0x79d5 034129 branch usb0_force_stall 
+:      034131 usb_out_standard_req:
+0x79d6 034132 fetch 1 ,mem_usb_setup_brequest 
+0x79d7 034133 beq clear_feature ,usb0_request_clear_feature 
+0x79d8 034134 beq set_feature ,usb0_request_set_feature 
+0x79d9 034135 beq set_address ,usb0_request_set_address 
+0x79da 034136 beq set_configuration ,usb0_request_set_configuration 
+0x79db 034137 beq set_interface ,usb0_request_set_interface 
+0x79dc 034138 beq set_descriptor ,usb0_force_stall 
+0x79dd 034139 branch usb0_force_stall 
+:      034141 usb_out_class_req:
+0x79de 034142 fetch 1 ,mem_usb_setup_brequest 
+0x79df 034143 beq set_idle ,usb_set_idle 
+0x79e0 034144 beq set_report ,usb_set_report 
+0x79e1 034145 beq set_protocol ,usb_set_protocol_req 
+0x79e2 034146 branch usb0_force_stall 
+:      034148 usb_out_manufacturer_req:
+0x79e3 034149 branch usb0_force_stall 
+:      034151 usb0_force_stall:
+0x79e4 034152 bpatchx patch20_1 ,mem_patch20 
+0x79e5 034153 fetch 1 ,core_usb_stall 
+0x79e6 034154 set1 0 ,pdata 
+0x79e7 034155 store 1 ,core_usb_stall 
+0x79e8 034156 branch usb0_reply_zerolen 
+:      034158 usb0_reply_zerolen:
+0x79e9 034159 jam 0x1 ,core_usb_clear_nak 
+0x79ea 034160 rtn 
+:      034162 usb0_request_get_configuration:
+0x79eb 034163 fetch 1 ,mem_usb_setup_bmrequesttype 
+0x79ec 034164 bne in_device ,usb0_force_stall 
+0x79ed 034165 fetch 1 ,mem_usb_setup_windex 
+0x79ee 034166 bne 0 ,usb0_force_stall 
+0x79ef 034167 fetch 1 ,mem_usb_setup_windex + 1 
+0x79f0 034168 bne 0 ,usb0_force_stall 
+0x79f1 034169 fetch 1 ,mem_usb_setup_blength 
+0x79f2 034170 bne 1 ,usb0_force_stall 
+0x79f3 034171 fetch 1 ,mem_usb_setup_blengthh 
+0x79f4 034172 bne 0 ,usb0_force_stall 
+0x79f5 034173 fetch 1 ,mem_usb_setup_bvalue 
+0x79f6 034174 bne 0 ,usb0_force_stall 
+0x79f7 034175 fetch 1 ,mem_usb_setup_bvalue + 1 
+0x79f8 034176 bne 0 ,usb0_force_stall 
+0x79f9 034177 fetch 1 ,mem_usb0_state 
+0x79fa 034178 beq dev_configured ,usb0_request_get_cfg_dev_cfg 
+0x79fb 034179 beq dev_address ,usb0_request_get_cfg_dev_addr 
+0x79fc 034180 branch usb0_force_stall 
+:      034182 usb0_request_get_cfg_dev_cfg:
+0x79fd 034183 arg 1 ,regb 
+0x79fe 034184 branch usb_send_ones_packet 
+:      034186 usb0_request_get_cfg_dev_addr:
+0x79ff 034187 arg 1 ,regb 
+0x7a00 034188 branch usb_send_zero_packet 
+:      034190 usb0_request_get_descriptor:
+0x7a01 034191 bpatchx patch20_2 ,mem_patch20 
+0x7a02 034193 fetch 1 ,mem_usb_setup_bvalueh 
+0x7a03 034194 beq dsc_device ,dsc_device_info 
+0x7a04 034195 beq dsc_config ,dsc_config_info 
+0x7a05 034196 beq dsc_string ,dsc_string_info 
+0x7a06 034197 beq dsc_hid ,dsc_hid_info 
+0x7a07 034198 beq dsc_hid_report ,dsc_hid_report_info 
+0x7a08 034199 branch usb0_force_stall 
+:      034201 dsc_hid_info:
+0x7a09 034202 jam 0 ,mem_usb_get_protocol_flag 
+0x7a0a 034203 fetch 1 ,mem_usb_setup_windex 
+0x7a0b 034204 beq 0 ,dsc_hid_info_interface0 
+0x7a0c 034205 beq 1 ,dsc_hid_info_interface1 
+0x7a0d 034206 branch usb0_force_stall 
+:      034208 dsc_hid_info_interface0:
+0x7a0e 034209 fetchr regb ,1 ,mem_confdesc + 19 
+0x7a0f 034210 arg mem_confdesc + 19 ,rega 
+0x7a10 034211 branch usb0_respond 
+:      034213 dsc_hid_info_interface1:
+0x7a11 034214 fetchr regb ,1 ,mem_confdesc + 44 
+0x7a12 034215 arg mem_confdesc + 44 ,rega 
+0x7a13 034216 branch usb0_respond 
+:      034218 dsc_device_info:
+0x7a14 034222 fetch 1 ,mem_usb_set_high_addr_flag 
+0x7a15 034223 ncall usb_set_high_addr ,blank 
+0x7a16 034224 setarg mem_devicedesc 
+0x7a17 034225 fetcht 1 ,mem_devicedesc 
+:      034226 dsc_info_set_data_len:
+0x7a18 034227 store 2 ,mem_dsc_info_data_pointer 
+0x7a19 034228 storet 1 ,mem_dsc_info_len 
+0x7a1a 034229 fetch 1 ,mem_usb_setup_blength 
+0x7a1b 034230 isub temp ,null 
+0x7a1c 034231 nbranch dsc_info_set_current_data_len ,positive 
+:      034232 dsc_info_set_initial_data_len:
+0x7a1d 034233 fetch 1 ,mem_dsc_info_len 
+:      034234 dsc_info_set_data_size_completed:
+0x7a1e 034235 iforce regb 
+0x7a1f 034236 fetch 2 ,mem_dsc_info_data_pointer 
+0x7a20 034237 add pdata ,1 ,pdata 
+0x7a21 034238 iforce rega 
+0x7a22 034239 branch usb0_respond 
+:      034240 dsc_info_set_current_data_len:
+0x7a23 034241 fetch 1 ,mem_usb_setup_blength 
+0x7a24 034242 branch dsc_info_set_data_size_completed 
+:      034244 usb_set_high_addr:
+0x7a25 034245 fetch 1 ,core_usb_addr 
+0x7a26 034246 ncall usb0_set_addr ,blank 
+0x7a27 034247 jam 0 ,mem_usb_set_high_addr_flag 
+0x7a28 034248 rtn 
+:      034249 usb0_set_addr:
+0x7a29 034250 fetch 1 ,core_usb_addr 
+0x7a2a 034251 set1 7 ,pdata 
+0x7a2b 034252 store 1 ,core_usb_addr 
+0x7a2c 034253 rtn 
+:      034255 dsc_config_info:
+0x7a2d 034256 setarg mem_confdesc 
+0x7a2e 034257 fetcht 1 ,mem_confdesc 
+0x7a2f 034258 branch dsc_info_set_data_len 
+:      034260 dsc_string_info:
+0x7a30 034261 fetch 1 ,mem_usb_setup_bvalue 
+0x7a31 034262 sub pdata ,3 ,null 
+0x7a32 034263 nbranch usb0_force_stall ,positive 
+0x7a33 034264 fetch 1 ,mem_usb_setup_bvalue 
+0x7a34 034265 arg mem_string0 ,rega 
+0x7a35 034266 beq 0 ,usb0_respond_length 
+0x7a36 034267 set1 mark_isstr ,mark 
+0x7a37 034268 arg mem_string1 ,rega 
+0x7a38 034269 beq 1 ,usb0_respond_length 
+0x7a39 034270 arg mem_string2 ,rega 
+0x7a3a 034271 beq 2 ,usb0_respond_length 
+0x7a3b 034272 arg mem_string3 ,rega 
+0x7a3c 034273 beq 3 ,usb0_respond_length 
+0x7a3d 034274 rtn 
+:      034276 dsc_hid_report_info:
+0x7a3e 034277 fetch 2 ,mem_usb_setup_windex 
+0x7a3f 034278 beq 1 ,dsc_hid_report_info0 
+0x7a40 034279 fetchr rega ,2 ,mem_hidreportdesc_kb 
+0x7a41 034280 branch usb0_respond_length 
+:      034281 dsc_hid_report_info0:
+0x7a42 034282 jam 1 ,mem_usb_device_enumeration_endflag 
+0x7a43 034283 jam usb_got_report_req ,mem_usb_state 
+0x7a44 034284 fetchr rega ,2 ,mem_hidreportdesc_m 
+0x7a45 034285 branch usb0_respond_length 
+:      034288 usb0_request_get_interface:
+0x7a46 034289 fetch 1 ,mem_usb0_state 
+0x7a47 034290 bne dev_configured ,usb0_force_stall 
+0x7a48 034291 fetch 1 ,mem_usb_setup_bmrequesttype 
+0x7a49 034292 bne in_interface ,usb0_force_stall 
+0x7a4a 034293 fetch 1 ,mem_usb_setup_bvalue 
+0x7a4b 034294 bne 0 ,usb0_force_stall 
+0x7a4c 034295 fetch 1 ,mem_usb_setup_bvalueh 
+0x7a4d 034296 bne 0 ,usb0_force_stall 
+0x7a4e 034297 fetch 1 ,mem_usb_setup_blength 
+0x7a4f 034298 bne 1 ,usb0_force_stall 
+0x7a50 034299 fetch 1 ,mem_usb_setup_blengthh 
+0x7a51 034300 bne 0 ,usb0_force_stall 
+0x7a52 034301 fetch 1 ,mem_usb_setup_windex 
+0x7a53 034302 bne 0 ,usb0_force_stall 
+0x7a54 034303 fetch 1 ,mem_usb_setup_windex + 1 
+0x7a55 034304 bne 0 ,usb0_force_stall 
+0x7a56 034305 arg 1 ,regb 
+0x7a57 034306 branch usb_send_zero_packet 
+:      034309 usb0_request_get_status:
+0x7a58 034310 fetch 1 ,mem_usb0_state 
+0x7a59 034311 beq dev_default ,usb0_force_stall 
+0x7a5a 034312 fetch 1 ,mem_usb_setup_bvalue 
+0x7a5b 034313 bne 0 ,usb0_force_stall 
+0x7a5c 034314 fetch 1 ,mem_usb_setup_bvalueh 
+0x7a5d 034315 bne 0 ,usb0_force_stall 
+0x7a5e 034316 fetch 1 ,mem_usb_setup_blength 
+0x7a5f 034317 bne 2 ,usb0_force_stall 
+0x7a60 034318 fetch 1 ,mem_usb_setup_blengthh 
+0x7a61 034319 bne 0 ,usb0_force_stall 
+0x7a62 034320 fetch 1 ,mem_usb_setup_windex + 1 
+0x7a63 034321 bne 0 ,usb0_force_stall 
+0x7a64 034322 fetch 1 ,mem_usb_setup_bmrequesttype 
+0x7a65 034323 beq in_device ,usb0_get_status_in_device 
+0x7a66 034324 beq in_interface ,usb0_get_status_in_interface 
+0x7a67 034325 beq in_endpoint ,usb0_get_status_in_endpoint 
+0x7a68 034326 branch usb0_force_stall 
+:      034329 usb0_sdsystem_dispose:
+0x7a69 034330 jam 1 ,mem_sdsystem_wakeup_flag 
+0x7a6a 034331 branch usb_send_two_packet 
+:      034333 usb0_get_status_in_device:
+0x7a6b 034334 fetch 1 ,mem_usb_setup_windex 
+0x7a6c 034335 bne 0 ,usb0_force_stall 
+0x7a6d 034336 arg 2 ,regb 
+0x7a6e 034337 fetch 1 ,mem_usb_remote_wakeup 
+0x7a6f 034338 beq 0x01 ,usb0_sdsystem_dispose 
+:      034340 usb_send_zero_packet:
+0x7a70 034341 arg mem_usb_zero_packet ,rega 
+0x7a71 034342 branch usb0_respond 
+:      034343 usb_send_ones_packet:
+0x7a72 034344 arg mem_usb_ones_packet ,rega 
+0x7a73 034345 branch usb0_respond 
+:      034346 usb_send_two_packet:
+0x7a74 034347 arg mem_usb_two_packet ,rega 
+0x7a75 034348 branch usb0_respond 
+:      034350 usb0_get_status_in_interface:
+0x7a76 034351 fetch 1 ,mem_usb0_state 
+0x7a77 034352 bne dev_configured ,usb0_force_stall 
+0x7a78 034353 arg 2 ,regb 
+0x7a79 034354 branch usb_send_zero_packet 
+:      034356 usb0_get_status_in_endpoint:
+0x7a7a 034357 fetch 1 ,mem_usb0_state 
+0x7a7b 034358 bne dev_configured ,usb0_force_stall 
+0x7a7c 034359 fetch 1 ,mem_usb_setup_windex 
+0x7a7d 034360 beq in_ep1 ,usb0_get_status_in_ep_in_ep1 
+0x7a7e 034361 beq in_ep2 ,usb0_get_status_in_ep_in_ep2 
+0x7a7f 034362 beq in_ep3 ,usb0_get_status_in_ep_in_ep3 
+0x7a80 034363 and_into 0x7f ,pdata 
+0x7a81 034364 beq 0x00 ,usb0_get_status_in_ep_in_ep0 
+0x7a82 034365 branch usb0_force_stall 
+:      034367 usb0_get_status_in_ep_in_ep0:
+0x7a83 034368 fetch 1 ,mem_usb_ep0_stall_status 
+:      034369 usb0_get_status_in_ep_in_ack:
+0x7a84 034370 arg 2 ,regb 
+0x7a85 034371 beq 1 ,usb_send_ones_packet 
+0x7a86 034372 branch usb_send_zero_packet 
+:      034373 usb0_get_status_in_ep_in_ep1:
+0x7a87 034374 fetch 1 ,mem_usb_ep1_stall_status 
+0x7a88 034375 branch usb0_get_status_in_ep_in_ack 
+:      034376 usb0_get_status_in_ep_in_ep2:
+0x7a89 034377 fetch 1 ,mem_usb_ep2_stall_status 
+0x7a8a 034378 branch usb0_get_status_in_ep_in_ack 
+:      034379 usb0_get_status_in_ep_in_ep3:
+0x7a8b 034380 fetch 1 ,mem_usb_ep3_stall_status 
+0x7a8c 034381 branch usb0_get_status_in_ep_in_ack 
+:      034383 usb_get_idle:
+0x7a8d 034384 jam 1 ,mem_usb_idle_flag 
+0x7a8e 034385 arg mem_usb_idle_rate ,rega 
+0x7a8f 034386 arg 1 ,regb 
+0x7a90 034387 branch usb0_respond 
+:      034389 usb_get_report:
+0x7a91 034390 fetch 2 ,mem_usb_setup_bvalue 
+0x7a92 034391 arg pc_get_report ,temp 
+0x7a93 034392 isub temp ,null 
+0x7a94 034393 nbranch usb0_force_stall ,zero 
+:      034395 usb_get_report_dispose:
+0x7a95 034396 fetch 1 ,mem_usb0_data_ready_report 
+0x7a96 034397 nbranch usb_get_report_data_success ,blank 
+0x7a97 034398 jam pc_get_nondata ,mem_usb0_get_report_data 
+:      034399 usb_get_report_send_data:
+0x7a98 034400 fetch 1 ,mem_usb_setup_blength 
+0x7a99 034401 iforce regb 
+0x7a9a 034402 arg mem_usb0_get_report_data ,rega 
+0x7a9b 034403 call usb0_respond 
+:      034404 usb_get_report_data_release:
+0x7a9c 034405 arg mem_usb0_get_report_data ,contw 
+0x7a9d 034406 arg 64 ,loopcnt 
+0x7a9e 034407 branch memset0 
+:      034408 usb_get_report_data_success:
+0x7a9f 034409 jam 0 ,mem_usb0_data_ready_report 
+0x7aa0 034410 jam pc_get_data ,mem_usb0_get_report_data 
+0x7aa1 034411 branch usb_get_report_send_data 
+:      034413 usb_get_protocol_req:
+0x7aa2 034414 fetch 1 ,mem_usb_setup_blength 
+0x7aa3 034415 bne 1 ,usb0_force_stall 
+0x7aa4 034416 jam 1 ,mem_usb_get_protocol_flag 
+0x7aa5 034417 arg 1 ,regb 
+0x7aa6 034418 fetch 1 ,mem_usb_set_protocol_value 
+0x7aa7 034419 beq 0 ,usb_get_report_protocol 
+0x7aa8 034420 beq 1 ,usb_get_boot_protocol 
+0x7aa9 034421 branch usb_send_zero_packet 
+:      034422 usb_get_report_protocol:
+0x7aaa 034423 branch usb_send_ones_packet 
+:      034424 usb_get_boot_protocol:
+0x7aab 034425 branch usb_send_zero_packet 
+:      034430 usb0_request_clear_feature:
+0x7aac 034431 fetch 1 ,mem_usb0_state 
+0x7aad 034432 bne dev_configured ,usb0_force_stall 
+0x7aae 034433 fetch 1 ,mem_usb_setup_blength 
+0x7aaf 034434 bne 0 ,usb0_force_stall 
+0x7ab0 034435 fetch 1 ,mem_usb_setup_blengthh 
+0x7ab1 034436 bne 0 ,usb0_force_stall 
+0x7ab2 034437 fetch 1 ,mem_usb_setup_bvalueh 
+0x7ab3 034438 bne 0 ,usb0_force_stall 
+0x7ab4 034439 fetch 1 ,mem_usb_setup_windex + 1 
+0x7ab5 034440 bne 0 ,usb0_force_stall 
+0x7ab6 034441 fetch 1 ,mem_usb_setup_bmrequesttype 
+0x7ab7 034442 beq out_device ,usb0_request_clear_feature_out_device 
+0x7ab8 034443 beq out_interface ,usb0_request_clear_feature_out_interface 
+0x7ab9 034444 beq out_endpoint ,usb0_request_clear_feature_out_endpoint 
+0x7aba 034445 branch usb0_force_stall 
+:      034447 usb0_request_clear_feature_out_device:
+0x7abb 034448 fetch 1 ,mem_usb_setup_bvalue 
+0x7abc 034449 bne device_remote_wakeup ,usb0_force_stall 
+0x7abd 034450 fetch 1 ,core_usb_config 
+0x7abe 034451 set0 7 ,pdata 
+0x7abf 034452 store 1 ,core_usb_config 
+0x7ac0 034453 jam 0 ,mem_usb_remote_wakeup 
+0x7ac1 034454 jam 1 ,mem_usb_clear_remote_wakeup 
+0x7ac2 034455 fetch 1 ,mem_sdsystem_wakeup_flag 
+0x7ac3 034456 branch usb0_reply_zerolen ,blank 
+0x7ac4 034457 jam 0 ,mem_sdsystem_wakeup_flag 
+0x7ac5 034458 jam 0 ,mem_usb_clear_remote_wakeup 
+0x7ac6 034459 jam usb_connected ,mem_usb_state 
+0x7ac7 034460 branch usb0_reply_zerolen 
+:      034462 usb0_request_clear_feature_out_interface:
+0x7ac8 034463 branch usb0_force_stall 
+:      034465 usb0_request_clear_feature_out_endpoint:
+0x7ac9 034466 fetch 1 ,mem_usb_setup_bvalue 
+0x7aca 034467 bne endpoint_halt ,usb0_force_stall 
+0x7acb 034468 fetch 1 ,mem_usb_setup_windex 
+0x7acc 034469 beq in_ep1 ,usb0_force_stall_ep1_in_off 
+0x7acd 034470 beq in_ep2 ,usb0_force_stall_ep2_in_off 
+0x7ace 034471 beq in_ep3 ,usb0_force_stall_ep3_in_off 
+0x7acf 034472 and_into 0x7f ,pdata 
+0x7ad0 034473 beq 0x00 ,usb0_force_stall_ep0_in_off 
+0x7ad1 034474 branch usb0_force_stall 
+:      034476 usb0_force_stall_ep0_in_off:
+0x7ad2 034477 jam 0 ,mem_usb_ep0_stall_status 
+0x7ad3 034478 branch usb0_reply_zerolen 
+:      034479 usb0_force_stall_ep1_in_off:
+0x7ad4 034480 jam 0 ,mem_usb_ep1_stall_status 
+:      034481 usb0_force_stall_ep1_in_off_reply:
+0x7ad5 034482 jam 1 ,mem_usb_clear_halt 
+0x7ad6 034483 branch usb0_reply_zerolen 
+:      034484 usb0_force_stall_ep2_in_off:
+0x7ad7 034485 jam 0 ,mem_usb_ep2_stall_status 
+0x7ad8 034486 branch usb0_force_stall_ep1_in_off_reply 
+:      034487 usb0_force_stall_ep3_in_off:
+0x7ad9 034488 jam 0 ,mem_usb_ep3_stall_status 
+0x7ada 034489 branch usb0_force_stall_ep1_in_off_reply 
+:      034492 usb0_request_set_feature:
+0x7adb 034493 fetch 1 ,mem_usb_setup_blength 
+0x7adc 034494 bne 0 ,usb0_force_stall 
+0x7add 034495 fetch 1 ,mem_usb_setup_blengthh 
+0x7ade 034496 bne 0 ,usb0_force_stall 
+0x7adf 034497 fetch 1 ,mem_usb_setup_bmrequesttype 
+0x7ae0 034498 beq out_device ,usb0_request_set_feature_out_device 
+0x7ae1 034499 beq out_interface ,usb0_request_set_feature_out_interface 
+0x7ae2 034500 beq out_endpoint ,usb0_request_set_feature_out_endpoint 
+0x7ae3 034501 branch usb0_force_stall 
+:      034503 usb0_request_set_feature_out_device:
+0x7ae4 034504 fetch 1 ,mem_usb_setup_bvalue 
+0x7ae5 034505 bne device_remote_wakeup ,usb0_force_stall 
+0x7ae6 034506 call dongle_set_pc_sleep_flag 
+0x7ae7 034507 fetch 1 ,core_usb_config 
+0x7ae8 034508 set1 7 ,pdata 
+0x7ae9 034509 store 1 ,core_usb_config 
+0x7aea 034510 jam 1 ,mem_usb_remote_wakeup 
+0x7aeb 034511 jam usb_sleep ,mem_usb_state 
+0x7aec 034512 jam 0 ,mem_usb_tx_win_enable 
+0x7aed 034513 call usb0_reply_zerolen 
+:      034514 usb_wakeup_timer_reinit:
+0x7aee 034515 call timer_reinit 
+0x7aef 034516 setarg timer_wakeup_delay 
+0x7af0 034517 arg usb_timer_wakeup ,queue 
+0x7af1 034518 branch timer_init 
+:      034520 usb0_request_set_feature_out_interface:
+0x7af2 034521 branch usb0_force_stall 
+:      034523 usb0_request_set_feature_out_endpoint:
+0x7af3 034524 fetch 1 ,mem_usb_setup_bvalue 
+0x7af4 034525 bne endpoint_halt ,usb0_force_stall 
+0x7af5 034526 fetch 1 ,mem_usb_setup_bvalueh 
+0x7af6 034527 bne 0 ,usb0_force_stall 
+0x7af7 034528 fetch 1 ,mem_usb_setup_windex 
+0x7af8 034529 beq in_ep1 ,usb0_force_stall_ep1_in_on 
+0x7af9 034530 beq in_ep2 ,usb0_force_stall_ep2_in_on 
+0x7afa 034531 beq in_ep3 ,usb0_force_stall_ep3_in_on 
+0x7afb 034532 and_into 0x7f ,pdata 
+0x7afc 034533 beq 0x00 ,usb0_force_stall_ep0_in_on 
+0x7afd 034534 branch usb0_force_stall 
+:      034536 usb0_force_stall_ep0_in_on:
+0x7afe 034537 jam 1 ,mem_usb_ep0_stall_status 
+0x7aff 034538 branch usb0_reply_zerolen 
+:      034539 usb0_force_stall_ep1_in_on:
+0x7b00 034540 jam 1 ,mem_usb_ep1_stall_status 
+0x7b01 034541 branch usb0_reply_zerolen 
+:      034542 usb0_force_stall_ep2_in_on:
+0x7b02 034543 jam 1 ,mem_usb_ep2_stall_status 
+0x7b03 034544 branch usb0_reply_zerolen 
+:      034545 usb0_force_stall_ep3_in_on:
+0x7b04 034546 jam 1 ,mem_usb_ep3_stall_status 
+0x7b05 034547 branch usb0_reply_zerolen 
+:      034550 usb0_request_set_address:
+0x7b06 034551 fetch 1 ,mem_usb_setup_bmrequesttype 
+0x7b07 034552 bne out_device ,usb0_force_stall 
+0x7b08 034553 fetch 1 ,mem_usb_setup_windex 
+0x7b09 034554 bne 0 ,usb0_force_stall 
+0x7b0a 034555 fetch 1 ,mem_usb_setup_windex + 1 
+0x7b0b 034556 bne 0 ,usb0_force_stall 
+0x7b0c 034557 fetch 1 ,mem_usb_setup_blength 
+0x7b0d 034558 bne 0 ,usb0_force_stall 
+0x7b0e 034559 fetch 1 ,mem_usb_setup_blengthh 
+0x7b0f 034560 bne 0 ,usb0_force_stall 
+0x7b10 034561 fetch 1 ,mem_usb_setup_bvalueh 
+0x7b11 034562 bne 0 ,usb0_force_stall 
+0x7b12 034563 fetch 1 ,mem_usb_setup_bvalue 
+0x7b13 034564 and_into 0x80 ,pdata 
+0x7b14 034565 bne 0 ,usb0_force_stall 
+0x7b15 034566 fetch 1 ,mem_usb_setup_bvalue 
+0x7b16 034567 bne 0 ,usb_usb0_state_set_dev_addr 
+:      034568 usb_usb0_state_set_dev_default:
+0x7b17 034569 jam dev_default ,mem_usb0_state 
+:      034570 usb0_request_set_wait_address:
+0x7b18 034571 fetch 1 ,mem_usb_setup_bvalue 
+0x7b19 034572 store 1 ,core_usb_addr 
+0x7b1a 034573 call usb0_reply_zerolen 
+0x7b1b 034574 jam 1 ,mem_usb_set_high_addr_flag 
+0x7b1c 034575 rtn 
+:      034576 usb_usb0_state_set_dev_addr:
+0x7b1d 034577 jam dev_address ,mem_usb0_state 
+0x7b1e 034578 branch usb0_request_set_wait_address 
+:      034581 usb0_request_set_configuration:
+0x7b1f 034582 fetch 1 ,mem_usb0_state 
+0x7b20 034583 beq dev_default ,usb0_force_stall 
+0x7b21 034584 fetch 1 ,mem_usb_setup_bmrequesttype 
+0x7b22 034585 bne out_device ,usb0_force_stall 
+0x7b23 034586 fetch 1 ,mem_usb_setup_windex 
+0x7b24 034587 bne 0 ,usb0_force_stall 
+0x7b25 034588 fetch 1 ,mem_usb_setup_windex + 1 
+0x7b26 034589 bne 0 ,usb0_force_stall 
+0x7b27 034590 fetch 1 ,mem_usb_setup_blength 
+0x7b28 034591 bne 0 ,usb0_force_stall 
+0x7b29 034592 fetch 1 ,mem_usb_setup_blengthh 
+0x7b2a 034593 bne 0 ,usb0_force_stall 
+0x7b2b 034594 fetch 1 ,mem_usb_setup_bvalue + 1 
+0x7b2c 034595 bne 0 ,usb0_force_stall 
+0x7b2d 034596 fetch 1 ,mem_usb_setup_bvalue 
+0x7b2e 034597 sub pdata ,usb_max_num_cfg ,null 
+0x7b2f 034598 nbranch usb0_force_stall ,positive 
+0x7b30 034599 fetch 1 ,mem_usb0_state 
+0x7b31 034600 beq dev_address ,usb0_request_set_cfg_addr_state 
+0x7b32 034601 beq dev_configured ,usb0_request_set_cfg_cfg_state 
+0x7b33 034602 branch usb0_force_stall 
+:      034604 usb0_request_set_cfg_addr_state:
+:      034605 usb0_request_set_cfg_cfg_state:
+0x7b34 034606 fetch 1 ,mem_usb_setup_bvalue 
+0x7b35 034607 beq 0 ,usb0_request_set_cfg_stay_addr_state 
+0x7b36 034608 jam dev_configured ,mem_usb0_state 
+0x7b37 034609 branch usb0_reply_zerolen 
+:      034610 usb0_request_set_cfg_stay_addr_state:
+0x7b38 034611 jam dev_address ,mem_usb0_state 
+0x7b39 034612 branch usb0_reply_zerolen 
+:      034615 usb0_request_set_interface:
+0x7b3a 034616 fetch 1 ,mem_usb0_state 
+0x7b3b 034617 bne dev_configured ,usb0_force_stall 
+0x7b3c 034618 fetch 1 ,mem_usb_setup_bmrequesttype 
+0x7b3d 034619 bne out_interface ,usb0_force_stall 
+0x7b3e 034620 fetch 1 ,mem_usb_setup_bvalue 
+0x7b3f 034621 bne 0 ,usb0_force_stall 
+0x7b40 034622 fetch 1 ,mem_usb_setup_bvalueh 
+0x7b41 034623 bne 0 ,usb0_force_stall 
+0x7b42 034624 fetch 1 ,mem_usb_setup_blength 
+0x7b43 034625 bne 0 ,usb0_force_stall 
+0x7b44 034626 fetch 1 ,mem_usb_setup_blengthh 
+0x7b45 034627 bne 0 ,usb0_force_stall 
+0x7b46 034628 fetch 1 ,mem_usb_setup_windex 
+0x7b47 034629 bne 0 ,usb0_force_stall 
+0x7b48 034630 fetch 1 ,mem_usb_setup_windex + 1 
+0x7b49 034631 bne 0 ,usb0_force_stall 
+0x7b4a 034632 branch usb0_reply_zerolen 
+:      034635 usb_set_idle:
+0x7b4b 034636 bpatchx patch20_3 ,mem_patch20 
+0x7b4c 034637 jam 1 ,mem_usb_idle_flag 
+0x7b4d 034638 fetch 1 ,mem_usb_setup_bvalueh 
+0x7b4e 034639 store 1 ,mem_usb_idle_rate 
+0x7b4f 034640 fetch 1 ,mem_usb_setup_windex 
+0x7b50 034641 sub pdata ,1 ,null 
+0x7b51 034642 call usb_clear_remote_wakeup_set0 ,zero 
+0x7b52 034643 fetch 1 ,mem_usb_state 
+0x7b53 034644 bne usb_resume ,usb0_reply_zerolen 
+0x7b54 034645 jam usb_connected ,mem_usb_state 
+0x7b55 034646 call usb0_reply_zerolen 
+0x7b56 034647 nop 30000 
+0x7b57 034648 nop 30000 
+0x7b58 034649 rtn 
+:      034650 usb_clear_remote_wakeup_set0:
+0x7b59 034651 jam 1 ,mem_usb_device_enumeration_endflag 
+0x7b5a 034652 jam 0 ,mem_usb_clear_remote_wakeup 
+0x7b5b 034653 jam usb_resume ,mem_usb_state 
+0x7b5c 034654 rtn 
+:      034657 usb_set_report:
+0x7b5d 034658 nop 15000 
+0x7b5e 034659 arg mem_usb0_set_report_data ,contw 
+0x7b5f 034660 call usb_rx_data 
+0x7b60 034661 jam 1 ,mem_usb0_get_set_report 
+0x7b61 034662 call usb_set_report_resume_judge 
+0x7b62 034663 fetch 2 ,mem_usb_setup_bvalue 
+0x7b63 034664 store 2 ,mem_usb_setup_bvalue_temp 
+0x7b64 034665 call usb0_reply_zerolen 
+0x7b65 034666 fetch 1 ,mem_device_option 
+0x7b66 034667 rtnne dvc_op_dongle 
+0x7b67 034668 fetch 1 ,mem_usb_tx_win_enable 
+0x7b68 034669 rtn blank 
+0x7b69 034670 fetch 1 ,mem_usb0_set_report_data 
+:      034671 usb_get_led_status:
+0x7b6a 034672 store 1 ,mem_24g_led_status 
+0x7b6b 034673 jam 0 ,mem_usb_tx_win_enable 
+0x7b6c 034674 jam kb_led_ackpayload ,mem_24g_ackpayload_enable 
+0x7b6d 034675 rtn 
+:      034678 usb_set_report_resume_judge:
+0x7b6e 034679 fetch 2 ,mem_usb_setup_bvalue 
+0x7b6f 034680 arg pc_set_report_bvalue ,temp 
+0x7b70 034681 isub temp ,null 
+0x7b71 034682 nrtn zero 
+0x7b72 034683 fetch 2 ,mem_usb_setup_windex 
+0x7b73 034684 arg pc_set_report_windex ,temp 
+0x7b74 034685 isub temp ,null 
+0x7b75 034686 nrtn zero 
+0x7b76 034687 fetch 2 ,mem_usb_setup_blength 
+0x7b77 034688 arg pc_set_report_blength ,temp 
+0x7b78 034689 isub temp ,null 
+0x7b79 034690 nrtn zero 
+0x7b7a 034691 jam 1 ,mem_usb_tx_win_enable 
+0x7b7b 034692 rtn 
+:      034695 usb_set_protocol_req:
+0x7b7c 034696 fetch 1 ,mem_usb_setup_blength 
+0x7b7d 034697 bne 0 ,usb0_force_stall 
+0x7b7e 034698 fetch 1 ,mem_usb_setup_bvalue 
+0x7b7f 034699 beq boot_protocol ,usb_set_boot_protocol 
+0x7b80 034700 beq report_protocol ,usb_set_report_protocol 
+0x7b81 034701 branch usb0_force_stall 
+:      034702 usb_set_boot_protocol:
+0x7b82 034703 jam 0 ,mem_usb_set_protocol_status 
+0x7b83 034704 jam 1 ,mem_usb_set_protocol_value 
+0x7b84 034705 branch usb0_reply_zerolen 
+:      034706 usb_set_report_protocol:
+0x7b85 034707 jam 1 ,mem_usb_tx_mac_enable 
+0x7b86 034708 jam 1 ,mem_usb_set_protocol_status 
+0x7b87 034709 jam 0 ,mem_usb_set_protocol_value 
+0x7b88 034710 branch usb0_reply_zerolen 
+:      034713 usb0_respond_length:
+0x7b89 034714 ifetchr regb ,1 ,rega 
+0x7b8a 034715 increase 1 ,rega 
+:      034717 usb0_respond:
+0x7b8b 034718 bpatchx patch20_4 ,mem_patch20 
+0x7b8c 034719 set1 mark_usb_first_resp ,mark 
+0x7b8d 034720 bmark0 mark_isstr ,usb0_respond_nostr 
+0x7b8e 034721 increase 1 ,regb 
+0x7b8f 034722 lshift regb ,regb 
+:      034723 usb0_respond_nostr:
+0x7b90 034724 storer rega ,2 ,mem_bufptr 
+0x7b91 034725 storer regb ,1 ,mem_remain 
+0x7b92 034726 branch usb0_tx 
+0x7b93 034727 rtn 
+:      034729 usb_no_respond_data:
+0x7b94 034730 arg 0 ,queue 
+0x7b95 034731 branch usb_trig 
+:      034736 usb0_tx:
+0x7b96 034737 bpatchx patch20_5 ,mem_patch20 
+0x7b97 034738 fetch 1 ,core_usb_txbusy 
+0x7b98 034739 rtnbit1 0 
+0x7b99 034740 fetch 1 ,mem_remain 
+0x7b9a 034741 rtn blank 
+0x7b9b 034742 copy pdata ,loopcnt 
+0x7b9c 034743 iforce temp 
+0x7b9d 034744 fetch 2 ,mem_usb_setup_blength 
+0x7b9e 034745 sub pdata ,ep0_packet_size ,null 
+0x7b9f 034746 branch usb0_tx_short ,positive 
+0x7ba0 034747 sub loopcnt ,ep0_packet_size ,null 
+0x7ba1 034748 branch usb0_tx_info ,positive 
+0x7ba2 034749 force ep0_packet_size ,loopcnt 
+0x7ba3 034750 branch usb0_tx_info 
+:      034751 usb0_tx_short:
+0x7ba4 034752 isub loopcnt ,null 
+0x7ba5 034753 branch usb0_tx_info ,positive 
+0x7ba6 034754 iforce loopcnt 
+0x7ba7 034755 store 1 ,mem_remain 
+:      034756 usb0_tx_info:
+0x7ba8 034757 fetch 1 ,mem_remain 
+0x7ba9 034758 isub loopcnt ,pdata 
+0x7baa 034759 store 1 ,mem_remain 
+0x7bab 034760 add loopcnt ,-1 ,pdata 
+0x7bac 034761 store 1 ,mem_usb_txbuf 
+0x7bad 034762 bmark0 mark_isstr ,usb0_tx_nostr 
+0x7bae 034763 rshift pdata ,pdata 
+0x7baf 034764 add loopcnt ,-1 ,pdata 
+0x7bb0 034765 store 1 ,mem_usb_txbuf 
+0x7bb1 034766 bmark0 mark_usb_first_resp ,usb0_tx_nostr 
+0x7bb2 034767 set0 mark_usb_first_resp ,mark 
+0x7bb3 034768 istoret 1 ,contw 
+0x7bb4 034769 setarg 3 
+0x7bb5 034770 istore 1 ,contw 
+0x7bb6 034771 increase -1 ,loopcnt 
+0x7bb7 034772 copy loopcnt ,pdata 
+0x7bb8 034773 nbranch usb0_tx_nostr ,zero 
+0x7bb9 034774 increase 1 ,loopcnt 
+:      034775 usb0_tx_nostr:
+0x7bba 034776 fetch 2 ,mem_bufptr 
+0x7bbb 034777 copy pdata ,contr 
+:      034778 usb0_tx0:
+0x7bbc 034779 ifetch 1 ,contr 
+0x7bbd 034780 istore 1 ,contw 
+0x7bbe 034781 bmark0 mark_isstr ,usb0_tx1 
+0x7bbf 034782 setarg 0 
+0x7bc0 034783 istore 1 ,contw 
+:      034784 usb0_tx1:
+0x7bc1 034785 loop usb0_tx0 
+0x7bc2 034786 copy contr ,pdata 
+0x7bc3 034787 store 2 ,mem_bufptr 
+0x7bc4 034788 setarg mem_usb_txbuf 
+0x7bc5 034789 store 2 ,core_usb_tx_saddr0 
+0x7bc6 034790 arg 0 ,queue 
+0x7bc7 034791 call usb_trig 
+0x7bc8 034792 fetch 1 ,mem_remain 
+0x7bc9 034793 nrtn blank 
+0x7bca 034794 jam 2 ,core_usb_clear_nak 
+0x7bcb 034795 fetch 1 ,mem_usb_state 
+0x7bcc 034796 rtnne usb_got_report_req 
+0x7bcd 034797 jam usb_connected ,mem_usb_state 
+0x7bce 034798 rtn 
+:      034802 usb_tx_ep1:
+0x7bcf 034803 arg mem_usb_txbuf1 ,rega 
+0x7bd0 034804 arg 1 ,queue 
+0x7bd1 034805 storer rega ,2 ,core_usb_tx_saddr1 
+:      034806 usb_tx_buf:
+0x7bd2 034807 add loopcnt ,-1 ,pdata 
+0x7bd3 034808 istore 1 ,rega 
+:      034809 usb_tx_loop:
+0x7bd4 034810 ifetch 1 ,contr 
+0x7bd5 034811 istore 1 ,contw 
+0x7bd6 034812 loop usb_tx_loop 
+:      034813 usb_trig:
+0x7bd7 034814 setarg 0 
+0x7bd8 034815 qset1 pdata 
+0x7bd9 034816 store 1 ,core_usb_trig 
+0x7bda 034817 rtn 
+:      034819 usb_tx_ep2:
+0x7bdb 034820 arg 2 ,queue 
+0x7bdc 034821 arg mem_usb_txbuf2 ,rega 
+0x7bdd 034822 storer rega ,2 ,core_usb_tx_saddr2 
+0x7bde 034823 branch usb_tx_buf 
+:      034825 usb_tx:
+0x7bdf 034826 bpatchx patch20_6 ,mem_patch20 
+0x7be0 034827 fetch 1 ,mem_usb_tx_enable 
+0x7be1 034828 rtn blank 
+0x7be2 034829 fetch 1 ,core_usb_txbusy 
+0x7be3 034830 and_into 0x0f ,pdata 
+0x7be4 034831 nbranch usb_inwake_state_tx_dispose ,blank 
+0x7be5 034832 fetch 1 ,mem_usb_device_enumeration_endflag 
+0x7be6 034833 branch usb_tx_fifo_release ,blank 
+0x7be7 034834 fetch 1 ,mem_usb_state 
+0x7be8 034835 beq usb_sleep ,usb_windows_wakeup 
+0x7be9 034836 bne usb_connected ,usb_tx_fifo_release 
+0x7bea 034837 fetch 1 ,mem_usb_clear_remote_wakeup 
+0x7beb 034838 nbranch usb_tx_fifo_release ,blank 
+0x7bec 034839 call usb_tx_data_ep1 
+0x7bed 034840 branch usb_tx_data_ep2 
+:      034842 usb_tx_data_ep1:
+0x7bee 034843 fetch 1 ,core_usb_txbusy 
+0x7bef 034844 rtnbit1 1 
+0x7bf0 034845 fetch 1 ,mem_usb_tx_enable 
+0x7bf1 034846 rtnbit0 1 
+0x7bf2 034847 fetch 1 ,mem_usb_tx_enable 
+0x7bf3 034848 set0 1 ,pdata 
+0x7bf4 034849 store 1 ,mem_usb_tx_enable 
+0x7bf5 034850 fetch 1 ,mem_usb_ep1_data 
+0x7bf6 034851 rtn blank 
+0x7bf7 034852 beq usb_ep1_kb ,usb_tx_kb_normal_data 
+0x7bf8 034853 branch assert 
+:      034855 usb_tx_data_ep2:
+0x7bf9 034856 fetch 1 ,core_usb_txbusy 
+0x7bfa 034857 rtnbit1 2 
+0x7bfb 034858 fetch 1 ,mem_usb_tx_enable 
+0x7bfc 034859 rtnbit0 2 
+0x7bfd 034860 fetch 1 ,mem_usb_tx_enable 
+0x7bfe 034861 set0 2 ,pdata 
+0x7bff 034862 store 1 ,mem_usb_tx_enable 
+0x7c00 034863 fetch 1 ,mem_usb_ep2_data 
+0x7c01 034864 rtn blank 
+0x7c02 034865 beq usb_ep2_ms ,usb_tx_ms_data 
+0x7c03 034866 beq usb_ep2_multikey ,usb_tx_kb_multikey_data 
+0x7c04 034867 beq usb_ep2_systemkey ,usb_tx_kb_systemkey_data 
+0x7c05 034868 branch assert 
+:      034870 usb_tx_fifo_release:
+0x7c06 034872 arg mem_usb_mouse_data ,contw 
+0x7c07 034873 arg 64 ,loopcnt 
+0x7c08 034874 branch memset0 
+:      034876 usb_tx_ms_data:
+0x7c09 034877 fetch 1 ,mem_usb_idle_flag 
+0x7c0a 034878 fetcht 1 ,mem_usb_get_protocol_flag 
+0x7c0b 034879 iand temp ,pdata 
+0x7c0c 034880 branch usb_tx_ms_data_normal_mode ,blank 
+0x7c0d 034881 fetcht 1 ,mem_usb_set_protocol_status 
+0x7c0e 034882 iadd temp ,pdata 
+0x7c0f 034883 beq mac_boot_mode ,usb_tx_ms_data_mac_boot_mode 
+0x7c10 034884 branch usb_tx_ms_data_normal_mode 
+:      034886 usb_tx_ms_data_mac_boot_mode:
+0x7c11 034887 jam 0 ,mem_usb_ep2_data 
+:      034888 usb_tx_ms_data_mac_boot_regroup:
+0x7c12 034889 fetch 1 ,mem_usb_mouse_data + 1 
+0x7c13 034890 beq r_key ,usb_tx_mac_boot_ms_regroup_r_or_lrkey 
+0x7c14 034891 beq lr_key ,usb_tx_mac_boot_ms_regroup_r_or_lrkey 
+0x7c15 034892 fetch 1 ,mem_usb_mouse_data + 1 
+0x7c16 034893 store 1 ,mem_usb_mouse_data 
+0x7c17 034894 fetch 1 ,mem_usb_mouse_data + 2 
+0x7c18 034895 istore 1 ,contw 
+0x7c19 034896 fetch 1 ,mem_usb_mouse_data + 4 
+0x7c1a 034897 istore 1 ,contw 
+0x7c1b 034898 fetch 1 ,mem_usb_mouse_data + 6 
+0x7c1c 034899 istore 1 ,contw 
+0x7c1d 034900 arg 4 ,loopcnt 
+0x7c1e 034901 arg mem_usb_mouse_data ,contr 
+0x7c1f 034902 branch usb_tx_ep2 
+:      034904 usb_tx_ms_data_normal_mode:
+0x7c20 034905 jam 0 ,mem_usb_ep2_data 
+:      034906 usb_tx_mac_boot_ms_regroup_r_or_lrkey:
+0x7c21 034907 arg 8 ,loopcnt 
+0x7c22 034908 arg mem_usb_mouse_data ,contr 
+0x7c23 034909 branch usb_tx_ep2 
+:      034911 usb_tx_kb_multikey_data:
+0x7c24 034912 jam 0 ,mem_usb_ep2_data 
+0x7c25 034913 arg 3 ,loopcnt 
+0x7c26 034914 arg mem_usb_kb_multikey ,contr 
+0x7c27 034915 branch usb_tx_ep2 
+:      034917 usb_tx_kb_normal_data:
+0x7c28 034918 jam 0 ,mem_usb_ep1_data 
+0x7c29 034919 arg 8 ,loopcnt 
+0x7c2a 034920 arg mem_usb_kb_data ,contr 
+0x7c2b 034921 branch usb_tx_ep1 
+:      034923 usb_tx_kb_systemkey_data:
+0x7c2c 034924 jam 0 ,mem_usb_ep2_data 
+0x7c2d 034925 arg 2 ,loopcnt 
+0x7c2e 034926 arg mem_usb_kb_system ,contr 
+0x7c2f 034927 branch usb_tx_ep2 
+:      034929 usb_inwake_state_tx_dispose:
+0x7c30 034930 fetch 1 ,mem_usb_state 
+0x7c31 034931 beq usb_connected ,usb_mac_wakeup_trig 
+0x7c32 034932 rtn 
+:      034933 usb_mac_wakeup_trig:
+0x7c33 034934 fetch 1 ,core_usb_config 
+0x7c34 034935 set1 7 ,pdata 
+0x7c35 034936 store 1 ,core_usb_config 
+0x7c36 034937 jam 1 ,mem_usb_mac_wakeup_trig 
+0x7c37 034938 rtn 
+:      034940 usb_mac_wakeup_judge:
+0x7c38 034941 fetch 1 ,mem_usb_state 
+0x7c39 034942 rtneq usb_sleep 
+0x7c3a 034943 beq usb_connected ,usb_mac_wakeup 
+0x7c3b 034944 rtn 
+:      034945 usb_mac_wakeup:
+0x7c3c 034946 fetch 1 ,mem_usb_mac_wakeup_trig 
+0x7c3d 034947 rtn blank 
+0x7c3e 034948 jam 1 ,mem_usb_wakestate_onetime_flag 
+0x7c3f 034949 branch usb_wakeup 
+:      034951 usb_windows_wakeup:
+0x7c40 034952 arg usb_timer_wakeup ,queue 
+0x7c41 034953 call timer_check 
+0x7c42 034954 nrtn blank 
+:      034955 usb_wakeup:
+0x7c43 034956 fetch 1 ,core_usb_config 
+0x7c44 034957 rtnbit0 7 
+0x7c45 034958 jam 0xfc ,core_usb_config 
+0x7c46 034959 nop 30000 
+0x7c47 034960 jam 0x3c ,core_usb_config 
+0x7c48 034961 rtn 
+:      034968 push_stack:
+0x7c49 034969 storer contw ,2 ,mem_contw 
+0x7c4a 034970 storet 8 ,mem_temp 
+0x7c4b 034971 storer timeup ,4 ,mem_timeup 
+0x7c4c 034972 call push_stack_rega_b_c 
+0x7c4d 034973 storer contr ,2 ,mem_contr 
+0x7c4e 034974 storer loopcnt ,2 ,mem_loopcnt 
+0x7c4f 034975 storer queue ,2 ,mem_queue 
+0x7c50 034976 rtn 
+:      034978 push_stack_rega_b_c:
+0x7c51 034979 storer rega ,4 ,mem_rega 
+0x7c52 034980 storer regb ,4 ,mem_regb 
+0x7c53 034981 storer regc ,3 ,mem_regc 
+0x7c54 034982 rtn 
+:      034984 pop_stack:
+0x7c55 034985 bpatchx patch20_7 ,mem_patch20 
+0x7c56 034986 fetch 2 ,mem_contw 
+0x7c57 034987 iforce contw 
+0x7c58 034988 fetcht 8 ,mem_temp 
+0x7c59 034989 fetchr timeup ,4 ,mem_timeup 
+0x7c5a 034990 call pop_stack_rega_b_c 
+0x7c5b 034991 fetchr loopcnt ,2 ,mem_loopcnt 
+0x7c5c 034992 fetchr queue ,2 ,mem_queue 
+0x7c5d 034993 fetch 2 ,mem_contr 
+0x7c5e 034994 iforce contr 
+0x7c5f 034995 rtn 
+:      034997 pop_stack_rega_b_c:
+0x7c60 034998 fetchr rega ,4 ,mem_rega 
+0x7c61 034999 fetchr regb ,4 ,mem_regb 
+0x7c62 035000 fetchr regc ,3 ,mem_regc 
+0x7c63 035001 rtn 
+:      035003 get_contw:
+0x7c64 035004 fetch 2 ,mem_contw 
+0x7c65 035005 copy pdata ,contw 
+0x7c66 035006 rtn 
+:      035007 get_contr:
+0x7c67 035008 fetch 2 ,mem_contr 
+0x7c68 035009 copy pdata ,contr 
+0x7c69 035010 rtn 
+:      035012 store_contw:
+0x7c6a 035013 copy contw ,pdata 
+0x7c6b 035014 store 2 ,mem_contw 
+0x7c6c 035015 rtn 
+:      035016 store_contr:
+0x7c6d 035017 copy contr ,pdata 
+0x7c6e 035018 store 2 ,mem_contr 
+0x7c6f 035019 rtn 
+:      035023 save_cont_pointers:
+0x7c70 035024 copy contw ,pdata 
+0x7c71 035025 store 2 ,mem_contw 
+0x7c72 035026 copy contr ,pdata 
+0x7c73 035027 store 2 ,mem_contr 
+0x7c74 035028 rtn 
+:      035030 load_cont_pointers:
+0x7c75 035031 fetch 2 ,mem_contw 
+0x7c76 035032 copy pdata ,contw 
+0x7c77 035033 fetch 2 ,mem_contr 
+0x7c78 035034 copy pdata ,contr 
+0x7c79 035035 rtn 
+:      035040 get_diff:
+0x7c7a 035041 isub temp ,rega 
+0x7c7b 035042 rtn positive 
+0x7c7c 035043 arg 0x100 ,rega 
+0x7c7d 035044 iadd rega ,pdata 
+0x7c7e 035045 isub temp ,rega 
+0x7c7f 035046 rtn 
+:      035048 memcpy96:
+0x7c80 035049 call memcpy32 
+:      035050 memcpy64:
+0x7c81 035051 call memcpy32 
+0x7c82 035052 branch memcpy32 
+:      035055 memcpy12:
+0x7c83 035056 call memcpy8 
+:      035057 memcpy4:
+0x7c84 035058 ifetch 1 ,contr 
+0x7c85 035059 istore 1 ,contw 
+:      035060 memcpy3:
+0x7c86 035061 ifetch 3 ,contr 
+0x7c87 035062 istore 3 ,contw 
+0x7c88 035063 rtn 
+:      035064 memcpy8:
+0x7c89 035065 ifetch 8 ,contr 
+0x7c8a 035066 istore 8 ,contw 
+0x7c8b 035067 rtn 
+:      035069 memcpy48:
+0x7c8c 035070 call memcpy16 
+:      035071 memcpy32:
+0x7c8d 035072 call memcpy8 
+:      035073 memcpy24:
+0x7c8e 035074 call memcpy8 
+:      035075 memcpy16:
+0x7c8f 035076 call memcpy8 
+0x7c90 035077 branch memcpy8 
+:      035079 delay:
+0x7c91 035080 increase -1 ,pdata 
+0x7c92 035081 nop 38 
+0x7c93 035082 nbranch delay ,blank 
+0x7c94 035083 rtn 
+:      035086 delay_10ms:
+0x7c95 035087 arg 10 ,loopcnt 
+:      035088 delay_ms_wait:
+0x7c96 035089 nop 12000 
+0x7c97 035090 loop delay_ms_wait 
+0x7c98 035091 rtn 
+:      035094 memset0_16:
+0x7c99 035095 call memset0_8 
+:      035096 memset0_8:
+0x7c9a 035097 call memset0_4 
+:      035098 memset0_4:
+0x7c9b 035099 force 4 ,loopcnt 
+0x7c9c 035100 branch memset0 
+:      035102 clear_mem_256:
+0x7c9d 035103 force 32 ,loopcnt 
+0x7c9e 035104 branch memset0 
+:      035105 clear_mem_512:
+0x7c9f 035106 force 64 ,loopcnt 
+0x7ca0 035107 branch memset0 
+:      035109 clear_mem:
+0x7ca1 035110 deposit loopcnt 
+0x7ca2 035111 rtn blank 
+:      035112 memset0:
+0x7ca3 035113 force 0 ,pdata 
+0x7ca4 035114 lstore contw 
+0x7ca5 035115 rtn 
+:      035117 clear_temp_block:
+0x7ca6 035118 arg 32 ,loopcnt 
+0x7ca7 035119 arg mem_temp_block0 ,contw 
+0x7ca8 035120 branch clear_mem 
+:      035122 xor_loop:
+0x7ca9 035123 ifetch 4 ,regc 
+0x7caa 035124 ifetcht 4 ,rega 
+0x7cab 035125 ixor temp ,pdata 
+0x7cac 035126 istore 4 ,contw 
+0x7cad 035127 increase 4 ,rega 
+0x7cae 035128 increase 4 ,regc 
+0x7caf 035129 loop xor_loop 
+0x7cb0 035130 rtn 
+:      035134 inverse_data:
+0x7cb1 035135 bpatchx patch21_0 ,mem_patch21 
+0x7cb2 035136 copy loopcnt ,pdata 
+0x7cb3 035137 sub pdata ,1 ,null 
+0x7cb4 035138 rtn positive 
+0x7cb5 035139 iadd rega ,regb 
+0x7cb6 035140 increase -1 ,regb 
+0x7cb7 035141 rshift loopcnt ,loopcnt 
+:      035142 inverse_loop:
+0x7cb8 035143 ifetcht 1 ,rega 
+0x7cb9 035144 ifetch 1 ,regb 
+0x7cba 035145 istore 1 ,rega 
+0x7cbb 035146 istoret 1 ,regb 
+0x7cbc 035147 increase -1 ,regb 
+0x7cbd 035148 increase 1 ,rega 
+0x7cbe 035149 loop inverse_loop 
+0x7cbf 035150 rtn 
+:      035152 le2be_6byte:
+:      035153 inverse_data_6byte:
+0x7cc0 035154 rshift32 pdata ,temp 
+0x7cc1 035155 call inverse_data_4byte 
+0x7cc2 035156 byteswap temp ,temp 
+0x7cc3 035157 lshift16 pdata ,pdata 
+0x7cc4 035158 ior temp ,pdata 
+0x7cc5 035159 rtn 
+:      035162 le2be_4byte:
+:      035163 inverse_data_4byte:
+0x7cc6 035164 rshift16 pdata ,contr 
+0x7cc7 035165 byteswap contr ,contr 
+0x7cc8 035166 byteswap pdata ,pdata 
+0x7cc9 035167 lshift16 pdata ,pdata 
+0x7cca 035168 ior contr ,pdata 
+0x7ccb 035169 rtn 
+:      035172 memcpy_fast:
+0x7ccc 035173 bpatchx patch21_1 ,mem_patch21 
+0x7ccd 035174 deposit loopcnt 
+0x7cce 035175 rtn blank 
+:      035176 memcpy_fast_loop:
+0x7ccf 035177 increase -8 ,loopcnt 
+0x7cd0 035178 call memcpy8 ,positive 
+0x7cd1 035179 rtn zero 
+0x7cd2 035180 branch memcpy_fast_loop ,positive 
+0x7cd3 035181 increase 8 ,loopcnt 
+:      035182 memcpy_fast_loop_four:
+0x7cd4 035183 increase -4 ,loopcnt 
+0x7cd5 035184 call memcpy4 ,positive 
+0x7cd6 035185 rtn zero 
+0x7cd7 035186 branch memcpy_fast_loop_four ,positive 
+0x7cd8 035187 increase 4 ,loopcnt 
+0x7cd9 035188 branch memcpy 
+:      035190 memcpy:
+0x7cda 035191 deposit loopcnt 
+0x7cdb 035192 rtn blank 
+:      035193 memcpy_loop:
+0x7cdc 035194 ifetch 1 ,contr 
+0x7cdd 035195 istore 1 ,contw 
+0x7cde 035196 loop memcpy_loop 
+0x7cdf 035197 rtn 
+:      035199 timer_stop:
+0x7ce0 035200 setarg 0 
+:      035201 timer_init:
+0x7ce1 035204 store 2 ,mem_pdatatemp 
+0x7ce2 035205 bpatchx patch21_2 ,mem_patch21 
+0x7ce3 035206 call timer_check 
+0x7ce4 035207 fetcht 2 ,mem_pdatatemp 
+0x7ce5 035208 arg mem_timers ,contw 
+0x7ce6 035210 lshift queue ,pdata 
+0x7ce7 035211 iadd contw ,contw 
+0x7ce8 035212 istoret 2 ,contw 
+0x7ce9 035213 rtn 
+:      035215 timer_check_timeout:
+0x7cea 035216 arg 0x800 ,timeup 
+0x7ceb 035217 lshift16 timeup ,timeup 
+0x7cec 035218 iadd timeup ,pdata 
+0x7ced 035219 rtn 
+:      035222 timer_reinit:
+0x7cee 035223 arg 0 ,queue 
+:      035224 timer_check:
+0x7cef 035225 bpatchx patch21_3 ,mem_patch21 
+0x7cf0 035226 fetcht 4 ,mem_last_clkn 
+0x7cf1 035227 rshift clkn_bt ,pdata 
+0x7cf2 035228 store 4 ,mem_last_clkn 
+0x7cf3 035229 isub temp ,null 
+0x7cf4 035230 ncall timer_check_timeout ,positive 
+0x7cf5 035231 isub temp ,timeup 
+0x7cf6 035232 copy timeup ,temp 
+0x7cf7 035233 arg mem_timers ,contr 
+0x7cf8 035234 copy contr ,contw 
+0x7cf9 035235 arg 16 ,loopcnt 
+:      035236 timer_loop:
+0x7cfa 035237 ifetch 2 ,contr 
+0x7cfb 035238 isub temp ,pdata 
+0x7cfc 035239 branch timer_counting ,positive 
+0x7cfd 035240 force 0 ,pdata 
+:      035241 timer_counting:
+0x7cfe 035242 istore 2 ,contw 
+0x7cff 035243 loop timer_loop 
+0x7d00 035244 arg mem_timers ,contr 
+0x7d01 035245 lshift queue ,pdata 
+0x7d02 035246 iadd contr ,contr 
+0x7d03 035247 ifetch 2 ,contr 
+0x7d04 035248 rtn 
+:      035253 clk_add:
+0x7d05 035254 iadd temp ,temp 
+0x7d06 035255 copy temp ,loopcnt 
+0x7d07 035256 fetch 2 ,mem_param_rt_rthalfslot 
+0x7d08 035257 isub loopcnt ,pdata 
+0x7d09 035258 rtn positive 
+0x7d0a 035259 sub pdata ,0 ,pdata 
+0x7d0b 035260 rshift16 temp ,temp 
+0x7d0c 035261 increase 1 ,temp 
+0x7d0d 035262 lshift16 temp ,temp 
+0x7d0e 035263 ior temp ,temp 
+0x7d0f 035264 rtn 
+:      035266 clk_diff_rt:
+0x7d10 035267 call clk_diff 
+0x7d11 035268 branch clk2rt 
+:      035271 clk_diff:
+0x7d12 035272 disable user 
+0x7d13 035273 isub temp ,pdata 
+0x7d14 035274 branch clk_diff_pos ,positive 
+0x7d15 035275 enable user 
+0x7d16 035276 sub pdata ,0 ,pdata 
+:      035277 clk_diff_pos:
+0x7d17 035278 rtnbit0 15 
+0x7d18 035279 copy pdata ,regab 
+0x7d19 035280 arg 0x10000 ,temp 
+0x7d1a 035281 fetch 2 ,mem_param_rt_rthalfslot 
+0x7d1b 035282 isub temp ,pdata 
+0x7d1c 035283 iadd regab ,pdata 
+0x7d1d 035284 set0 64 ,pdata 
+0x7d1e 035285 rtn 
+:      035289 clk2rt:
+0x7d1f 035290 fetcht 2 ,mem_param_rt_rthalfslot 
+0x7d20 035291 iforce contr 
+0x7d21 035292 rshift16 pdata ,pdata 
+0x7d22 035293 imul32 temp ,pdata 
+0x7d23 035294 iadd contr ,pdata 
+0x7d24 035295 rtn 
+:      035298 clk2lpo:
+0x7d25 035299 lshift8 pdata ,pdata 
+0x7d26 035300 lshift4 pdata ,pdata 
+0x7d27 035301 fetcht 3 ,mem_clks_per_lpo 
+0x7d28 035302 idiv temp 
+0x7d29 035303 call wait_div_end 
+0x7d2a 035304 quotient temp 
+0x7d2b 035305 rtn 
+:      035308 clk2bt:
+0x7d2c 035309 fetcht 2 ,mem_param_rt_rthalfslot 
+0x7d2d 035310 idiv temp 
+0x7d2e 035311 call get_div_result 
+0x7d2f 035312 lshift16 pdata ,pdata 
+0x7d30 035313 remainder temp 
+0x7d31 035314 ior temp ,temp 
+0x7d32 035315 rtn 
+:      035322 string2dec_from_uart:
+0x7d33 035323 arg 0 ,temp 
+:      035324 string2dec_from_uart_done:
+0x7d34 035325 copy temp ,regab 
+0x7d35 035326 ifetch 1 ,contu 
+0x7d36 035327 call uchar2dialog 
+0x7d37 035328 copy regab ,temp 
+0x7d38 035329 call swap 
+0x7d39 035330 arg 10 ,regb 
+0x7d3a 035331 imul32 regb ,pdata 
+0x7d3b 035332 iadd temp ,pdata 
+0x7d3c 035333 copy pdata ,temp 
+0x7d3d 035334 loop string2dec_from_uart_done 
+0x7d3e 035335 rtn 
+:      035339 uchar2dialog:
+0x7d3f 035340 arg 0x3a ,temp 
+0x7d40 035341 isub temp ,null 
+0x7d41 035342 nbranch uchar2dialog_number ,positive 
+0x7d42 035343 arg 0x61 ,temp 
+0x7d43 035344 isub temp ,null 
+0x7d44 035345 branch uchar2dialog_a2f ,positive 
+0x7d45 035346 arg 0x37 ,temp 
+0x7d46 035347 isub temp ,pdata 
+0x7d47 035348 rtn 
+:      035349 uchar2dialog_number:
+0x7d48 035350 arg 0x30 ,temp 
+0x7d49 035351 isub temp ,pdata 
+0x7d4a 035352 rtn 
+:      035353 uchar2dialog_a2f:
+0x7d4b 035354 arg 0x57 ,temp 
+0x7d4c 035355 isub temp ,pdata 
+0x7d4d 035356 rtn 
+:      035359 right_shift_n:
+0x7d4e 035360 sub loopcnt ,0 ,null 
+0x7d4f 035361 rtn zero 
+:      035362 right_shift_n_loop:
+0x7d50 035363 rshift pdata ,pdata 
+0x7d51 035364 loop right_shift_n_loop 
+0x7d52 035365 rtn 
+:      035368 left_shift_n:
+0x7d53 035369 force 1 ,pdata 
+0x7d54 035370 sub loopcnt ,0 ,null 
+0x7d55 035371 rtn zero 
+:      035372 left_shift_n_loop:
+0x7d56 035373 lshift pdata ,pdata 
+0x7d57 035374 loop left_shift_n_loop 
+0x7d58 035375 rtn 
+:      035379 calc_average:
+0x7d59 035380 setarg 0 
+0x7d5a 035381 copy loopcnt ,rega 
+:      035382 calc_average_loop:
+0x7d5b 035383 ifetcht 2 ,contr 
+0x7d5c 035384 iadd temp ,pdata 
+0x7d5d 035385 loop calc_average_loop 
+0x7d5e 035386 idiv rega 
+:      035387 get_div_result:
+0x7d5f 035388 call wait_div_end 
+0x7d60 035389 quotient pdata 
+0x7d61 035390 rtn 
+:      035392 wait_div_end:
+0x7d62 035393 rtn modone 
+0x7d63 035394 branch wait_div_end 
+:      035404 compare_loop:
+:      035405 string_compare:
+0x7d64 035406 ifetch 1 ,rega 
+0x7d65 035407 ifetcht 1 ,regb 
+0x7d66 035408 isub temp ,null 
+0x7d67 035409 nrtn zero 
+0x7d68 035410 increase 1 ,rega 
+0x7d69 035411 increase 1 ,regb 
+0x7d6a 035412 loop string_compare 
+0x7d6b 035413 branch enable_zero 
+:      035417 ceiling:
+0x7d6c 035418 isub temp ,null 
+0x7d6d 035419 nrtn positive 
+0x7d6e 035420 deposit temp 
+0x7d6f 035421 rtn 
+:      035423 swap:
+0x7d70 035424 iadd temp ,pdata 
+0x7d71 035425 isub temp ,temp 
+0x7d72 035426 isub temp ,pdata 
+0x7d73 035427 rtn 
+:      035429 clean_smem:
+0x7d74 035430 arg 0 ,contw 
+0x7d75 035431 branch clean_mem 
+:      035433 clean_xmem:
+0x7d76 035434 arg 0x4000 ,contw 
+:      035435 clean_mem:
+0x7d77 035436 arg 0x1000 ,loopcnt 
+0x7d78 035437 branch memset0 
+:      035440 callback_func:
+0x7d79 035441 rtn blank 
+0x7d7a 035442 copy pdata ,pc 
+:      035445 ice_break_disable_wdt:
+0x7d7b 035446 call wdt_set_disable 
+:      035448 ice_break:
+0x7d7c 035449 jam 0x1 ,core_ice_ctrl 
+0x7d7d 035450 rtn 
+:      035452 ice_setbp:
+0x7d7e 035453 store 2 ,core_ice_break0 
+0x7d7f 035454 fetch 1 ,core_ice_ctrl 
+0x7d80 035455 set1 4 ,pdata 
+0x7d81 035456 store 1 ,core_ice_ctrl 
+0x7d82 035457 rtn 
+:      035458 ice_setbp2:
+0x7d83 035459 store 2 ,core_ice_break1 
+0x7d84 035460 fetch 1 ,core_ice_ctrl 
+0x7d85 035461 set1 6 ,pdata 
+0x7d86 035462 store 1 ,core_ice_ctrl 
+0x7d87 035463 rtn 
+:      035465 ice_set_write_bp:
+0x7d88 035466 store 2 ,core_ice_break0 
+0x7d89 035467 jam 0x30 ,core_ice_ctrl 
+0x7d8a 035468 rtn 
+:      035476 fifo_in:
+0x7d8b 035477 bpatchx patch21_4 ,mem_patch21 
+0x7d8c 035478 ifetcht util_fifo_len ,rega 
+0x7d8d 035479 and temp ,0xff ,pdata 
+0x7d8e 035480 nbranch fifo_in_push ,blank 
+0x7d8f 035481 rshift8 temp ,pdata 
+0x7d90 035482 istore util_fifo_len ,rega 
+:      035483 fifo_in_push:
+0x7d91 035484 increase util_fifo_len + util_fifo_offset ,rega 
+0x7d92 035485 ifetch 1 ,rega 
+0x7d93 035486 nbranch assert ,blank 
+0x7d94 035487 fetch 1 ,mem_fifo_temp 
+0x7d95 035488 istore 1 ,rega 
+0x7d96 035489 rtn 
+:      035494 fifo_out:
+0x7d97 035495 bpatchx patch21_5 ,mem_patch21 
+0x7d98 035496 arg util_fifo_len ,loopcnt 
+0x7d99 035497 ifetch util_fifo_len ,rega 
+0x7d9a 035498 rtn blank 
+:      035499 fifo_out_loop:
+0x7d9b 035500 ifetch 1 ,rega 
+0x7d9c 035501 nbranch fifo_out_end ,blank 
+0x7d9d 035502 increase 1 ,rega 
+0x7d9e 035503 loop fifo_out_loop 
+0x7d9f 035504 branch assert 
+:      035505 fifo_out_end:
+0x7da0 035506 arg 0 ,temp 
+0x7da1 035507 istoret 1 ,rega 
+0x7da2 035508 rtn 
+:      035513 fifo_is_empty:
+0x7da3 035514 ifetch util_fifo_len ,rega 
+0x7da4 035515 rtn 
+:      035520 fifo_is_full:
+0x7da5 035521 ifetch 1 ,rega 
+0x7da6 035522 rtn 
+:      035525 fifo_is_near_full:
+0x7da7 035526 ifetch 2 ,rega 
+0x7da8 035527 rtn 
+:      035531 fifo_content_count:
+0x7da9 035532 arg 0 ,temp 
+:      035533 fifo_content_count_loop:
+0x7daa 035534 fetch 1 ,contr 
+0x7dab 035535 loop fifo_content_count_loop ,blank 
+0x7dac 035536 increase 1 ,temp 
+0x7dad 035537 loop fifo_content_count_loop 
+0x7dae 035538 copy temp ,pdata 
+0x7daf 035539 rtn 
+:      035542 not_greater_than:
+0x7db0 035543 isub temp ,null 
+0x7db1 035544 nrtn positive 
+:      035545 copy_temp2pdata:
+0x7db2 035546 copy temp ,pdata 
+0x7db3 035547 rtn 
+:      035550 disable_positive:
+0x7db4 035551 force -1 ,null 
+0x7db5 035552 rtn 
+:      035553 enable_positive:
+:      035554 disable_zero:
+0x7db6 035555 force 1 ,null 
+0x7db7 035556 rtn 
+:      035557 enable_zero:
+0x7db8 035558 force 0 ,null 
+0x7db9 035559 rtn 
+:      035561 enable_user:
+0x7dba 035562 enable user 
+0x7dbb 035563 rtn 
+:      035565 disable_user:
+0x7dbc 035566 disable user 
+0x7dbd 035567 rtn 
+:      035569 enable_user2:
+0x7dbe 035570 enable user2 
+0x7dbf 035571 rtn 
+:      035573 disable_user2:
+0x7dc0 035574 disable user2 
+0x7dc1 035575 rtn 
+:      035577 enable_user7:
+0x7dc2 035578 enable user7 
+0x7dc3 035579 rtn 
+:      035581 disable_true:
+0x7dc4 035582 disable true 
+0x7dc5 035583 rtn 
+:      035585 enable_true:
+0x7dc6 035586 enable true 
+0x7dc7 035587 rtn 
+:      035589 disable_blank:
+0x7dc8 035590 setarg 1 
+0x7dc9 035591 rtn 
+:      035593 enable_blank:
+:      035594 set_pdata_0:
+0x7dca 035595 setarg 0 
+0x7dcb 035596 rtn 
+:      035600 cal_sum:
+0x7dcc 035601 sub loopcnt ,0 ,null 
+0x7dcd 035602 rtn zero 
+:      035603 cal_sum_loop:
+0x7dce 035604 ifetcht 1 ,contr 
+0x7dcf 035605 iadd temp ,pdata 
+0x7dd0 035606 loop cal_sum_loop 
+0x7dd1 035607 rtn 
+:      035610 reverse_byte:
+0x7dd2 035611 copy loopcnt ,pdata 
+0x7dd3 035612 rtn blank 
+0x7dd4 035613 copy contr ,pdata 
+0x7dd5 035614 iadd loopcnt ,pdata 
+0x7dd6 035615 increase -1 ,pdata 
+0x7dd7 035616 copy pdata ,contr 
+:      035617 reverse_loop:
+0x7dd8 035618 ifetch 1 ,contr 
+0x7dd9 035619 increase -2 ,contr 
+0x7dda 035620 istore 1 ,contw 
+0x7ddb 035621 loop reverse_loop 
+0x7ddc 035622 rtn 
+:      035625 lshift14:
+0x7ddd 035626 lshift16 pdata ,pdata 
+:      035627 rshift2:
+0x7dde 035628 rshift2 pdata ,pdata 
+0x7ddf 035629 rtn 
+:      035631 lshift6:
+0x7de0 035632 lshift8 pdata ,pdata 
+0x7de1 035633 branch rshift2 
+:      035636 clear_wake:
+0x7de2 035637 setarg 0 
+0x7de3 035638 store 8 ,mem_gpio_wakeup_cfg 
+0x7de4 035639 set1 25 ,pdata 
+0x7de5 035640 istore 4 ,contw 
+0x7de6 035641 rtn 
+:      035644 generate_random:
+0x7de7 035645 arg 16 ,loopcnt 
+:      035646 generate_random_loop:
+0x7de8 035647 random pdata 
+0x7de9 035648 istore 1 ,contw 
+0x7dea 035649 loop generate_random_loop 
+0x7deb 035650 rtn 
Index: output/bt_program23.meta
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/output/bt_program23.meta	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/output/bt_program23.meta	(working copy)
@@ -0,0 +1,35651 @@
+//define YC1121SB
+
+//define RAM_VERSION
+//define CLK24M
+define SECURE_CONNECTION
+//define COMPILE_KEYSCAN
+define NEC
+
+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 ADC_1121SB
+//define ADC_1121SB_1V8_MODE
+//define AUTO_TEST
+
+	bbit1 8,pf_patch_ext
+	beq patch00_0,p_soft_reset
+	beq patch00_2,p_main_loop
+	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 patch04_7,p_lpm_adjust_clk
+	beq patch14_3,p_shutter_dy_key_press
+	beq patch14_5,p_shutter_dy_shutter_key_release
+	beq patch14_6,p_shutter_dy_keyscan_key_check_long_press
+	beq patch14_7,p_shutter_dy_keyscan_key_process_next
+	beq patch15_2,p_shutter_dy_le_parse_att
+	beq patch16_1,p_shutter_dy_init
+	beq patch18_4,p_otp_write
+	beq patch18_5,p_otp_read_data
+	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
+	branch assert
+
+pf_patch_ext:
+	beq patch24_4,p_le_receive_rxon
+	beq patch24_5,p_le_rx_dec
+	beq patch24_6,p_le_rx_nopayload
+	beq patch27_1,p_le_parse
+	beq patch29_5,p_le_init_adv
+	rtneq patch3f_7
+	branch assert
+
+
+p_otp_write:
+//	bpatch patch18_4,mem_patch18
+	call otp_enable_chgpump65
+	call otp_set_addr
+	call otp_reset
+p_otp_program:
+	ifetcht 1,rega
+	increase 1,rega
+	force 0,queue
+p_otp_program_bit:
+	set0 mark_otp_write,mark
+p_otp_program_bit2:
+	qisolate0 temp
+	branch p_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 p_otp_program_bit,true	
+	bmark1 mark_otp_write,p_otp_skip_0
+	set1 mark_otp_write,mark
+	branch p_otp_program_bit2
+
+p_otp_skip_0:
+	fetch 2,core_otp_addr
+	increase 1,pdata
+	store 2,core_otp_addr
+	increase 1,queue
+	compare 8,queue,0xf
+	nbranch p_otp_program_bit,true
+	loop p_otp_program
+	branch otp_disable_chgpump
+
+p_soft_reset:
+	nbranch soft_reset+1,wake
+	until null,lpo_edge
+	until null,lpo_edge
+	branch soft_reset+1
+
+p_le_receive_rxon:
+//	bpatchx patch24_4,mem_patch24
+	call le_prep
+	bmark0 mark_ble_lr,p_le_receive_nolr
+	pulse dewhiten_code_calc
+	nop 30
+	call le_prep
+	lshift3 timeup,timeup
+p_le_receive_nolr:
+	disable match
+	enable decode_fec0
+	enable is_rx
+	disable is_tx
+	copy timeup,stop_watch
+	correlate null,timeout
+	branch p_le_receive_on_attempt,attempt
+	copy clke,temp
+	storet 6,mem_sync_clke
+p_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 p_calc_clke_all_modem
+	fetch 1,mem_le_state
+	bbit0 lestate_got_first_packet,le_receive_skip
+	call lpm_adjust_clk,wake
+	branch le_receive_skip
+
+p_calc_clke_all_modem:
+	fetcht  6,mem_sync_clke
+	copy clke,pdata
+	call clk_diff
+	copy pdata,temp
+
+	call calc_clke_all_modem
+	copy clke,rege
+	copy clke_rt,pdata
+	iadd temp,pdata
+//	add pdata,8,pdata
+	copy pdata,clke_rt
+	rtn
+
+p_lpm_adjust_clk:
+	//bpatch patch04_7,mem_patch04
+	bmark0 mark_context,lpm_clear_counter
+	fetcht 4,mem_sleep_counter_all
+	arg 0x600,pdata
+	isub temp,null
+	rtn positive				// interval too small
+	copy temp,rega
+	fetcht 6,mem_sync_clke
+	deposit rege
+	call clk_diff_rt
+//	sub pdata,13,null
+//	rtn positive
+	copy rega,temp
+	branch lpm_adjust_clk+6
+
+p_shutter_dy_keyscan_key_check_long_press:
+	copy queue,pdata
+	beq SHUTTER_LIKE_KEY_NUM,shutter_dy_link_key_long_press
+	beq SHUTTER_LEFT_KEY_NUM,shutter_dy_loop_send_volume_dec_page
+	beq SHUTTER_RIGHT_KEY_NUM,shutter_dy_loop_send_volume_inc_page
+	beq SHUTTER_FUN_KEY_NUM,p_shutter_key_fun_long_press
+	beq SHUTTER_FUN1_KEY_NUM,p_shutter_key_fun1_long_press
+	beq SHUTTER_FUN2_KEY_NUM,p_shutter_key_fun2_long_press
+	beq SHUTTER_FUN3_KEY_NUM,p_shutter_key_fun3_long_press
+	branch shutter_dy_key_long_press_set_key_normal
+
+p_shutter_key_fun_long_press:
+	jam 1,mem_shutter_dy_fouse_time
+	jam FOUSEUP,mem_shutter_fouse_select
+	rtn
+p_shutter_key_fun1_long_press:
+	jam 1,mem_shutter_dy_fouse_time
+	jam FOUSEDOWN,mem_shutter_fouse_select
+	rtn
+p_shutter_key_fun2_long_press:
+	rtn
+
+p_shutter_key_fun3_long_press:
+	rtn
+
+
+p_shutter_dy_keyscan_key_process_next:
+	fetch 1,mem_move_mode_set
+	beq MOVE_SINGLE_KEY,shutter_dy_skip_check_combine_key
+	call shutter_dy_check_combine_key_release
+	call p_shutter_dy_check_combine_key
+	rtn user
+	branch shutter_dy_skip_check_combine_key
+
+p_shutter_dy_check_combine_key:
+	arg 0,queue
+p_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 p_shutter_dy_check_combine_key_parse,zero
+	increase 1,queue
+	branch p_shutter_dy_check_combine_key_loop
+
+p_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
+	branch shutter_dy_combine_key_enableuser
+
+p_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 p_shutter_dy_check_combine_key_release_all,zero
+	branch p_shutter_dy_check_combine_key_release+5
+
+p_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
+	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_nv_data,contw
+	branch clear_mem
+
+p_shutter_dy_key_press:
+	fetch 1,mem_shutter_link_loop_flag
+	nbranch p_shutter_dy_key_value_filter,blank
+p_shutter_dy_key_press_next:
+	jam 1,mem_shutter_key_pressed
+	call app_led_on
+	call p_shutter_dy_key_press_clk
+	call shutter_dy_jude_queue_size
+	branch shutter_dy_over_clear,positive
+	copy queue,pdata
+	store 1,mem_last_press_key_value
+	//beq SHUTTER_FUN2_KEY_NUM,p_shutter_fun2_key_press
+	rtn
+
+p_shutter_dy_key_value_filter:
+	copy queue,pdata
+	rtnne SHUTTER_LIKE_KEY_NUM
+	branch p_shutter_dy_key_press_next
+
+p_shutter_dy_key_press_clk:
+	arg SHUTTER_KEY_CONF_SATE_BYTES,pdata
+	imul32 queue,pdata
+	arg mem_shutter_nv_data,regc
+	branch shutter_dy_key_press_clk+3
+
+p_le_rx_dec:
+	call le_check_retransmit
+	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_shutter_dy_le_parse_att:
+	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,p_shutter_dy_le_parse_error_rsp
+	branch shutter_dy_le_parse_att+6
+
+p_shutter_dy_le_parse_error_rsp:
+	increase -2,contr
+	ifetch 1,contr
+	beq ATTOP_FIND_BY_TYPE_VALUE_REQUEST,p_shutter_dy_not_iphone_read_conf
+	rtn
+
+p_shutter_dy_not_iphone_read_conf:
+	branch p_shutter_dy_remote_not_iphone
+
+p_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
+
+p_shutter_dy_shutter_key_release:
+	call shutter_dy_key_release_led
+p_shutter_dy_shutter_key_release_time:
+	arg SHUTTER_KEY_CONF_SATE_BYTES,pdata
+	imul32 queue,pdata
+	arg mem_shutter_nv_data,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 p_shutter_dy_push_queue_long_release, blank
+	branch shutter_dy_shutter_key_release_time+13
+
+p_shutter_dy_push_queue_long_release:
+	jam 1,mem_shutter_long_key_released_flag
+	call shutter_clear_dy_key_state
+	call shutter_dy_clear_volume_timer
+	copy queue,pdata
+	beq SHUTTER_FUN_KEY_NUM,p_fouse_up_long_release
+	beq SHUTTER_FUN1_KEY_NUM,p_fouse_down_long_release
+	arg mem_key0_long_release,regc
+	arg MAX_QUEUE_NUM_LONG_RELEASE,pdata
+	branch shutter_dy_push_queue_press_or_release
+
+p_fouse_up_long_release:
+	call p_shutter_fouse_release_clear
+	call p_shutter_dy_fouseup_init
+	arg mem_fouse_up_long_release,regc
+	branch push_buffer_in_queue
+
+p_fouse_down_long_release:
+	call p_shutter_fouse_release_clear
+	call p_shutter_dy_fousedown_init
+	arg mem_fouse_down_long_release,regc
+	branch push_buffer_in_queue
+
+p_shutter_fouse_release_clear:
+	jam 0,mem_shutter_dy_fouse_time
+	jam 0,mem_shutter_fouse_select
+	rtn
+
+p_main_loop:
+	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
+	branch p_main_loop
+
+
+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_set_ck2rfp11:
+	until null,lpo_edge
+	jam 0x58,0x813c
+	until null,lpo_edge
+	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 0x40,core_rx_cfg0
+	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,blank
+	ncall p_set_ck2rfp11,wake
+	until null,lpo_edge
+	jam 0x5f,0x813b
+	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
+	call 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_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_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
+	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:
+//	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 0xfe,0x8a16
+	branch rf_rx_enable+14
+
+p_txon:
+//	bpatch patch03_0,mem_patch03
+	setarg 0x0aaa7e
+	store 3,0x8a0f
+	nop 60
+	jam 0x00,0x8a25
+	jam 0x0d,0x8a26
+	jam 0xf6,0x8a16
+	branch txon+7
+
+p_otp_read_data:
+	call enable_otp_read
+	call otp_read_data+1
+	branch otp_disable_chgpump
+
+p_shutter_dy_key_conf:
+	fetch 1,mem_shutter_key_num_conf
+	copy pdata,loopcnt
+	store 1,mem_shutter_key_num
+	setarg mem_shutter_key_num
+	store 2,mem_keyscan_ptr
+	arg mem_shutter_dy_key_conf,contr
+	arg mem_shutter_key_conf0,contw
+	branch memcpy
+
+p_shutter_dy_init:
+	call enable_authrom
+	rtn wake
+	call app_param_init
+	call p_shutter_adc_config_init
+	jam 0,mem_lpm_mode
+	call p_shutter_dy_key_conf
+	call shutter_dy_adv_conf
+	setarg 0x0001
+	store 2,mem_ble_shutter_reconn_timeout
+	jam 0x0a,mem_lpm_overhead
+
+	setarg p_shutter_dy_process_idle
+	store 2,mem_cb_idle_process
+
+	setarg p_shutter_dy_process_bb_event
+	store 2,mem_cb_bb_event_process
+
+	setarg p_ble_shutter_receive_data
+	store 2,mem_cb_att_write
+
+	setarg shutter_le_scale_lpm_lock
+	store 2,mem_cb_check_wakelock
+
+	setarg p_shutter_le_before_hibernate
+	store 2,mem_cb_before_hibernate
+
+	setarg shutter_process_lpm_before
+	store 2,mem_cb_before_lpm
+
+	setarg p_shutter_dy_le_bb_event_timer
+	store 2,mem_cb_event_timer
+
+	setarg shutter_dy_key_change
+	store 2,mem_cb_shutter_keycan
+
+	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
+
+	call shutter_common_init+8
+
+	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
+	branch shutter_power_switch
+
+
+// p_shutter_fun2_key_press:
+// 	call p_shutter_mode_step_press_ptr
+// 	branch push_buffer_in_queue
+
+// p_shutter_mode_step_press_ptr:
+// 	arg mem_shutter_mode_step_android,regc
+// 	call shutter_dy_check_iphone
+// 	rtn blank
+// 	arg mem_shutter_mode_step_ios_press,regc
+// 	rtn
+
+p_shutter_le_before_hibernate:
+	call gpio_set_before_lpm
+	jam UI_BUTTON_GPIO_DISABLE,mem_ui_button_gpio
+	call p_set_key_gpio_before_hiernate
+	call keyscan_process_lpm_before
+	branch disable_authrom
+
+p_set_key_gpio_before_hiernate:
+	fetch 1,mem_shutter_hard_soft_switch_case_temp
+	rtn blank
+	fetch 1,mem_shutter_key_num_conf
+	copy pdata,loopcnt
+	arg mem_shutter_key_conf0,rega
+p_set_key_gpio_loop:
+	ifetch 1,rega
+	fetcht 1,mem_shutter_soft_switch_button_gpio_temp
+	isub temp,null
+	branch p_set_key_gpio_loop_end,zero
+	copy pdata,temp
+	call p_shutter_gpio_config_input_pd
+p_set_key_gpio_loop_end:
+	increase 1,rega
+	loop p_set_key_gpio_loop
+	rtn
+
+p_shutter_gpio_config_input_pd:
+	set1 gpio_active_bit,temp
+	branch gpio_config_input
+
+p_shutter_dy_le_bb_event_timer:
+	call p_shutter_adc_read_timer
+	call p_shutter_like_key_press_event_timer
+	call shutter_dy_link_key_loop_timer
+	call shutter_dy_long_key_volume_timer
+	call p_shutter_check_sleep_timer
+	branch shutter_dy_check_power_off_timer
+
+p_shutter_like_key_press_event_timer:
+	arg mem_shutter_like_key_press_time,regc
+	arg p_shutter_like_key_press_event_timeout,regb
+	branch timer_single_step
+
+p_shutter_like_key_press_event_timeout:
+	fetch 1,mem_shutter_photo_click_count
+	jam 0,mem_shutter_photo_click_count
+	beq 1,p_shutter_like_key_press
+	beq 2,p_shutter_like_key_press_event_double
+	rtn
+
+p_shutter_like_key_press:
+	arg mem_key1_release_new,regc
+	branch push_buffer_in_queue
+
+p_shutter_like_key_press_event_double:
+	call p_shutter_like_key_press_event_double_ptr
+	branch push_buffer_in_queue
+
+p_shutter_like_key_press_event_double_ptr:
+	arg mem_shutter_mode_step_android,regc
+	call shutter_dy_check_iphone
+	rtn blank
+	arg mem_shutter_mode_step_ios,regc
+	rtn
+
+p_shutter_check_sleep_timer:
+	arg mem_shutter_sleep_timer,regc
+	arg p_shutter_sleep_timeout,regb
+	branch timer_single_step_2B
+p_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
+
+p_shutter_dy_process_bb_event:
+	copy regc,pdata
+	beq BT_EVT_LE_PARSE_CONN_PAPA_UPDATE_RSP,p_ble_shutter_process_parse_connect_parameter_update_response
+	beq BT_EVT_LE_PAIRING_SUCCESS,p_ble_shutter_pairing_success
+	beq BT_EVT_LE_DISCONNECTED,p_ble_shutter_dy_process_baseband_disconnect
+	beq BT_EVT_LE_CONNECTED,p_ble_shutter_dy_process_baseband_connect
+	branch shutter_dy_process_bb_event+1
+
+p_ble_shutter_dy_process_baseband_connect:
+	branch ble_shutter_dy_process_baseband_connect
+
+p_ble_shutter_dy_process_baseband_disconnect:
+	fetch 2,mem_ble_shutter_discovery_timeout
+	store 2,mem_shutter_sleep_timer
+	branch ble_shutter_dy_process_baseband_disconnect
+
+p_ble_shutter_pairing_success:
+	jam 1,mem_shutter_pairing_success
+	rtn
+
+p_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
+	call shutter_dy_check_iphone
+	nbranch p_parameter_updata_response_ios,blank
+	fetch 8,mem_ble_shutter_dy_interval_min_new
+	store 8,mem_le_interval_min
+	branch le_l2cap_tx_update_req
+
+p_ble_shutter_receive_data:
+	fetch 2,mem_le_att_handle
+	beq GATT_KEYBOARD_WRITE_HANDLE_NEW,p_ble_shutter_process_reconnect_complete
+	rtn
+
+p_ble_shutter_process_reconnect_complete:
+	call queue_init
+	jam 1,mem_ble_shutter_enable_notify
+	call shutter_dy_check_iphone
+	call app_lpm_mult_enable
+	nbranch p_parameter_updata_response_ios,blank
+	fetch 8,mem_ble_shutter_dy_interval_min_new
+	store 8,mem_le_interval_min
+	branch le_l2cap_tx_update_req
+
+p_parameter_updata_response_ios:
+	fetch 8,mem_ble_shutter_dy_interval_min_ios
+	store 8,mem_le_interval_min
+	branch le_l2cap_tx_update_req
+
+p_shutter_dy_process_idle:
+	call p_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
+	call p_shutter_dy_keyscan_key_process
+	branch p_key_evt_ui_timer_check
+
+p_shutter_dy_shutter_send_data_to_master:
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_CONNECTED,p_shutter_dy_pop_queue_to_ble_data
+	arg mem_queue_curr_num,contw
+	arg 35,loopcnt
+	branch clear_mem
+
+p_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 p_shutter_dy_pop_queue_to_ble_data2, positive
+	fetch 1,mem_send_data_delay
+	isub temp,null
+	rtn positive
+p_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,13,pdata
+	arg mem_shutter_mousekey_value_list,temp
+	iadd temp,contr
+	branch le_send_notify_from_list
+
+p_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_nv_data,regc
+p_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 p_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 p_shutter_dy_keyscan_key_check_release_loop
+	rtn
+
+p_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 p_shutter_dy_push_queue_release
+p_shutter_dy_push_queue_release:
+	add regc,4,contr
+	ifetch 1,contr
+	branch p_shutter_dy_push_queue_release1
+
+p_shutter_dy_push_queue_release1:
+	call shutter_clear_dy_key_state
+p_shutter_dy_push_queue_release1_next:
+	call shutter_dy_jude_queue_size
+	branch shutter_dy_over_clear,positive
+	call p_shutter_dy_le_get_release_ptr
+	copy queue,pdata
+	beq SHUTTER_FUN_KEY_NUM,p_shutter_fun_key_release   //fouse up
+	beq SHUTTER_FUN1_KEY_NUM,p_shutter_fun1_key_release // fouse down
+	beq SHUTTER_FUN2_KEY_NUM,p_shutter_fun2_key_release // step mode
+	beq SHUTTER_LIKE_KEY_NUM,p_shutter_fun3_key_release
+	branch shutter_dy_push_queue_release1_next+4
+
+p_shutter_fun_key_release:
+	arg mem_fouse_up_press,regc
+	branch push_buffer_in_queue
+
+p_shutter_fun1_key_release:
+	arg mem_fouse_down_press,regc
+	branch push_buffer_in_queue
+
+p_shutter_fun2_key_release:
+	call p_shutter_mode_step_ptr
+	branch push_buffer_in_queue
+
+p_shutter_mode_step_ptr:
+	arg mem_shutter_mode_step_android,regc
+	call shutter_dy_check_iphone
+	rtn blank
+	arg mem_shutter_mode_step_ios,regc
+	//arg mem_key6_release_new_i,regc
+	rtn
+
+p_shutter_fun3_key_release:
+	jam 5,mem_shutter_like_key_press_time
+	fetch 1,mem_shutter_photo_click_count
+	rtneq 2
+	increase 1,pdata
+	store 1,mem_shutter_photo_click_count
+	rtn
+
+p_shutter_dy_le_get_release_ptr:
+p_shutter_dy_le_get_release_ptr_set:
+	arg mem_key0_release_new,regc
+	jam 90,mem_send_data_delay
+	call shutter_dy_check_iphone
+	rtn blank
+	arg mem_key0_release_new_i,regc
+	copy queue,pdata
+	jam 20,mem_send_data_delay
+	rtn
+
+
+p_rx_dcoc:
+//	bpatch patch01_7,mem_patch01
+	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_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_le_parse:
+	fetch 1,mem_le_packet_llid
+	rtneq LLID_RESERVED
+	beq LLID_LE_LL,le_parse_ll
+	branch le_parse_l2cap
+
+p_le_init_adv:
+	set0 mark_ble_crc_fail,mark
+	branch le_init_adv+1
+
+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
+	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
+	copy clkn,pdata
+	store 6,mem_sleep_clkn
+	// storer clkn,6,mem_sleep_clkn
+	fetch 3,mem_lpm_isogate
+	fetchr rega,1,mem_lpm_ldo_sel
+	arg 3,loopcnt
+	branch lpm_sleep_loop
+
+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
+
+////////////////////50ms//////////////////////
+p_key_evt_ui_timer_check:
+	arg 0,rega
+	fetcht 4,mem_shutter_key_evt_btclk
+	copy clkn_bt,regb
+	copy regb,pdata
+	isub temp,null
+	ncall ui_timer_timeout,positive
+p_key_evt_ui_timer_check_loop:
+	copy regb,pdata
+	increase 64,temp    //320btclk = 100ms
+	isub temp,null
+	nbranch p_key_evt_ui_timer_check_end,positive
+	increase 1,rega   //increase 1 every 100ms count
+	and rega,0x0f,pdata
+	nbranch p_key_evt_ui_timer_check_loop,blank
+	arg 0,rega  //reset timer if it's longer than 1.5s between 2 checks
+	call p_key_evt_ui_timer_check_send_evt
+p_key_evt_ui_timer_init:
+	copy clkn_bt,pdata
+	store 4,mem_shutter_key_evt_btclk
+	rtn
+p_key_evt_ui_timer_check_end:
+	copy rega,pdata
+	rtn blank
+	increase -64,temp    //160btclk = 50ms
+	set0 28,temp
+	storet 4,mem_shutter_key_evt_btclk
+p_key_evt_ui_timer_check_send_evt:
+	store 1,mem_shutter_key_evt_timer_count
+p_key_evt_50ms_loop:
+	fetch 1,mem_shutter_key_evt_timer_count
+	rtn blank
+	increase -1,pdata
+	store 1,mem_shutter_key_evt_timer_count
+	call p_shutter_long_fouse_timer
+	branch p_key_evt_50ms_loop
+
+p_shutter_long_fouse_timer:
+	arg mem_shutter_dy_fouse_time,regc
+	arg p_shutter_dy_fouse_timeout,regb
+	branch timer_single_step
+
+p_shutter_dy_fouse_timeout:
+	fetch 1,mem_shutter_fouse_select
+	beq FOUSEUP,p_shutter_dy_fouseup_event
+	beq FOUSEDOWN,p_shutter_dy_fousedown_event
+	rtn
+
+p_shutter_dy_fouseup_event:
+	call shutter_dy_check_iphone
+	nbranch p_shutter_dy_fouseup_event_ios,blank
+	jam 8,mem_send_data_delay
+	jam 1,mem_shutter_dy_fouse_time
+	fetch 1,mem_shutter_dy_fouse_count
+	increase 2,pdata
+	store 1,mem_shutter_dy_fouse_count
+	sub pdata,90,null
+	call p_shutter_dy_fouseup_init,zero
+	arg mem_fouse_up_long_press,regc
+	call p_shutter_dy_find_value_list_position
+	ifetch 2,pdata
+	add pdata,10,pdata
+	istore 2,rega
+	branch push_buffer_in_queue
+
+p_shutter_dy_fouseup_event_ios:
+	call p_shutter_dy_fouse_time_ios
+	fetch 1,mem_shutter_dy_fouse_count
+	increase 1,pdata
+	store 1,mem_shutter_dy_fouse_count
+	sub pdata,90,null
+	call p_shutter_dy_fouseup_init,zero
+	arg mem_fouse_up_long_press,regc
+	call p_shutter_dy_find_value_list_position
+	ifetch 2,pdata
+	add pdata,18,pdata
+	istore 2,rega
+	branch push_buffer_in_queue
+
+p_shutter_dy_fouseup_init:
+	jam 0,mem_shutter_dy_fouse_count
+	arg mem_fouse_up_long_release,regc
+	call push_buffer_in_queue
+	arg mem_fouse_up_long_press,regc
+	call p_shutter_dy_find_value_list_position
+	setarg 0x0650
+	istore 2,rega
+	rtn
+
+p_shutter_dy_fousedown_event:
+	call shutter_dy_check_iphone
+	nbranch p_shutter_dy_fousedown_event_ios,blank
+	jam 8,mem_send_data_delay
+	jam 1,mem_shutter_dy_fouse_time
+	fetch 1,mem_shutter_dy_fouse_count
+	increase 2,pdata
+	store 1,mem_shutter_dy_fouse_count
+	sub pdata,90,null
+	call p_shutter_dy_fousedown_init,zero
+	arg mem_fouse_down_long_press,regc
+	call p_shutter_dy_find_value_list_position
+	ifetch 2,pdata
+	increase -10,pdata
+	istore 2,rega
+	branch push_buffer_in_queue
+
+p_shutter_dy_fousedown_event_ios:
+	call p_shutter_dy_fouse_time_ios
+	fetch 1,mem_shutter_dy_fouse_count
+	increase 1,pdata
+	store 1,mem_shutter_dy_fouse_count
+	sub pdata,90,null
+	call p_shutter_dy_fousedown_init,zero
+	arg mem_fouse_down_long_press,regc
+	call p_shutter_dy_find_value_list_position
+	ifetch 2,pdata
+	increase -18,pdata
+	istore 2,rega
+	branch push_buffer_in_queue
+
+
+p_shutter_dy_fousedown_init:
+	jam 0,mem_shutter_dy_fouse_count
+	arg mem_fouse_down_long_release,regc
+	call push_buffer_in_queue
+	arg mem_fouse_down_long_press,regc
+	call p_shutter_dy_find_value_list_position
+	setarg 0x0a00
+	istore 2,rega
+	rtn
+
+p_shutter_dy_find_value_list_position:
+	arg mem_shutter_mousekey_value_list,temp
+	ifetch 1,regc
+	increase -1,pdata
+	mul32 pdata,13,pdata
+	iadd temp,pdata
+	increase 6,pdata
+	copy pdata,rega
+	rtn
+p_shutter_dy_fouse_time_ios:
+	jam 1,mem_send_data_delay
+	jam 3,mem_shutter_dy_fouse_time
+	rtn
+
+/////////////////////////////////////////////// adc ////////////////////////////////////////
+p_shutter_adc_config_init:
+	jam 1,mem_shutter_start_adc_flag
+	rtn
+
+p_shutter_adc_read_interval:
+	fetch 1,mem_shutter_adc_read_timer
+	increase 1,pdata
+	store 1,mem_shutter_adc_read_timer
+	fetcht 1,mem_shutter_adc_read_time_init	//1s read adc
+	isub temp,null
+	rtn
+
+p_shutter_adc_read_timer:
+p_shutter_adc_read_start:
+	fetch 1,mem_shutter_start_adc_flag
+	rtn blank
+	call p_shutter_adc_read_interval
+p_shutter_adc_read_start_next:
+	nrtn positive
+	jam 0,mem_shutter_adc_read_timer
+	jam ADC_CONFIG_HVIN,mem_adc_config_flag
+	call adc_clear_no_power_flag
+	call adc_clear_low_power_flag
+	call p_enable_adc
+	call p_vdd_calculate_by_mode
+	store 2,mem_shutter_vdd_now_vol
+p_shutter_adc_data_process:
+	arg mem_shutter_vdd_calculate_set,rega
+	call p_shutter_bat_percent_lowpower_out
+	fetch 1,mem_adc_power_flag
+	bbit1 1,p_shutter_low_voltage_power_down
+	bbit0 0,p_shutter_adc_no_low_voltage
+	jam 1,mem_shutter_adc_last_low_voltage_flag
+	branch p_shutter_adc_low_voltage
+
+p_shutter_bat_percent_lowpower_out:
+	ifetch 8,rega
+	store 8,mem_pdatatemp
+p_shutter_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
+p_shutter_adc_bat_level_set:
+	fetch 2,mem_pdatatemp+6		//now voltage
+	fetcht 2,mem_pdatatemp		//full voltage
+	isub temp,null
+	branch p_shutter_adc_bat_level_100_percent,positive		// now >= full
+	fetcht 2,mem_pdatatemp+2	        //shutdown voltage
+	isub temp,pdata
+	nbranch p_shutter_adc_bat_level_0_percent,positive		// now < shutdown
+	branch p_shutter_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_shutter_battery_level_percentage
+	rtn
+
+p_shutter_adc_bat_level_100_percent:
+	jam 100,mem_shutter_battery_level_percentage
+	rtn
+p_shutter_adc_bat_level_0_percent:
+	jam 0,mem_shutter_battery_level_percentage
+	rtn
+
+p_shutter_low_voltage_power_down:	//shutterdown
+	call app_led_off
+	branch app_enter_hibernate
+
+p_shutter_adc_low_voltage:
+	jam 1,mem_shutter_enable_low_voltage_flag
+	rtn
+
+p_shutter_adc_no_low_voltage:
+	jam 0,mem_shutter_enable_low_voltage_flag
+	fetch 1,mem_shutter_adc_last_low_voltage_flag
+	rtn blank
+	call app_led_off
+	jam 0,mem_shutter_adc_last_low_voltage_flag
+	rtn
+
+
+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
+	call clean_smem
+	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
+	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
+
+	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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/output/bt_program23.rom	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/output/bt_program23.rom	(working copy)
@@ -0,0 +1,32236 @@
+11000010100001000000000000011000
+11000000000000000000000001010001
+11000000000000010000000100011101
+11000000000010001000000100100110
+11000000000010100000001100000100
+11000000000010101000000110110011
+11000000000011000000000111000001
+11000000000011001000000110000000
+11000000000011010000000100111000
+11000000000100101000001100100110
+11000000000100111000000001111100
+11000000010100011000000011000010
+11000000010100101000000011111010
+11000000010100110000000010000111
+11000000010100111000000010011000
+11000000010101010000000011101010
+11000000010110001000000111010011
+11000000011000100000000000011111
+11000000011000101000000111001000
+11000000011011010000001011101101
+11000000011011011000010000001001
+11000000011011100000010001000110
+11000000011011101000010000100111
+00100000001000000010001101011010
+11000000000100100000000001010101
+11000000000100101000000011010011
+11000000000100110000000011011000
+11000000000111001000001100100000
+11000000001001101000001100100100
+11000001011111111000000000000000
+00100000001000000010001101011010
+00100000010000000110101100110100
+00100000010000000110101101000001
+00100000010000000110101100111011
+11101000010000001000000000010001
+00011010001000001010001000000001
+00011000000000000000111000000000
+01111001001111111000000000100010
+10101000010011000000000000000000
+00100000001000001000000001001001
+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
+00100000001000001000000000100101
+11000101000100010000000001001001
+01111001001000000000000000100010
+00100000001000000000000000100110
+01101111111100010000000001000100
+00011111111000001111111000000001
+01100111111100010000000001000100
+00011000111000001000111000000001
+00101000111000000001111000001000
+00100100001000001000000000100101
+11000010000000000000000000100010
+00100000001000000110101100111000
+00100100001101011010000000000010
+00110111110110011000001000000000
+00110111110110011000001000000000
+00100000001000000010000000000010
+00100000010000000010010111000010
+11000101100101111000000001011011
+01111000001111001111110000000000
+00100000000000000000000000011110
+00100000010000000010010111000010
+00011001011010011001011000000000
+01111000010101101111110000000000
+01111000001001101111110000000000
+01111000001100001111110000000000
+01111000010100000111110000000000
+00011001011000100011011000000000
+00110111110000011000010000000000
+00100000001101110000000001100100
+00011011010000100000010000000000
+01100000010010110000000000001111
+00100100001011000010011011111010
+01111000001010000111110000000000
+01101111111000001100000101100111
+11011000010000000100111000100000
+10011000010000001000010000000000
+01101111111000001100000101001000
+10011000010011111011011000000000
+00100000010000000110100001110111
+00100000001101110010011001110111
+00100000010000000000000001110010
+01101111111000001000000101101000
+11000011000000011010011001110111
+00100000010101011010010001110111
+00100000001000000010011001110111
+01101000010010110000000000001111
+00011011010000100111111000000000
+00100000010000000111110100010010
+00011111111000100000010000000000
+00100000010000000010011011111111
+00011011010000100101011000000000
+00011101001000100111111000000000
+10011000010000001111111000000000
+00011111111000100101001000000000
+00100000011000000000000000000000
+11000101100001001010010010001001
+01101000010010100100000010101101
+11011111111000000000011000000000
+10011000010001100111110000000000
+00100000011000010000000000000000
+00011000010000100010001000000000
+01101000010010110000000000001111
+00011101011000100111111000000000
+00100000010000000111110100010000
+00011010001000100000010000000000
+00100000001000000010010001111101
+00011000111000100111111000000000
+11000000000000001110011101110111
+11000000000000101110011101100101
+11000000000000000110011101100001
+11000000000000110000000010010000
+11000000000000111000000010010011
+11000000000001000000000010010110
+11000000000001001000000010010111
+00100000001000000110010110100010
+01110000010011111101100100000001
+01110000010011111101101000000001
+00100000011000000000000000000000
+01110000010011111101100100000001
+01110000010011111101101000000010
+00100000011000000000000000000000
+00100000011000000000000000000000
+00100000011000000000000000000000
+01101111111000001100111011000111
+11000000000000001110010111001111
+00100000010000000110011000101000
+00100000010000000000000010011110
+00100000011101000000000000000000
+00100000001000000110010111001111
+11011000111000000000000000000000
+11011010010000000100101011000011
+11011111111000000000000000000010
+10011000111011111111111000000000
+10011010010000001010010000000000
+11101111111000010000000000010010
+00100000011110100000000000000000
+01101000010010010000011011110001
+10011000010000101111110000000000
+00100000001000101000000010101010
+00011000111000001000111000000001
+00100000001000000000000010011111
+01100111111000010100101011001111
+00100000010000000100001100100011
+11011010011000000100101011010001
+11011111111000000000000000001010
+10011000111011111111111000000000
+10011010011000001010011000000000
+00100000001000000110011000110011
+01101111111000010100101011001111
+00100000011110100000000000000000
+01101000010010010000011011110001
+00011000010001100111110000000000
+00100000001000101000000010110111
+00100000001000000000000010110110
+01110000010011101100000000000001
+00100000010000000100001100100101
+11011010011000000100101100001101
+01011000000000000000000000000000
+01100111111000010100101011001111
+01110000010010001001111000110010
+00100000010000000110011000110011
+01101111111000001100010100100011
+00011111111011111111001000001010
+11011000101000000100010111111101
+00100000001000000111110010100001
+01101111111000001100111110011111
+00100100001110100000000011001100
+01110000010011000000000000000001
+00100000010000000100001100100011
+00100000010000000000000011001111
+00100000010000000110010101100001
+00100000001000010110010100000000
+00011000111000100111111000000000
+01100111111000001100111011000101
+00100000011000000000000000000000
+00011000111000100111111000000000
+11000001100000001000000000000000
+00100000001000000000000011000100
+11011111111000000000000000001010
+10011000111011111111111000000000
+11011010011000000100010111111101
+00100000001000000110010100101111
+00100000010000000010100000011100
+01101010001000001000000001001101
+00011010001000001010001111111100
+00100100001000010010011011111010
+00100000001000000010011010001110
+00001001100000000000000000011000
+00011111111011110111111000000000
+00011111111100010111111000000000
+11100111111000011000000000000101
+01111000001010000111110000000000
+00100000010000000010011100001101
+00100000001000110010011011110110
+11000101100110010010011010101111
+01101111111000001000000001001101
+00100000001110100010011010101111
+00011111111000001111111111111100
+01100111111000001000000001001101
+00100000010000000111001011001011
+01101111111100001000000100001000
+11000011000000111010011011111010
+00011000000000000111000000001100
+01100101111000100000000101010100
+00100000001000000010011010101111
+00011010001000100000110000000000
+11101111111000011000000000000110
+01100111111000011100001110010111
+11000000000000111110011100000100
+11000000000000001000000011110000
+00100000001000000110011011011011
+00011000110000001000110111111110
+11101111111000001000000000000110
+11000000000000110000000011110100
+00100000011000000000000000000000
+00100000001000000000000011110101
+01110000010011101010101000000001
+01110000010010011110010000000000
+01110000010011101011001000000000
+01110000010010011110010100001010
+00100000011000000000000000000000
+00100000010000000110010101001011
+11011111111000000000000000001010
+10011000111011111111111000000000
+11011010011000000100010111111101
+10011010011000001010011000000000
+11101000010000100000000000010011
+00011000010001100111110000000000
+00100000011000101000000000000000
+00011100010000100111111000000000
+10011000010001100000010000000000
+00100100010000010111100000000110
+00011010011000001000110000001001
+11101111111000001000000000000110
+00100100001110100000000100001001
+00100000001000000110010101000111
+01110000010011101100000000000001
+00100000010000000110010101101011
+00100000010000000110011101101001
+00011000111000100111111000000000
+11000000000000110000000100010010
+11000000000000111000000100010110
+11011010011000000100101010101110
+11011111111000000000000000000011
+00100000001000000110010101011010
+00100000010000000000000100011010
+00100000010000000000001110001111
+11011010011000000100111111000100
+00100000001000000110001101110001
+00100000010000000000000100011010
+00100000010000000000001110110010
+11011010011000000100111111010010
+00100000001000000110001101110001
+01110000010011111101100100000000
+01110000010011111101101000000000
+00100000011000000000000000000000
+00100000010000000111010101010010
+00100000010000000111010001001000
+00100000010000000010101001000101
+00100000010000000010000000101010
+00100000010000000100001010101101
+00100000010000000010000000011000
+00100000010000000011000100001111
+00100000010000000010010010001100
+00100000001000000000000100011101
+01110000100010100000111101100000
+01110000100010100001000010101010
+01110000100010100001001001111010
+01110000100010100010010100000000
+01110000100010100010011000000000
+00100000000000000000000000111100
+01110000100010100010000000100000
+01110000100010100010001111110101
+01110000100010100010010000010010
+01110000100010100010010000010000
+00100000000000000000000000111100
+01110000100010100001001001100000
+01110000100010100010001111011101
+00100000011000000000000000000000
+00110111110110011000001000000000
+01110000100000010011110001011000
+00110111110110011000001000000000
+00100000011000000000000000000000
+01110000000000011011101100000000
+01110000000000011011110000000000
+00110111110110011000001000000000
+01110000100010010100011000001101
+01110000100010010110111100010000
+01110000100010101000100001000000
+01110000100010100001001111001101
+01110000100010100000011000010000
+01110000100010101000010001001010
+01110000100010101000010101000000
+01110000100010100001011011111110
+00100000010000000000000110001000
+01101111111000001100010000110110
+00100000010110100111000011010111
+00100100010101011000000100110100
+00110111110110011000001000000000
+01110000100000010011101101011111
+01101111111000001100000010011001
+11000000000010000000000101110101
+01101111111000001100010000111000
+00011111111000011111111000000100
+01100111111100001000101000000010
+01110000100010010000111100000001
+01110000100010101000000000100100
+01110000100010101000000101100010
+01011000111001100001001000010010
+01100111111100011000101001110011
+01110000100010101000011001100000
+01110000100010101000101100111011
+00100000010000000000000101100111
+01110000100000000100001100000000
+01110000100000000100001000000101
+01011000010101010111010001110100
+01100111111100011000100101101000
+01110000100010010110000001101110
+00100000010000000000001010111111
+00100000010000000000001011101010
+00100000010000000000000101100001
+01110000010000010100100000001100
+00100000010000000110111101001110
+00100000001000000000001011101100
+00100000011101011000000000000000
+00110111110110011000001000000000
+01101111111000001100000100011100
+01100111111100001000000100111010
+00110111110110011000001000000000
+00100000011000000000000000000000
+01101111111000001100000010011001
+11000000000011000000000101101101
+01101111111000001100010000111000
+00011111111000011111111000000110
+01100111111100001000101000000010
+01110000100010100000010111100000
+01110000100010100000000011011000
+00100000000000000000000000111100
+01110000100010100000000110100000
+01110000100010100000000011011111
+01110000100010100000000111111010
+00100000000000000000000000010100
+01110000100010100000000010011111
+00100000011000000000000000000000
+01101111111000001100010000111000
+00011111111000011111111000000110
+01100111111100001000101000000010
+01110000100010010000111100000000
+01110000100010101000000000100011
+01110000100010101000000110110000
+01011000111001000000100100001001
+01100111111100011000101001110011
+01110000100010100111011000101010
+01110000100010010000001000000100
+00100000001000000000000101010011
+01101111111000001100000101000001
+11000000000001010000000110000011
+00100000001000000010001000001110
+01110000100010100001010000100101
+01011000101010010011111100111111
+01100111111100011000101001100000
+01110000100010100110001100011111
+00100000011000000000000000000000
+00100000001101011000000110101111
+01101111111000100000001000001101
+00100000011110100000000000000000
+00110111110110011000001000000000
+01101111111100001000000100110110
+00011111111000010111111011110000
+01101000010010001000001000001101
+10011000010000011111111000000000
+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
+00100000001000000000000110011001
+00100000010000000110100001101111
+00100000010000000010000110111010
+00011000000000000010101000001000
+00011000000000000010101000000000
+01011000000010101010101011011010
+01100111111100011000101000001111
+01110000100010100010010101000000
+01110000100010100010011000010000
+00100000000000000000000000111100
+01110000100010100000000111111011
+01110000100010100010010111111111
+01110000100010100010011000110000
+01110000100010100001011011111110
+00100000001000000010000110110100
+01011000000010101010101001111110
+01100111111100011000101000001111
+00100000000000000000000000111100
+01110000100010100010010100000000
+01110000100010100010011000001101
+01110000100010100001011011110110
+00100000001000000010001000000011
+00100000010000000110101100111010
+00100000010000000110101101110101
+00100000001000000110101100111000
+01101111111000001100111011100011
+00011111111000100111001000000000
+01100111111000001100010100100011
+01011000000000000100010100100011
+01100111111000010100010000101100
+11011000110000000100111011100100
+11011000101000000100010100100110
+00100000001000000111110011011010
+00100000010000000111001110010110
+00100000011101011000000000000000
+00100000010000000100001010100011
+00100000010000000000001111000101
+01110000010000001001010000000000
+00100000010000000000000111001011
+00100000010000000110010001011001
+01011000000000000000000000000001
+01100111111000010100010011110110
+01110000010000001010011000001010
+01011000000000000000001001001101
+01100111111000010100001111011011
+01011000000000000000001000101010
+01100111111000010100001111011101
+01011000000000000000001000111111
+01100111111000010100001111011111
+01011000000000000110001011010011
+01100111111000010100001111010011
+01011000000000000000000111110111
+01100111111000010100001111010101
+01011000000000000110001100101001
+01100111111000010100001111010111
+01011000000000000000001000001100
+01100111111000010100001111100011
+01011000000000000110010100000101
+01100111111000010100010100100100
+01011000000000000110001101000000
+01100111111000010100010100011111
+01011000000000000110001110011010
+01100111111000010100010100100001
+00100000010000000110001011001010
+01101111111000010100111110000111
+01100111111000010100001100110010
+01101111111001000100010100001010
+01100111111001000100010100000010
+00100000001000000110001010111101
+00100000010000000110111100110101
+01110000010001001110110011111111
+00100000010000000000000111111100
+00100000010000000111000000011011
+00100000001000000111001110011010
+01101111111000001100011011001110
+00100000011110100000000000000000
+01101111111000001100111011100011
+00011111111000100111001000000000
+11011010001000000100010100100110
+11101111111000001000000000010001
+01101000010010001100011011001111
+10011000010001100111110000000000
+00100000001000101000001000000111
+00011111111000100000010000000000
+00100000010000000000001000001010
+00011010001000001010001000000001
+11000010000000000000001000000001
+00100000011000000000000000000000
+01111001001000000000010000000111
+00100000001000000110111011011101
+00100000010000000000001111001101
+00100000010000000000001000010010
+00100000010000000110011101101100
+00100000010000000110011101011010
+00100000010000000000001000100011
+00100000001000000110010011011001
+11011010011000000100111111101110
+11011010010000000000001000010101
+00100000001000000100001011100000
+01101111111000001100111111101111
+01110000010011111110111100000000
+11000000000000001000001000011010
+11000000000000010000001000011100
+00100000011000000000000000000000
+11011010011000000100101000111111
+00100000001000000110001101110001
+00100000010000000000001000011110
+00100000001000000110001101110001
+11011010011000000100111111011100
+00100000010000000110011100110000
+00100000011110100000000000000000
+11011010011000000100111111100101
+00100000011000000000000000000000
+11011010011000000100010100011000
+11011010010000000000001000100110
+00100000001000000100001011100111
+01110000010001010001110000000010
+00100000010000000100001100100101
+00100000010000000110001101001110
+00100000001000000110001110011110
+00011010011000100111111000000000
+11000000001000000000001000110110
+11000000000110001000001000110100
+11000000000010101000001000110001
+11000000000010100000001000110000
+00100000001000000110010011100000
+00100000001000000110010011110100
+01101111111000010100010100010010
+01100111111000010100010100011000
+00100000001000000110010011101111
+01110000010011101100001000000001
+00100000011000000000000000000000
+01101111111000010100001100111100
+11000001000000000000000000000000
+01101111111001000100010100001010
+00100000011110100000000000000000
+00100000010000000110011100110000
+00100100001110100000001001001010
+01101111111001000100111100000010
+01100111111001000100001011010011
+00100000001000000010111010010011
+01101111111000010100001110011000
+11000000000100100000001001000010
+00100000011000000000000000000000
+00100000010000000111100010101101
+01110000010001001111000100000001
+00100000010000000110011100110000
+00100000010000000100001100101011
+00100100001110100000001001001010
+01101111111001000100111100000010
+01100111111001000100001011010011
+00100000001000000010111010010011
+01101111111001000100111110110000
+01100111111001000100001011010011
+00100000001000000010111010010011
+00100000010000000000001001011000
+11011000111000000000000000001001
+00100000010000000111110011101111
+00100100011110100000000000000000
+01011000000000000000000000100000
+11011000111000000000000000001001
+00100000010000000111110011100001
+01111000010101000111110000000000
+00100000010000000111000000011011
+00100000010000000000001001110010
+00100000001000000000001101001111
+01101111111000010100010011101001
+11000010100001001000001001011101
+11011000101000000100010111011010
+11011111001000000000000000100011
+00100000001000000111110010100001
+00100000010000000010101000101000
+00100100011110100000000000000000
+00100000010000000111100011111010
+00100000011110100000000000000000
+01101000010010100100100111100110
+00011100010000100111111000000000
+10011000010001100000010000000000
+00100000011000101000000000000000
+00100100001000010000001001101001
+01101111111000001100100111100101
+10011000010001100111110000000000
+00100000011000010000000000000000
+00011100010000100111111000000000
+01100111111000100100100111100110
+00100000010000000110001110000101
+00100100011101000000000000000000
+00011111111000001111111111111111
+00011111111011111111111000001101
+11011000010000000100110000000010
+10011000010000001000110000000000
+00100000001000000110001111001011
+01101111111000010100100010101100
+01100111111000010100010000101110
+00100000010000000110010110111110
+01101111111000010100010000101110
+01100111111000010100100010101100
+11011000111000000000000000000000
+01101111111000001100010100100011
+00011111111000100111001000000000
+11011010011000000100010111111101
+00011111001000100111111000000000
+01100111111000010000011001111000
+00011010011000100111111000000000
+01100111111000010000011010001100
+00011000111000100111111000000000
+01100111111000010000011001111010
+00100000010000000000001010001111
+01101111111000010000011010001100
+00011111111000100010011000000000
+01101111111000010000011001111010
+00011111111000100000111000000000
+00100000010000000110010110001011
+01101111111000010000011001111010
+00011111111000001000111000000001
+01101111111000010000011010001100
+00011111111000001010011000001010
+01101111111000010000011001111000
+00011111111000100111001000000000
+11000010000000000000001001111011
+00100000011000000000000000000000
+00011010011000001010010000000101
+11101111111000100000000000010010
+00100000011110100000000000000000
+00011111111000100000010000000000
+00011100010000100111111000000000
+10011000010001100000010000000000
+00100100010000010111100000000110
+01011000000000000000001111101000
+10011000010001100111110000000000
+00100000001000000000001010011001
+00011010011000001000110000000100
+11101111111000001000000000000110
+00100000001000000000001010011100
+00100000010000000110010101101011
+00100000010000000110010101100001
+00100000001000010110010100000000
+00100000010000000000001010110111
+00011000111000100111111000000000
+11000000000000110000001010100110
+11000000000000111000001010101000
+11000000000001000000001010101010
+11000000000000001000001010110001
+00100000001000000110010101011000
+11011010011000000100111110111000
+00100000001000000110001101110001
+11011010011000000100111111000110
+00100000001000000110001101110001
+00100000010000000000001010101100
+00100000001000000110001101110001
+11011010011000000100111111011100
+00100000010000000110011100110000
+00100000011110100000000000000000
+11011010011000000100111111100101
+00100000011000000000000000000000
+01110000010011111110111000000101
+01101111111000001100111111101111
+11000001000000010000000000000000
+00011111111000001111111000000001
+01100111111000001100111111101111
+00100000011000000000000000000000
+11011010011000000100101000110000
+01110000010010011110010101011010
+00100000010000000110011100110000
+00100000011110100000000000000000
+11011010011000000100101101010111
+00011000111000100111111000000000
+01110000010010011110010100010100
+00100000011000000000000000000000
+00100000011101011000000000000000
+00100000010000000010000101100000
+11011000010000000000000000100111
+00100000010000000010000101101111
+00100000010000000010000110100110
+01110000100010100010010101111111
+01110000100010100011000000011010
+01110000100010100011000101111000
+01110000100010101000111110110010
+01110000100010101100001000000000
+01110000100010101100001100000000
+11011000111000000000000000000110
+00100000010000000000001011011100
+00101010001011111111111000001101
+00100000010000000010000100011101
+00101010010011111111111000001101
+00100000010000000010000100011110
+11011000111000000000000000000101
+00100000010000000010000100011100
+00100000010000000010000100011110
+00100000010000000000001011011100
+11011000101000001000101011000010
+00011010001100011111111000000000
+00100000010000000010000100010111
+00011010010100011111111000000000
+00100000010000000010000100010111
+00011000111000001000111111111111
+00100000001000010000001011010001
+00100000001000000010000101001111
+00100000000000000000000000111100
+01011000000000000000111100000000
+01100111111100010000100110000010
+01011000000000000000111111110000
+01100111111100010000100110000100
+01110000100010011000000100001001
+01110000100010011000000100000011
+01110000100010011000000000000110
+00100000000000000000000000111100
+11011010001000000000000000000000
+11011010010000000000000000000000
+11011111001000000000000000010000
+11011000110000000000111100000000
+00100000001000000010000100101101
+00100000011101011000000000000000
+00100000001000000010001001110010
+00100000011000000000000000000000
+00100000011101011000000000000000
+01110000100010100000011101110111
+01110000100010100000100011001001
+01110000100010100000101100000001
+01101111111000001100010000001001
+01100111111100001000000011001101
+00100000000000000000101110111000
+00100000010000000000001011111101
+01110000100010100000100011000001
+01101010010000001100010000011001
+11011111001000000000000000001000
+00100000010000000110111101011000
+01101111111000001100010000011001
+01100111111000001100010000110011
+01100010010000001100010000011001
+00100000011000000000000000000000
+01110000100000001100110000000011
+01101111111100001000000100101001
+11000011000000101000001011111110
+01101000010110010000000101100100
+01100000010010010100010000001010
+01110000100000001100110000000000
+00100000011000000000000000000000
+01110000100010101000001000010001
+01110000100010101000110100010010
+01110000100010101000111000001010
+01101111111000001100000010011001
+11000000000010000000001100011101
+01011000000000000101011101100010
+01100111111100010000100100000111
+01110000100010010000000100000011
+01110000100010010011000000000011
+11000110000101101000000000000000
+01110000100010010000000100000001
+01110000100010101000001000000111
+01110000100010101000110101000100
+01110000100010101000111000001010
+01101111111000001100000010011001
+11000000000010000000001100011010
+01011000000000000010101110110001
+01100111111100010000100100000111
+11000110100101111000000000000000
+01110000100010010011000000100100
+01110000100010010000000100000101
+00100000011000000000000000000000
+01011000000000000100000110001001
+01100111111100010000100100000111
+00100000001000000000001100010110
+01011000000000001000001100010010
+01100111111100010000100100000111
+00100000001000000000001100001011
+01101111111000001100001100110100
+11000001000000000000000000000000
+11000000000000011011000001001010
+00100000001000000010100011100001
+01111001001111111000000000110000
+00100000001000000010101011110110
+01101111111000010100001111101001
+00100000010000000111110101111001
+01101111111000100100000010101101
+10011000010000001111111000000000
+01100111111000100100000010101101
+00100000010000000000001100110111
+01101111111000001100000011001011
+01111001001000000111111000000100
+00100000010000000010001111100001
+00100100010101011010001111001011
+00110111110110011000001000000000
+00011011001000100111111000000000
+01100111111000110100000010110001
+01101111111000011100000011000110
+01101010001000001100000011001001
+11011111001000000000000000000011
+00100000001000000010010000101110
+01100000000001000100000011100111
+11011000110000001000000001110000
+11011000101000000100000011001100
+00100000010000000111110010001111
+11011000110000001000000011010100
+00100000010000000111110010001001
+01101111111100001000000010000000
+01100111111000001100000011101111
+00011000010000100010010000000000
+11011111001000000000000000001100
+11011010001000000000000000010110
+11011010011000001000000101001101
+00110111110110011000001000000000
+11101111111000001000000000010001
+11101000010000001000000000010011
+10011000010001100111110000000000
+00100000001000101000001101001010
+11100111111000001000000000010011
+00110111110110011000001000000000
+00011010001000001010001000000001
+00011010011000001010011000000001
+11000010000000000000001101000100
+00011010010000100000010000000000
+00100000011000000000000000000000
+11011010001000000000000000000000
+01101000010010100100111111010101
+00011100010000100010010000000000
+00011010010000100111111000000000
+10011000010001100111110000000000
+00100100010000010111100000000110
+00011010010000100111111000000000
+00011000010000001000010001000000
+10011000010001100111110000000000
+00100100001000010000001101100001
+00011010001000001010001000000001
+00011010001000010111111000001111
+00100100001110100000001101010101
+11011010001000000000000000000000
+00100000010000000000001101100110
+00011100010000100111111000000000
+01100111111000100100111111010101
+00100000011000000000000000000000
+00011010001000100111111000000000
+00100000011110100000000000000000
+00011000010000001000010111000000
+01111001001111111000010000011100
+01100000010010100100111111010101
+01100111111000001100111111010100
+01101111111000001100111111010100
+00100000011110100000000000000000
+00011111111000001111111111111111
+01100111111000001100111111010100
+00100000010000000000001101101101
+00100000001000000000001101100111
+11011010011000000100111111011001
+11011010010000000000001101110000
+00100000001000000100001011100000
+01101111111000001100111111011010
+11000000000000001000001101110100
+11000000000000010000001110010111
+00100000011000000000000000000000
+00100000010000000110011100110000
+00100100001110100000001110000011
+01110000010010011110010100001000
+01110000010011111101100100000001
+01101111111000001100111111011011
+00011111111000001111111000000010
+01100111111000001100111111011011
+00011111111001100111110001011010
+00100000010000101000001110001111
+11011010011000000100111111000010
+00100000010000000000001110111010
+11101111111000010000000000111111
+00011111111000001111111000001010
+11100111111000010000000000010001
+00100000001000000110001101110001
+00100000010000000000001111000010
+01101111111000001100111111011011
+00011111111000001111111000000001
+01100111111000001100111111011011
+00011111111001100111110001011010
+00100000010000101000001110001111
+11011010011000000100111111000010
+00100000010000000000001110111010
+11101111111000010000000000111111
+00011111111000001111111000010010
+11100111111000010000000000010001
+00100000001000000110001101110001
+01110000010011111101101100000000
+11011010011000000100111111000100
+00100000010000000110001101110001
+11011010011000000100111111000010
+00100000010000000000001110111010
+01011000000000000000011001010000
+11100111111000010000000000010001
+00100000011000000000000000000000
+00100000010000000110011100110000
+00100100001110100000001110100110
+01110000010010011110010100001000
+01110000010011111101100100000001
+01101111111000001100111111011011
+00011111111000001111111000000010
+01100111111000001100111111011011
+00011111111001100111110001011010
+00100000010000101000001110110010
+11011010011000000100111111010000
+00100000010000000000001110111010
+11101111111000010000000000111111
+00011111111000001111111111110110
+11100111111000010000000000010001
+00100000001000000110001101110001
+00100000010000000000001111000010
+01101111111000001100111111011011
+00011111111000001111111000000001
+01100111111000001100111111011011
+00011111111001100111110001011010
+00100000010000101000001110110010
+11011010011000000100111111010000
+00100000010000000000001110111010
+11101111111000010000000000111111
+00011111111000001111111111101110
+11100111111000010000000000010001
+00100000001000000110001101110001
+01110000010011111101101100000000
+11011010011000000100111111010010
+00100000010000000110001101110001
+11011010011000000100111111010000
+00100000010000000000001110111010
+01011000000000000000101000000000
+11100111111000010000000000010001
+00100000011000000000000000000000
+11011000010000000100110000000010
+11101111111000001000000000010011
+00011111111000001111111111111111
+00011111111011111111111000001101
+10011000010000001111111000000000
+00011111111000001111111000000110
+00011111111000100010001000000000
+00100000011000000000000000000000
+01110000010010011110010100000001
+01110000010011111101100100000011
+00100000011000000000000000000000
+01110000010011111111100000000001
+00100000011000000000000000000000
+01101111111000001100111111111001
+00011111111000001111111000000001
+01100111111000001100111111111001
+01101000010010001100111111111101
+10011000010001100111110000000000
+00100000011000000000000000000000
+01101111111000001100111111111000
+00100000011110100000000000000000
+00100000010000000000001111000111
+00100100011000010000000000000000
+01110000010011111111100100000000
+01110000010001000000011100000001
+00100000010000000110111111110011
+00100000010000000110111111101011
+00100000010000000000010001000110
+00100000010000000000010000100111
+01100111111000010100111111110110
+11011010001000000100111111110000
+00100000010000000000001111011111
+01101111111000001100010000001100
+11000010100000001000001111111111
+11000011000000000000010000000011
+01110000010011111111101100000001
+00100000001000000000010000000001
+11101111111001000000000000010001
+01100111111001000000011001110000
+00100000010000000110111111110011
+00100000010000000110111111101011
+01101111111000010000011001110110
+01101000010010010000011001110010
+10011000010001100111110000000000
+00100100010000010110111111101111
+01101000010010010000011001110100
+10011000010001100111110000000000
+00100100010000010110111111100111
+01101111111000010000011001110110
+01101000010010010000011001110000
+10011000010001100111110000000000
+00100000001000010000001111111011
+01101000010010010000011001110010
+10011000010001100111111000000000
+00100100001000010000001111111101
+00100000001110100000001111111101
+00011111111011111010001001100100
+01101111111000010000011001110000
+01101000010010010000011001110010
+10011000010001100000010000000000
+00011010001000100111111000000000
+10011000010001101111110000000000
+00100000010000000111110101011111
+01100111111000001100111111111100
+00100000011000000000000000000000
+01110000010011111111110001100100
+00100000011000000000000000000000
+01110000010011111111110000000000
+00100000011000000000000000000000
+00100000010000000100001100100101
+00100000001000000100001100100111
+01110000010011111111101000000001
+00100000011000000000000000000000
+01110000010011111111101000000000
+01101111111000001100111111111011
+00100000011110100000000000000000
+00100000010000000100001100100101
+01110000010011111111101100000000
+00100000011000000000000000000000
+01101111111001000000000111111101
+00100000001110100110111101111001
+01100111111001000100001111111101
+00100000010000000110101100111010
+00100000010000000110101010101101
+11011111111000000000111111000000
+10011010010000001010010000000000
+11011111001000000000000000001010
+11011010001000000000000111111101
+00100000010000000110101101110100
+00100000010000000110101100110111
+01101111111001000000000111111101
+00100000011110100000000000000000
+01100111111001000100000101001110
+11101111111000010000000000000110
+11100111111000010000000000000101
+00100000011000000000000000000000
+01101111111100001000000011001100
+01111001001000000111111000000001
+01100111111100001000000011001100
+01101010010000001100010000011001
+01101111111000001100010000110011
+01100111111000001100010000011001
+11011111001000000000000000001000
+00100000010000000110111101100111
+01100010010000001100010000011001
+01101111111100001000101000001010
+01111001001111111111111000000100
+01100111111100001000101000001010
+00100000011000000000000000000000
+01101111111000001100010000000111
+11000000000000001000010000101011
+11000000000000010000010000110010
+00100000011000000000000000000000
+01011000000000000000001111101000
+01100111111000010100010000000101
+01101000010010010100000101010010
+01101111111000010100000101010100
+11011010011000000000111000010000
+00100000010000000110111111000000
+00100000001000000000010000111000
+01011000000000000000001111101000
+01100111111000010100010000000101
+01101000010010010100000101001110
+01101111111000010100000101010000
+11011010011000000000001111101000
+00100000010000000110111111000000
+01101000010010010100000101010110
+10011000010011111111111000000000
+01101000010010010100000101011000
+10011000010001101111110000000000
+00100000001000000111110101011111
+00100000010000000000010000011010
+01101111111100001000101000001001
+01111001001111111111111000000111
+01100111111100001000101000001001
+01110000100010100000011101110111
+01110000100010100000100011000001
+01110000100010100000110101100001
+01110000100010100000101100000000
+00100000011000000000000000000000
+00100000010000000000010000111101
+00100000010000000110111110010000
+01101111111000001100010000001001
+01100111111100001000000011001101
+00100000010000000110111110010111
+01110000100010100000110101100000
+01110000100000001100110100000000
+00100000010000000000010000111101
+01101111111000001100010000001001
+01100111111100001000000011001101
+01110000100010100000101101010000
+01110000100010100000111011000000
+11011111000000000000000000001011
+01101101111000010100010000001010
+01110000100000001100110000000011
+00100000010000000000010001011111
+01101000010110010000000101100100
+01100000010010010100000101011000
+00100000010000000110111110011100
+11011111000000000000000000001011
+01100101111000010100010000001010
+01110000100010100000110101100000
+01110000100000001100110100000000
+01110000100000001100110000000000
+00100000011000000000000000000000
+01101111111100001000000100101001
+11000011000000101000010001011111
+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
+00100000010000000111110101110100
+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
+01101111111000110100111011100100
+01100111111000110100010100100110
+01110000010001010010001100000110
+01011000000000000100010100100011
+01100111111000010100010000101100
+00100000011000000000000000000000
+01101111111000111100111011100100
+01100111111000111100010100100110
+01110000010001010010001100000111
+01011000000000000100010100100011
+01100111111000010100010000101100
+00100000011000000000000000000000
+01101111111001000100111011100100
+01100111111001000100010100100110
+01110000010001010010001100001000
+01011000000000000100010100100011
+01100111111000010100010000101100
+00100000011000000000000000000000
+01101111111000001100111011100011
+11000000000000110110010001000010
+11000000000000111110010001001000
+11000000000001000110010001001110
+00100000011000000000000000000000
+01000100110100001100000000010100
+01101111111001000100111100001010
+01100111111001000100010100010010
+01011000000000000000000010010110
+01100111111000010100010011110110
+01101111111000111100111101011010
+01100111111000111100011010100111
+01101111111000111100111101100001
+01100111111000111100011010110010
+01101111111000100100111101101000
+01100111111000100100010011111010
+01101111111000100100111101101100
+01100111111000100100010011111110
+01011000000000000000000000001110
+01100111111000010100010011110010
+01011000000000000000000101000000
+01100111111000010100010011110100
+01100111111000010100001110001001
+01101111111001000100111100000010
+01100111111001000100010100001010
+00100000011000000000000000000000
+00100000010000000111001110010110
+00100000011101011000000000000000
+00100000010000000110010001010100
+00100000010000000110010001011001
+01011000000000000110010010000100
+01100111111000010100001111011011
+01011000000000000110010011011111
+01100111111000010100001111011101
+01011000000000000110011011000101
+01100111111000010100001111011111
+01011000000000000110010010110101
+01100111111000010100001111100011
+01011000000000000110010100000101
+01100111111000010100010100100100
+00100000010000000110001011000010
+01101111111000010100111110000111
+01100111111000010100001100110010
+01101111111001000100010100001010
+01100111111001000100010100000010
+00100000010000000110010010001110
+01000100110100010100000000010100
+00100000001000000110001010111101
+00100000010000000110010010011011
+11011000111000000000000000001001
+00100000010000000111110011101111
+00100100011110100000000000000000
+01011000000000000000000000100000
+11011000111000000000000000001001
+00100000010000000111110011100001
+01111000010101000111110000000000
+00100000010000000111000000011011
+00100000001000000110010101101110
+01011000000000000000000000011111
+00011111111011111111111000001010
+11011000010000000100110000000010
+10011000010000001010001000000000
+00011010001000001010001000000011
+11011000010000000000000001110010
+11100000010000001000000000010001
+00011010001000001010001000001011
+11011111111000000000111111111111
+10011000010001100111111000000000
+00011111111100100111111000000000
+11100111111000010000000000010001
+00100000011000000000000000000000
+01101111111000010100010011101001
+11000010100001001110010010100000
+11011000101000000100010111011010
+11011111001000000000000000100011
+00100000001000000111110010100001
+00100000010000000010101000101000
+00100100011110100000000000000000
+00100000010000000111100011111010
+00100000011110100000000000000000
+01101000010010100100100111100110
+00011100010000100111111000000000
+10011000010001100000010000000000
+00100000011000101000000000000000
+00100100001000010110010010101100
+01101111111000001100100111100101
+10011000010001100111110000000000
+00100000011000010000000000000000
+00011100010000100111111000000000
+01100111111000100100100111100110
+00100000010000000110001110000101
+00100100011101000000000000000000
+00011111111000001111111111111111
+00011111111011111111111000001010
+11011000010000000100110000000010
+10011000010000001000110000000000
+00100000001000000110001111001011
+00100000010000000110100001011000
+00100000010000000110011101101100
+00100000010000000110011101011010
+00100000010000000110010010111100
+00100000010000000110010011010011
+00100000010000000110001100010001
+00100000001000000110010011011001
+11011010011000000100111011000001
+11011010010000000110010010111111
+00100000001000000100001011100000
+00100000010000000111100011111010
+00100100011110100000000000000000
+01101111111000010100100010101100
+00100100011110100000000000000000
+00100000010000000110011100110000
+00100000001110100110010011001101
+00011000111000100111111000000000
+00101111111000000000111000000100
+00100000001000001110010011001111
+00011000111000100111111000000000
+00101111111000000000111000000001
+00100000001000001110010011010001
+11011010011000000100111010110110
+00100000001000000110001101110001
+11011010011000000100111011001010
+00100000001000000110001101110001
+11011010011000000100111011001111
+00100000001000000110001101110001
+11011010011000000100111011011001
+00100000001000000110001101110001
+11011010011000000100101111111111
+11011010010000000110010011010110
+00100000001000000100001011100000
+11011111001000000000000000001010
+11011000101000000100100111110100
+00100000001000000111110010100001
+11011010011000000100011011001010
+11011010010000000110010011011100
+00100000001000000100001011100000
+01101111111000010100010011101001
+11000010100001001110001110011110
+00100000001000000100001100100111
+00011010011000100111111000000000
+11000000000010100110010011110100
+11000000000010101110010011101111
+11000000000110001110010011100110
+11000001001000000000000000000000
+11000000000110010110011011001000
+00100000001000000110001011011001
+01110000010011101100001000000001
+00100000010000000110011110000011
+01101111111000010100111101110100
+01100111111000010100111010101110
+01101000010010010100111101110110
+01011000000000000000111111111111
+10011000010001100111111000000000
+01100111111000010100111010110000
+00100000011000000000000000000000
+01110000010011101010101100000000
+01110000010011101100001000000000
+00100000010000000110010110101101
+00100000010000000110010100000000
+00100000001000000110001011100110
+00011100010000100111111000000000
+01100111111000100100100111100110
+00100000010000000110011100101001
+00100000001000000110001011100010
+01111000010101100111110000000000
+01101111111000010100010100010110
+01100111111000010100010100011000
+00100000010000000110001101011000
+00100000001101000110001101011100
+00100000010000000110001101010001
+00100100011101000000000000000000
+00100000001000000111110110111110
+01110000010011101100010100000000
+00100000011000000000000000000000
+00011000111000100111111000000000
+11000001100000001000000000000000
+00100000001000000110010100001100
+00100000010000000110010011111000
+00100100011101100000000000000000
+00011010001000100111111000000000
+00100000001110100110010100110111
+01000100110100011100000000010100
+01101111111000001100111110011111
+00100100001110100110010100000010
+01110000010011000000000000000001
+00100000010000000100001100100011
+00100000010000000110010100101100
+00100000010000000110010101100001
+00100000001000010110010100000000
+00011000111000100111111000000000
+01101000010010001100111011000101
+10011000010001100111110000000000
+00100100010000101110010100100110
+00011000111000100111111000000000
+01100111111000001100111011000101
+01101000010010001100111011001000
+10011000010001100111110000000000
+00100000001000101110010100100100
+01101111111000001100111011001001
+00100100001110100110010100011111
+00100000010000000110011100110010
+11011111111000000000000000001010
+00100000001000000110010101011010
+00100000010000000110011101111111
+00011000111000100111111000000000
+11000000000000001110010100011100
+00100000010000000110011001000010
+00100000001000000110010111110100
+01110000010011101100011000000001
+00100000001000000110010111110100
+01000100110100100100000000010100
+01101111111000001100111011001001
+00100000001110100110010011000011
+00011000111000100111111000000000
+11000000000000001110010011000011
+00100000011000000000000000000000
+11011111111000000000000000001010
+10011000111011111111111000000000
+11011010011000000100100111101010
+10011010011000001010011000000000
+00011100010000100111111000000000
+11100111111000100000000000010011
+00011010011000001010011000000100
+11101111111000001000000000010011
+00011111111000001111111000000001
+11100111111000001000000000010011
+00100000011000000000000000000000
+01000100110100101100000000010100
+01101111111000001100111011001001
+00100000010110100110010101001011
+11011111111000000000000000001010
+10011000111011111111111000000000
+11011010011000000100100111101010
+10011010011000001010011000000000
+11101000010000100000000000010011
+00011000010001100111110000000000
+00100000011000101000000000000000
+00011100010000100111111000000000
+10011000010001100000010000000000
+00100100010000010111100000000110
+00011010011000001000110000001001
+11101111111000001000000000000110
+00100100001110100110010101100110
+00011010011000001010011000000101
+00011100010000100111111000000000
+11100111111000100000000000010011
+00100000011000000000000000000000
+01101111111000001100111110011111
+00100100001110100100001100100011
+00100000001000000100001100100101
+00011010011000001000110000000100
+11101111111000001000000000000110
+00100000001000000110010101010001
+00100000010000000110010101101011
+01101111111000001100111011001001
+00100100001110100110010101011101
+00100000010000000110010101100001
+00100000001000010110010100000000
+00100000010000000110011100111000
+00011000111000100111111000000000
+11000000000000011110011101000000
+11011111111000000000000000001111
+10011000111011111111111000000000
+10011010011000001010011000000000
+00100000001000000110001101110001
+00011000111000100111111000000000
+11000000000000001110010101010100
+11000000000000011110010101010100
+00100000011000000000000000000000
+00100000010000000111100100000010
+11101000010000001000000000000110
+10011000010001100111111000000000
+00011111111001100111110000001010
+00100000011000000000000000000000
+01110000010011101100000000000001
+00100000010000000110010101101011
+11011010011000000100101010101110
+11011111111000000000000000000011
+00100000001000000110010101011010
+11011111001000000000000000001010
+00011010011000100000101000000000
+00100000001000000111110010100001
+01101111111000010100100010101100
+01100111111000010100010000101110
+00100000010000000110010110111110
+01101111111000010100010000101110
+01100111111000010100100010101100
+11011000111000000000000000000000
+01101111111000001100010100100011
+00011111111000100111001000000000
+11011010011000000100100111101010
+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
+01101111111000001100111011000000
+00100000011110100000000000000000
+01110000010011101100000000000000
+01000100110100110100000000010100
+00100000010000000110011101010101
+01101111111000001100111011000111
+11000000000000000110010110100010
+11000000000000001110010110100101
+00100000011000000000000000000000
+00100000010000000110010110101111
+11011111111000000000000000000011
+00100000001000000110010101011010
+00011000111000100111111000000000
+01101000010010001100111011001000
+10011000010001100111110000000000
+00100100001000101110010110100010
+01101111111000001100111011001001
+01111001010000000111111000000000
+01100111111000001100111011001001
+00100100011110100000000000000000
+01110000010011101100100100000000
+00100000001000000100001100100101
+11011010011000000100101010011001
+00100000010000000110011100110000
+00100000011110100000000000000000
+11011010011000000100101111000000
+00100000011000000000000000000000
+00011010011000001010010000000101
+11101111111000100000000000010010
+00100000011110100000000000000000
+00011111111000100000010000000000
+00011100010000100111111000000000
+10011000010001100000010000000000
+00100100010000010111100000000110
+01011000000000000000001111101000
+10011000010001100111110000000000
+00100000001000000110010101001110
+01101111111000010100010000101100
+11101111111000001000000000111111
+00100000011110100000000000000000
+01011000000000000000000000000000
+01100111111000010000011011110001
+00100000010000000111000000000011
+00100100001101000111011110100101
+00100000010000000111011110100011
+01111000010101000111110000000000
+01101111111000001100001110001000
+00100100011110100000000000000000
+01000100110100111100000000010100
+01101111111000001100111011000111
+11000000000000001110010111001111
+00100000010000000110011000101000
+00100000010000000110010111011100
+00100000011101000000000000000000
+00100000010000000110010111010101
+01101111111000010000011011110001
+01100111111000010000011011111000
+01110000000001101111101000000000
+00011000000000000000111000000000
+00100000001000000111000000111011
+01101111111000001100111011000101
+01101000010010001100111011001000
+10011000010001100111110000000000
+00100000001000101100001100100011
+01101111111000001100111011001001
+00100100001110100100001100100101
+00100000011000000000000000000000
+11011000111000000000000000000000
+11011010010000000100101011000011
+11011111111000000000000000000010
+10011000111011111111111000000000
+10011010010000001010010000000000
+11101111111000010000000000010010
+00100000011110100000000000000000
+01101000010010010000011011110001
+10011000010000101111110000000000
+00100000001000101110010111101000
+00011000111000001000111000000001
+00100000001000000110010111011101
+01100111111000010100101011001111
+00100000010000000100001100100011
+11011010011000000100101011010001
+11011111111000000000000000001010
+10011000111011111111111000000000
+10011010011000001010011000000000
+00100000010000000110010111110000
+00100000001000000110011000110011
+00100000010000000110011101111111
+11101111111000001000000000010011
+00100000011110100000000000000000
+00100000010000000110011001000010
+00100000010000000110011101111111
+00100000010000000110011000001001
+00100000010000000110011000010100
+00100000010000000110011000011110
+11011111111000000000000000000101
+00100000010000000110001110000010
+00100000010000000110011100110000
+00100000011110100000000000000000
+01110000010010011110010101111000
+11011111111000000000000000000110
+00100000001000000110001110000010
+01101000010010001100111010101010
+00100000010000000110011100110000
+00100000011110100000000000000000
+01101000010010001100111010101101
+00011000010000001000010000000001
+01101111111000001100111011000110
+00100000011110100000000000000000
+01101000010010001100111010101010
+01110000010011101100011000000000
+00100000011000000000000000000000
+00100000010000000110010111111111
+00011000010000100111111000000000
+00100000011110100000000000000000
+01100111111000001100111010110011
+11011111111000000000000000010011
+00100000010000000110001110000010
+01101111111000001100111010110011
+00011111111000001111111111111111
+01100111111000001100111010110011
+00100000011110100000000000000000
+00100000001000000110011000001101
+01101111111000001100111010101100
+00100000011110100000000000000000
+01100111111000001100111010110100
+11011111111000000000000000100000
+00100000010000000110001110000010
+01101111111000001100111010110100
+00011111111000001111111111111111
+01100111111000001100111010110100
+00100000011110100000000000000000
+00100000001000000110011000010111
+01101111111000001100111010101101
+00100000011110100000000000000000
+01100111111000001100111010110101
+11011111111000000000000000100001
+00100000010000000110001110000010
+01101111111000001100111010110101
+00011111111000001111111111111111
+01100111111000001100111010110101
+00100000011110100000000000000000
+00100000001000000110011000100001
+01101111111000010100101011001111
+00100000011110100000000000000000
+01101000010010010000011011110001
+00011000010001100111110000000000
+00100000001000101110011000110110
+10011000010001100111110000000000
+00100000011000101000000000000000
+01100000010010010100101011001111
+01101111111000010100111011000011
+10011000010001100111110000000000
+00100000010000101100001100100101
+01101111111000010000011011110001
+01100111111000010100010000101110
+00100000001000000111110110111010
+01110000010011101100000000000001
+00100000010000000100001100100101
+11011010011000000100101100001101
+00100000010000000110010111110000
+01011000000000000000000000000000
+01100111111000010100101011001111
+01110000010010001001111000110010
+00100000010000000110011000110011
+01101111111000001100010100100011
+00011111111011111111001000001010
+11011000101000000100100111101010
+00100000001000000111110010100001
+01000100110101000100000000010101
+01101111111000001100111011000111
+11000000000000001110011001000111
+11000000000000000110011001001101
+00100000011000000000000000000000
+00011000111000100111111000000000
+11000000000000101110011001110110
+11000000000000000110011010010011
+11000000000000100110011010011011
+11000000000000010110011010111110
+00100000011000000000000000000000
+11101111111000001000000000010011
+11000000000000001110011001110110
+11000000000000010110011010010011
+11000000000000011110011010011011
+11000000000000100110011010111110
+11000000000000101110011001010100
+00100000011000000000000000000000
+00100000010000000110011100110000
+00100100001110100110011001011110
+01011000000000000000000000000100
+00011111111011111111111000001010
+11011000010000000100110000000010
+10011000010000001000101000000000
+00011000101000001000101000000011
+01101111111000011100101100010111
+11100111111000011000000000000101
+00100000011000000000000000000000
+01011000000000000000000000000100
+00011111111011111111111000001010
+11011000010000000100110000000010
+10011000010000001000101000000000
+00011000101000001000101000000011
+01101111111000010100111010101110
+11100111111000011000000000000101
+00011000101000001000101000000111
+01101111111000010100111010110000
+00011111111100100111111000000000
+00011111111011010111111000000000
+11100111111000011000000000000101
+00100000011000000000000000000000
+01101111111000001100111010101100
+00100000011110100000000000000000
+00011111111000001111111111111111
+01100111111000001100111010101100
+11011111111000000000000001110010
+00100000011000000000000000000000
+11011000010000000000000000101010
+00100000010000000110011100110000
+00100000011110100000000000000000
+11011000010000000000000000000101
+00100000011000000000000000000000
+00100000010000000110011001110001
+01101111111000010100111010101110
+10011000010001100111110000000000
+00100100010000010110011001101011
+00100100011000010000000000000000
+10011000010001100111111000000000
+01100111111000010100111010101110
+01000100110101001100000000010101
+01101111111000010100111010101110
+01101000010010010100111010110000
+00011000010011010000010000000000
+00011000010100100000010000000000
+10011000010000001111111000000000
+01100111111000011100101100010111
+00100000001000000110011001010100
+01101111111000010100111010101110
+11011000010000000000000001110010
+10011000010001100000010000000000
+00100100011000010000000000000000
+00011000010000100111111000000000
+01101000010010001100111010101100
+00011000010001100111110000000011
+00100000001000101110011010010000
+00011000010000001000010000000001
+01100000010010001100111010101100
+00100000001000000110011001111100
+01110000010011101010110000000000
+11011111111000000000000000000000
+00100000001000000110011001111100
+00100000010000000110011100110000
+00100100010110100110011010000101
+00100000010000000110011001110001
+01101111111000010100111010101110
+10011000010000001111111000000000
+11011000010000000000111111111111
+00100000010000000111110101101100
+00100000001000000110011001111100
+00100000010000000110011001110001
+01101111111000010100111010110000
+10011000010001100111111000000000
+01100111111000010100111010110000
+01101000010010010100111010110000
+00100000010000000110011100110000
+00100000001110100110011001111101
+01011000000000000000111111111111
+10011000010001100111111000000000
+11011000010000000000000001110010
+10011000010001100000010000000000
+00100100001000010110011001111101
+01011000000000000000111111111111
+10011000010001100111111000000000
+01101000010010001100111010101101
+00011000010001100111110000000101
+00100000001000101110011010101111
+00011000010000001000010000000001
+01100000010010001100111010101101
+00100000001000000110011010111100
+01110000010011101010110100000000
+01011000000000000000111111111111
+00100000001000000110011010111100
+00100000010000000110011100110000
+00100000001110100110011010110000
+01101111111000001100111010101101
+00100000001110100110011010110000
+00011111111000001111111111111111
+01100111111000001100111010101101
+01011000000000000000111111111111
+11011000010000000000000001110010
+10011000010001100111111000000000
+10011010001000001111111000000000
+01100111111000010100111010110000
+00100000001000000110011001111101
+00100000010000000110011001110001
+01101111111000010100111010110000
+10011000010000001111111000000000
+11011000010000000000111111111111
+10011000010001100010001000000000
+00100000001000010110011010110010
+00100000001000000110011010111100
+01101111111000010100001110011000
+11000000000100100110001011101001
+00100000011000000000000000000000
+11011010001000000000000000010111
+11011010010000000000000000000100
+00100000010000000010100111111011
+01011000000000000000000000000110
+11100111111000001000000000000101
+01011000000000000000000000000001
+11100111111000010000000000000101
+01011000000000001111111111111111
+11100111111000010000000000000101
+01011000000000000010100000000000
+11100111111000010000000000000101
+11011000110000000100100111010100
+00100000001000000111110010001111
+01000100110101010100000000010101
+00011010001000100000110000000000
+11101111111000011000000000000110
+01100111111000011100001110010111
+11000000000000111110011100000100
+11000000000000001110011100100101
+11000000000001010110011011110100
+11000000000001100110011011011110
+00100000001000000010101110010110
+11101111111000010000000000000110
+01100111111000010000011010110101
+10011000000000000010001000000000
+01101000010010010100001110011000
+01101111111000010100001100110010
+10011000010001100111110000000000
+00100100001000101010110101010000
+00100000010000000110011100110000
+00100100001110100110011011101001
+01101000010010010100100111010000
+00100000001000000110011011101010
+01101000010010010100100111010010
+11011000110000000100100010101110
+00100000010000000111110001101101
+00011000010000100111111000000000
+10011010001001100111111000000000
+00100100001000010010111000000011
+00011111111000001111111000000001
+00011111111001100111110000010111
+00100000001000010010110101011001
+00011000000000000111111000010111
+00100000001000000010110101011001
+01101000010010010100001110011000
+01101111111000001100001100100001
+11000010100000011110011011111000
+00100000001000000010110100011101
+01101111111000010100001100110010
+10011000010001100111110000000000
+00100100001000101010110100011101
+00100000010000000010110111000111
+00100100001101000110011011111110
+00100000001000000010110101000110
+01101111111000010100001100110010
+10011000010001100111110000000000
+00100100001000101010110100011101
+11011000110000000100100010101110
+00011000000000000111111000010111
+00100000001000000010110100101101
+01000100110101011100000000010101
+01110000010011101010101000000101
+01110000010010011110010000000001
+01110000010011101011001000000001
+01110000010010011110010111110000
+01110000010011101100000100001010
+01110000010011101100011000000001
+00100000010000000110011110111111
+01101111111000001100111011000010
+00100000011110100000000000000000
+00100000010000000110011110000011
+11011000010000000000000001110010
+01101111111000010100111101111000
+11011010001000000100111010101110
+11011010010000000100111010101100
+00100000010000000110011100011110
+11011000010000000000000001110010
+01101111111000010100111101111010
+11011010001000000100111010110000
+11011010010000000100111010101101
+00100000010000000110011100011110
+01011000000000000000111111111111
+01101000010010010100111010110000
+10011000010001100111111000000000
+01100111111000010100111010110000
+00100000011000000000000000000000
+10011000010001101111110000000000
+00100000010000000111110101100010
+00011000000001111111111000000000
+00011000000001110000010000000000
+11100111111000001000000000010010
+11100000010000010000000000010001
+00100000011000000000000000000000
+00011000110000001000110111111110
+11101111111000001000000000000110
+11000000000000110110011100101110
+00100000011000000000000000000000
+01110000010011101010101000000001
+01110000010010011110010000000000
+01110000010011101011001000000000
+01110000010010011110010100001010
+00100000011000000000000000000000
+00100000010000000110011100101001
+00100000001000000110011110111111
+01101111111000001100100111100100
+00100000011000000000000000000000
+11011010011000000100111100010100
+00100000010000000110011100110000
+00100000011110100000000000000000
+01110000010010011110010101111000
+11011010011000000100101100011011
+00100000011000000000000000000000
+11011010011000000100101000110000
+00100000010000000110011100110000
+00100000011110100000000000000000
+11011010011000000100101101010111
+01110000010010011110010100001100
+00011000111000100111111000000000
+11000001000000001000000000000000
+00100000011000000000000000000000
+01000100110101100100000000010101
+01101111111000001100101111111110
+01111001010000000111111000000000
+01100111111000001100101111111110
+11000000000000000110011101001001
+11000000000000001110011101000111
+00100000011000000000000000000000
+00100000010000000110011101010000
+00100000001000000110001101110001
+00100000010000000110011101001011
+00100000001000000110001101110001
+11011010011000000100101001011101
+00100000010000000110011100110000
+00100000011110100000000000000000
+11011010011000000100101110000100
+00100000011000000000000000000000
+11011010011000000100101111101010
+00100000010000000110011100110000
+00100000011110100000000000000000
+11011010011000000100101111110100
+00100000011000000000000000000000
+00011000111000100111111000000000
+11000000000000001110011101110111
+11000000000000010110011101100101
+11000000000000100110011101100001
+00100000011000000000000000000000
+11011010011000000100111110001101
+11011010010000000110011101011101
+00100000001000000100001011100000
+01110000010011111000110100000100
+01101111111000001100101111111110
+00100000001110100110011101100001
+00100000001000000110011101100101
+01110000010010111111111000000000
+01110000010011111000110100000100
+11011010011000000100101010100101
+00100000001000000110001101110001
+01110000010010111111111000000001
+01110000010011111000110100000100
+11011010011000000100101010011111
+00100000001000000110001101110001
+01110000010010111111111000000000
+01110000010011111000110100000000
+00100000011000000000000000000000
+11011010011000000100111110001110
+11011010010000000110011101101111
+00100000001000000100001011100000
+01110000010011111000111000000010
+00100000010000000110011101110010
+00100000001000000110001101110001
+11011010011000000100111110001111
+00100000010000000110011100110000
+00100000011110100000000000000000
+11011010011000000100111110010111
+00100000011000000000000000000000
+01101111111000001100111110011111
+00100100001110100110011101111100
+01110000010011111001111100000001
+01110000010011111000111000000010
+00100000011000000000000000000000
+01110000010011111001111100000000
+01110000010011111000111000000000
+00100000011000000000000000000000
+01101111111000001100111010101011
+00100100011110100000000000000000
+01110000010011101010101100000001
+00100000001000000110011001111101
+01011000000000000000000000000000
+01100111111000111100111010101100
+00100000011000000000000000000000
+00100000010000000110011100110000
+11000000000000001110011110001110
+11000000000000000110011110100000
+00100000011000000000000000000000
+01101111111000001100111110000000
+11000000000000001110011110100111
+11000000000000000110011110111001
+00100000011000000000000000000000
+01101111111000001100111010101100
+00011111111011111111111001110010
+00011111111000100000010000000000
+01101111111000010100111010101110
+10011000010000001111111000000000
+01100111111000010100111101111100
+01101111111000001100111010101101
+00011111111011111111111001110010
+00011111111000100000010000000000
+01101111111000010100111010110000
+00011111111000100010001000000000
+01011000000000000000111111111111
+10011010001001100111111000000000
+10011000010000001111111000000000
+01100111111000010100111101111110
+00100000010000000110011100110000
+01100111111000001100111110000000
+00100000011000000000000000000000
+01101111111000010100111010101110
+01100111111000010100111101111100
+01101111111000010100111010110000
+01100111111000010100111101111110
+00100000010000000110011100110000
+01100111111000001100111110000000
+00100000011000000000000000000000
+01101111111000010100111101111100
+00011111111001101111110001110010
+00100000010000000111110101100010
+00011000000001111111111000000000
+00011000000001110000010000000000
+01100111111000001100111010101100
+00011000010000100111111000000000
+01100111111000010100111010101110
+01101111111000010100111101111110
+00011111111001101111110001110010
+00100000010000000111110101100010
+00011000000001111111111000000000
+00011000000001110000010000000000
+01100111111000001100111010101101
+01011000000000000000111111111111
+10011000010001100111111000000000
+01100111111000010100111010110000
+00100000011000000000000000000000
+01101111111000010100111101111100
+01100111111000010100111010101110
+01101111111000010100111101111110
+01100111111000010100111010110000
+00100000011000000000000000000000
+00100000001000000110100000111100
+00100000001000000110100000100011
+00100000010000000110011111100010
+01101111111000010100111110000011
+00100000010000000110100001001111
+01110000010011111000101100000000
+01101111111000101100111101111100
+01110000010011111000110000000000
+01110000010011111000100100000000
+00100000010000000110011111100110
+01101111111000001100111110001001
+11000001000000000000000000000000
+00100000001000000110011111000000
+01101111111000010100111101110000
+00011111111000001111111111111011
+01100111111000010100111110000011
+00100000011000000000000000000000
+01101111111000010100111110000011
+00011111111000001111111111111011
+01100111111000010100111110000011
+00100000011000000000000000000000
+01101111111000010100111110000011
+00011111111000001111111000000101
+01100111111000010100111110000011
+00100000011000000000000000000000
+01101111111000010100111110000101
+00011111111000001111111000000101
+01100111111000010100111110000101
+01101111111000010100111110000101
+00011111111000100000010000000000
+01101111111000010100111101110000
+10011000010001100111111000000000
+11011000010000000000000000000101
+10011000010001100111110000000000
+00100100001000010110100000000110
+00100000011000000000000000000000
+01101111111000001100111110001011
+11000000000000001110011111001011
+11000000000000000110011111001111
+00100000011000000000000000000000
+11011010010000000000000000000000
+00011010010000100000010000000000
+01101111111000010100111101111100
+10101000010000111111111000000000
+00100100010000001110011111110110
+11011010010000000000000000000000
+00011010010000100000010000000000
+01101111111000010100111101111110
+10101000010000111111111000000000
+00100100010000001110011111110110
+11011010010000000000000000000000
+00011010010000100000010000000000
+01101111111000001100111110000000
+10101000010000011111111000000000
+00100100010000001110011111110110
+00100000011000000000000000000000
+01101111111000001100111110001001
+00011111111000001111111000000001
+01100111111000001100111110001001
+00100000011000000000000000000000
+01110000010011111000100100000001
+00100000010000000110011111010111
+01101111111000010100111110000101
+00100000010000000110100001001111
+00100000010000000110011100110000
+00011111111000100000010000000000
+01101111111000001100111110000000
+10101000010000011111111000000000
+00100000010000001110100000100001
+01101111111000001100111110001001
+11000001000000000000000000000000
+00100000001000000110011111111010
+01000100110101101100000000010101
+00100000010000000110100000100001
+00100000010000000110011100110000
+00100000001110100110100000001011
+00100000001000000110100000010010
+01101111111000010100111101110100
+01100111111000010100111010101110
+01101000010010010100111101110110
+01011000000000000000111111111111
+10011000010001100111111000000000
+01100111111000010100111010110000
+00100000001000000110011110111110
+11011000010000000000000001110010
+01101111111000010100111101111000
+11011010001000000100111010101110
+11011010010000000100111010101100
+00100000010000000110011100011110
+11011000010000000000000001110010
+01101111111000010100111101111010
+11011010001000000100111010110000
+11011010010000000100111010101101
+00100000010000000110011100011110
+01011000000000000000111111111111
+01101000010010010100111010110000
+10011000010001100111111000000000
+01100111111000010100111010110000
+00100000001000000110011110111110
+01110000010011111000100100000000
+00100000011000000000000000000000
+01000100110101110100000000010101
+01110000010011111000101100000001
+00100000010000000110011111000000
+01101111111000010100111101110010
+00011111111000100000010000000000
+01101111111000010100111110000011
+10011000010001100111111000000000
+11011000010000000000000000000000
+10011000010001100111110000000000
+00100100011000010000000000000000
+01101111111000010100111110000011
+00011111111000100000010000000000
+01101111111000010100111101110000
+00011111111000001111111111111011
+10011000010001100111111000000000
+01101111111000010100111110000011
+01100111111000010100111110000101
+00100000010000000110011111111010
+01101111111000010100111110000101
+00100100010000101110100001001111
+01110000010011111000100100000000
+00100000010000000110011111100110
+01101111111000001100111110001001
+11000001000000000000000000000000
+00100000001000000110011110001010
+01000100110101111100000000010101
+01110000010011111000101100000001
+00100000010000000110011111000000
+01101000010010010100111101110010
+01101111111000010100111110000011
+10011000010001100111111000000000
+11011000010000000000000000000000
+10011000010001100111110000000000
+00100100011000010000000000000000
+01101000010010010100111110000011
+01101111111000010100111101110000
+10011000010001100111111000000000
+11011000010000000000000000000000
+10011000010001100111110000000000
+00100100011000010000000000000000
+01101111111000010100111110000011
+01100111111000010100111110000001
+00100000010000000110011110000110
+00100000001000000110100001010100
+01000100110110000100000000010110
+00011111111000100010010000000000
+11011111001000000000000000000101
+11011010001000000100111101111100
+00100000001000000110101101110100
+11011111001000000000000000000101
+11011010001000000100111101111100
+01101010010000010100111110000001
+00100000001000000110101101000101
+11011010011000000100100010011110
+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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/output/eeprom.dat	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/output/eeprom.dat	(working copy)
@@ -0,0 +1,8192 @@
+00
+02
+aa
+55
+8a
+11
+c2
+84
+00
+18
+c0
+00
+00
+51
+c0
+01
+01
+1d
+c0
+08
+81
+26
+c0
+0a
+03
+04
+c0
+0a
+81
+b3
+c0
+0c
+01
+c1
+c0
+0c
+81
+80
+c0
+0d
+01
+38
+c0
+12
+83
+26
+c0
+13
+80
+7c
+c0
+51
+80
+c2
+c0
+52
+80
+fa
+c0
+53
+00
+87
+c0
+53
+80
+98
+c0
+55
+00
+ea
+c0
+58
+81
+d3
+c0
+62
+00
+1f
+c0
+62
+81
+c8
+c0
+6d
+02
+ed
+c0
+6d
+84
+09
+c0
+6e
+04
+46
+c0
+6e
+84
+27
+20
+20
+23
+5a
+c0
+12
+00
+55
+c0
+12
+80
+d3
+c0
+13
+00
+d8
+c0
+1c
+83
+20
+c0
+26
+83
+24
+c1
+7f
+80
+00
+20
+20
+23
+5a
+20
+40
+6b
+34
+20
+40
+6b
+41
+20
+40
+6b
+3b
+e8
+40
+80
+11
+1a
+20
+a2
+01
+18
+00
+0e
+00
+79
+3f
+80
+22
+a8
+4c
+00
+00
+20
+20
+80
+49
+6f
+f0
+80
+46
+79
+20
+7e
+06
+79
+20
+7e
+07
+67
+f0
+80
+46
+70
+80
+47
+02
+70
+80
+47
+82
+79
+3f
+fe
+07
+67
+f0
+80
+46
+70
+80
+47
+8a
+20
+00
+00
+0b
+70
+80
+47
+ca
+20
+00
+00
+21
+70
+80
+47
+4a
+20
+00
+00
+2c
+70
+80
+47
+ca
+20
+00
+00
+16
+70
+80
+47
+8a
+20
+00
+00
+21
+70
+80
+47
+82
+20
+00
+00
+01
+70
+80
+47
+92
+20
+00
+00
+0a
+70
+80
+47
+b2
+6f
+f0
+80
+07
+70
+80
+47
+92
+20
+00
+00
+01
+70
+80
+47
+82
+20
+00
+00
+01
+af
+ec
+00
+00
+20
+20
+80
+25
+c5
+11
+00
+49
+79
+20
+00
+22
+20
+20
+00
+26
+6f
+f1
+00
+44
+1f
+e0
+fe
+01
+67
+f1
+00
+44
+18
+e0
+8e
+01
+28
+e0
+1e
+08
+24
+20
+80
+25
+c2
+00
+00
+22
+20
+20
+6b
+38
+24
+35
+a0
+02
+37
+d9
+82
+00
+37
+d9
+82
+00
+20
+20
+20
+02
+20
+40
+25
+c2
+c5
+97
+80
+5b
+78
+3c
+fc
+00
+20
+00
+00
+1e
+20
+40
+25
+c2
+19
+69
+96
+00
+78
+56
+fc
+00
+78
+26
+fc
+00
+78
+30
+fc
+00
+78
+50
+7c
+00
+19
+62
+36
+00
+37
+c1
+84
+00
+20
+37
+00
+64
+1b
+42
+04
+00
+60
+4b
+00
+0f
+24
+2c
+26
+fa
+78
+28
+7c
+00
+6f
+e0
+c1
+67
+d8
+40
+4e
+20
+98
+40
+84
+00
+6f
+e0
+c1
+48
+98
+4f
+b6
+00
+20
+40
+68
+77
+20
+37
+26
+77
+20
+40
+00
+72
+6f
+e0
+81
+68
+c3
+01
+a6
+77
+20
+55
+a4
+77
+20
+20
+26
+77
+68
+4b
+00
+0f
+1b
+42
+7e
+00
+20
+40
+7d
+12
+1f
+e2
+04
+00
+20
+40
+26
+ff
+1b
+42
+56
+00
+1d
+22
+7e
+00
+98
+40
+fe
+00
+1f
+e2
+52
+00
+20
+60
+00
+00
+c5
+84
+a4
+89
+68
+4a
+40
+ad
+df
+e0
+06
+00
+98
+46
+7c
+00
+20
+61
+00
+00
+18
+42
+22
+00
+68
+4b
+00
+0f
+1d
+62
+7e
+00
+20
+40
+7d
+10
+1a
+22
+04
+00
+20
+20
+24
+7d
+18
+e2
+7e
+00
+c0
+00
+e7
+77
+c0
+02
+e7
+65
+c0
+00
+67
+61
+c0
+03
+00
+90
+c0
+03
+80
+93
+c0
+04
+00
+96
+c0
+04
+80
+97
+20
+20
+65
+a2
+70
+4f
+d9
+01
+70
+4f
+da
+01
+20
+60
+00
+00
+70
+4f
+d9
+01
+70
+4f
+da
+02
+20
+60
+00
+00
+20
+60
+00
+00
+20
+60
+00
+00
+6f
+e0
+ce
+c7
+c0
+00
+e5
+cf
+20
+40
+66
+28
+20
+40
+00
+9e
+20
+74
+00
+00
+20
+20
+65
+cf
+d8
+e0
+00
+00
+da
+40
+4a
+c3
+df
+e0
+00
+02
+98
+ef
+fe
+00
+9a
+40
+a4
+00
+ef
+e1
+00
+12
+20
+7a
+00
+00
+68
+49
+06
+f1
+98
+42
+fc
+00
+20
+22
+80
+aa
+18
+e0
+8e
+01
+20
+20
+00
+9f
+67
+e1
+4a
+cf
+20
+40
+43
+23
+da
+60
+4a
+d1
+df
+e0
+00
+0a
+98
+ef
+fe
+00
+9a
+60
+a6
+00
+20
+20
+66
+33
+6f
+e1
+4a
+cf
+20
+7a
+00
+00
+68
+49
+06
+f1
+18
+46
+7c
+00
+20
+22
+80
+b7
+20
+20
+00
+b6
+70
+4e
+c0
+01
+20
+40
+43
+25
+da
+60
+4b
+0d
+58
+00
+00
+00
+67
+e1
+4a
+cf
+70
+48
+9e
+32
+20
+40
+66
+33
+6f
+e0
+c5
+23
+1f
+ef
+f2
+0a
+d8
+a0
+45
+fd
+20
+20
+7c
+a1
+6f
+e0
+cf
+9f
+24
+3a
+00
+cc
+70
+4c
+00
+01
+20
+40
+43
+23
+20
+40
+00
+cf
+20
+40
+65
+61
+20
+21
+65
+00
+18
+e2
+7e
+00
+67
+e0
+ce
+c5
+20
+60
+00
+00
+18
+e2
+7e
+00
+c1
+80
+80
+00
+20
+20
+00
+c4
+df
+e0
+00
+0a
+98
+ef
+fe
+00
+da
+60
+45
+fd
+20
+20
+65
+2f
+20
+40
+28
+1c
+6a
+20
+80
+4d
+1a
+20
+a3
+fc
+24
+21
+26
+fa
+20
+20
+26
+8e
+09
+80
+00
+18
+1f
+ef
+7e
+00
+1f
+f1
+7e
+00
+e7
+e1
+80
+05
+78
+28
+7c
+00
+20
+40
+27
+0d
+20
+23
+26
+f6
+c5
+99
+26
+af
+6f
+e0
+80
+4d
+20
+3a
+26
+af
+1f
+e0
+ff
+fc
+67
+e0
+80
+4d
+20
+40
+72
+cb
+6f
+f0
+81
+08
+c3
+03
+a6
+fa
+18
+00
+70
+0c
+65
+e2
+01
+54
+20
+20
+26
+af
+1a
+22
+0c
+00
+ef
+e1
+80
+06
+67
+e1
+c3
+97
+c0
+03
+e7
+04
+c0
+00
+80
+f0
+20
+20
+66
+db
+18
+c0
+8d
+fe
+ef
+e0
+80
+06
+c0
+03
+00
+f4
+20
+60
+00
+00
+20
+20
+00
+f5
+70
+4e
+aa
+01
+70
+49
+e4
+00
+70
+4e
+b2
+00
+70
+49
+e5
+0a
+20
+60
+00
+00
+20
+40
+65
+4b
+df
+e0
+00
+0a
+98
+ef
+fe
+00
+da
+60
+45
+fd
+9a
+60
+a6
+00
+e8
+42
+00
+13
+18
+46
+7c
+00
+20
+62
+80
+00
+1c
+42
+7e
+00
+98
+46
+04
+00
+24
+41
+78
+06
+1a
+60
+8c
+09
+ef
+e0
+80
+06
+24
+3a
+01
+09
+20
+20
+65
+47
+70
+4e
+c0
+01
+20
+40
+65
+6b
+20
+40
+67
+69
+18
+e2
+7e
+00
+c0
+03
+01
+12
+c0
+03
+81
+16
+da
+60
+4a
+ae
+df
+e0
+00
+03
+20
+20
+65
+5a
+20
+40
+01
+1a
+20
+40
+03
+8f
+da
+60
+4f
+c4
+20
+20
+63
+71
+20
+40
+01
+1a
+20
+40
+03
+b2
+da
+60
+4f
+d2
+20
+20
+63
+71
+70
+4f
+d9
+00
+70
+4f
+da
+00
+20
+60
+00
+00
+20
+40
+75
+52
+20
+40
+74
+48
+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
+01
+1d
+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
+37
+d9
+82
+00
+70
+81
+3c
+58
+37
+d9
+82
+00
+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
+88
+40
+70
+8a
+13
+cd
+70
+8a
+06
+10
+70
+8a
+84
+4a
+70
+8a
+85
+40
+70
+8a
+16
+fe
+20
+40
+01
+88
+6f
+e0
+c4
+36
+20
+5a
+70
+d7
+24
+55
+81
+34
+37
+d9
+82
+00
+70
+81
+3b
+5f
+6f
+e0
+c0
+99
+c0
+08
+01
+75
+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
+01
+67
+70
+80
+43
+00
+70
+80
+42
+05
+58
+55
+74
+74
+67
+f1
+89
+68
+70
+89
+60
+6e
+20
+40
+02
+bf
+20
+40
+02
+ea
+20
+40
+01
+61
+70
+41
+48
+0c
+20
+40
+6f
+4e
+20
+20
+02
+ec
+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
+01
+6d
+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
+01
+53
+6f
+e0
+c1
+41
+c0
+05
+01
+83
+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
+35
+81
+af
+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
+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
+01
+99
+20
+40
+68
+6f
+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
+20
+40
+6b
+3a
+20
+40
+6b
+75
+20
+20
+6b
+38
+6f
+e0
+ce
+e3
+1f
+e2
+72
+00
+67
+e0
+c5
+23
+58
+00
+45
+23
+67
+e1
+44
+2c
+d8
+c0
+4e
+e4
+d8
+a0
+45
+26
+20
+20
+7c
+da
+20
+40
+73
+96
+20
+75
+80
+00
+20
+40
+42
+a3
+20
+40
+03
+c5
+70
+40
+94
+00
+20
+40
+01
+cb
+20
+40
+64
+59
+58
+00
+00
+01
+67
+e1
+44
+f6
+70
+40
+a6
+0a
+58
+00
+02
+4d
+67
+e1
+43
+db
+58
+00
+02
+2a
+67
+e1
+43
+dd
+58
+00
+02
+3f
+67
+e1
+43
+df
+58
+00
+62
+d3
+67
+e1
+43
+d3
+58
+00
+01
+f7
+67
+e1
+43
+d5
+58
+00
+63
+29
+67
+e1
+43
+d7
+58
+00
+02
+0c
+67
+e1
+43
+e3
+58
+00
+65
+05
+67
+e1
+45
+24
+58
+00
+63
+40
+67
+e1
+45
+1f
+58
+00
+63
+9a
+67
+e1
+45
+21
+20
+40
+62
+ca
+6f
+e1
+4f
+87
+67
+e1
+43
+32
+6f
+e4
+45
+0a
+67
+e4
+45
+02
+20
+20
+62
+bd
+20
+40
+6f
+35
+70
+44
+ec
+ff
+20
+40
+01
+fc
+20
+40
+70
+1b
+20
+20
+73
+9a
+6f
+e0
+c6
+ce
+20
+7a
+00
+00
+6f
+e0
+ce
+e3
+1f
+e2
+72
+00
+da
+20
+45
+26
+ef
+e0
+80
+11
+68
+48
+c6
+cf
+98
+46
+7c
+00
+20
+22
+82
+07
+1f
+e2
+04
+00
+20
+40
+02
+0a
+1a
+20
+a2
+01
+c2
+00
+02
+01
+20
+60
+00
+00
+79
+20
+04
+07
+20
+20
+6e
+dd
+20
+40
+03
+cd
+20
+40
+02
+12
+20
+40
+67
+6c
+20
+40
+67
+5a
+20
+40
+02
+23
+20
+20
+64
+d9
+da
+60
+4f
+ee
+da
+40
+02
+15
+20
+20
+42
+e0
+6f
+e0
+cf
+ef
+70
+4f
+ef
+00
+c0
+00
+82
+1a
+c0
+01
+02
+1c
+20
+60
+00
+00
+da
+60
+4a
+3f
+20
+20
+63
+71
+20
+40
+02
+1e
+20
+20
+63
+71
+da
+60
+4f
+dc
+20
+40
+67
+30
+20
+7a
+00
+00
+da
+60
+4f
+e5
+20
+60
+00
+00
+da
+60
+45
+18
+da
+40
+02
+26
+20
+20
+42
+e7
+70
+45
+1c
+02
+20
+40
+43
+25
+20
+40
+63
+4e
+20
+20
+63
+9e
+1a
+62
+7e
+00
+c0
+20
+02
+36
+c0
+18
+82
+34
+c0
+0a
+82
+31
+c0
+0a
+02
+30
+20
+20
+64
+e0
+20
+20
+64
+f4
+6f
+e1
+45
+12
+67
+e1
+45
+18
+20
+20
+64
+ef
+70
+4e
+c2
+01
+20
+60
+00
+00
+6f
+e1
+43
+3c
+c1
+00
+00
+00
+6f
+e4
+45
+0a
+20
+7a
+00
+00
+20
+40
+67
+30
+24
+3a
+02
+4a
+6f
+e4
+4f
+02
+67
+e4
+42
+d3
+20
+20
+2e
+93
+6f
+e1
+43
+98
+c0
+12
+02
+42
+20
+60
+00
+00
+20
+40
+78
+ad
+70
+44
+f1
+01
+20
+40
+67
+30
+20
+40
+43
+2b
+24
+3a
+02
+4a
+6f
+e4
+4f
+02
+67
+e4
+42
+d3
+20
+20
+2e
+93
+6f
+e4
+4f
+b0
+67
+e4
+42
+d3
+20
+20
+2e
+93
+20
+40
+02
+58
+d8
+e0
+00
+09
+20
+40
+7c
+ef
+24
+7a
+00
+00
+58
+00
+00
+20
+d8
+e0
+00
+09
+20
+40
+7c
+e1
+78
+54
+7c
+00
+20
+40
+70
+1b
+20
+40
+02
+72
+20
+20
+03
+4f
+6f
+e1
+44
+e9
+c2
+84
+82
+5d
+d8
+a0
+45
+da
+df
+20
+00
+23
+20
+20
+7c
+a1
+20
+40
+2a
+28
+24
+7a
+00
+00
+20
+40
+78
+fa
+20
+7a
+00
+00
+68
+4a
+49
+e6
+1c
+42
+7e
+00
+98
+46
+04
+00
+20
+62
+80
+00
+24
+21
+02
+69
+6f
+e0
+c9
+e5
+98
+46
+7c
+00
+20
+61
+00
+00
+1c
+42
+7e
+00
+67
+e2
+49
+e6
+20
+40
+63
+85
+24
+74
+00
+00
+1f
+e0
+ff
+ff
+1f
+ef
+fe
+0d
+d8
+40
+4c
+02
+98
+40
+8c
+00
+20
+20
+63
+cb
+6f
+e1
+48
+ac
+67
+e1
+44
+2e
+20
+40
+65
+be
+6f
+e1
+44
+2e
+67
+e1
+48
+ac
+d8
+e0
+00
+00
+6f
+e0
+c5
+23
+1f
+e2
+72
+00
+da
+60
+45
+fd
+1f
+22
+7e
+00
+67
+e1
+06
+78
+1a
+62
+7e
+00
+67
+e1
+06
+8c
+18
+e2
+7e
+00
+67
+e1
+06
+7a
+20
+40
+02
+8f
+6f
+e1
+06
+8c
+1f
+e2
+26
+00
+6f
+e1
+06
+7a
+1f
+e2
+0e
+00
+20
+40
+65
+8b
+6f
+e1
+06
+7a
+1f
+e0
+8e
+01
+6f
+e1
+06
+8c
+1f
+e0
+a6
+0a
+6f
+e1
+06
+78
+1f
+e2
+72
+00
+c2
+00
+02
+7b
+20
+60
+00
+00
+1a
+60
+a4
+05
+ef
+e2
+00
+12
+20
+7a
+00
+00
+1f
+e2
+04
+00
+1c
+42
+7e
+00
+98
+46
+04
+00
+24
+41
+78
+06
+58
+00
+03
+e8
+98
+46
+7c
+00
+20
+20
+02
+99
+1a
+60
+8c
+04
+ef
+e0
+80
+06
+20
+20
+02
+9c
+20
+40
+65
+6b
+20
+40
+65
+61
+20
+21
+65
+00
+20
+40
+02
+b7
+18
+e2
+7e
+00
+c0
+03
+02
+a6
+c0
+03
+82
+a8
+c0
+04
+02
+aa
+c0
+00
+82
+b1
+20
+20
+65
+58
+da
+60
+4f
+b8
+20
+20
+63
+71
+da
+60
+4f
+c6
+20
+20
+63
+71
+20
+40
+02
+ac
+20
+20
+63
+71
+da
+60
+4f
+dc
+20
+40
+67
+30
+20
+7a
+00
+00
+da
+60
+4f
+e5
+20
+60
+00
+00
+70
+4f
+ee
+05
+6f
+e0
+cf
+ef
+c1
+01
+00
+00
+1f
+e0
+fe
+01
+67
+e0
+cf
+ef
+20
+60
+00
+00
+da
+60
+4a
+30
+70
+49
+e5
+5a
+20
+40
+67
+30
+20
+7a
+00
+00
+da
+60
+4b
+57
+18
+e2
+7e
+00
+70
+49
+e5
+14
+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
+02
+dc
+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
+02
+dc
+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
+02
+d1
+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
+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
+02
+fd
+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
+82
+fe
+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
+03
+1d
+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
+03
+1a
+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
+03
+16
+58
+00
+83
+12
+67
+f1
+09
+07
+20
+20
+03
+0b
+6f
+e0
+c3
+34
+c1
+00
+00
+00
+c0
+01
+b0
+4a
+20
+20
+28
+e1
+79
+3f
+80
+30
+20
+20
+2a
+f6
+6f
+e1
+43
+e9
+20
+40
+7d
+79
+6f
+e2
+40
+ad
+98
+40
+fe
+00
+67
+e2
+40
+ad
+20
+40
+03
+37
+6f
+e0
+c0
+cb
+79
+20
+7e
+04
+20
+40
+23
+e1
+24
+55
+a3
+cb
+37
+d9
+82
+00
+1b
+22
+7e
+00
+67
+e3
+40
+b1
+6f
+e1
+c0
+c6
+6a
+20
+c0
+c9
+df
+20
+00
+03
+20
+20
+24
+2e
+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
+83
+4a
+e7
+e0
+80
+13
+37
+d9
+82
+00
+1a
+20
+a2
+01
+1a
+60
+a6
+01
+c2
+00
+03
+44
+1a
+42
+04
+00
+20
+60
+00
+00
+da
+20
+00
+00
+68
+4a
+4f
+d5
+1c
+42
+24
+00
+1a
+42
+7e
+00
+98
+46
+7c
+00
+24
+41
+78
+06
+1a
+42
+7e
+00
+18
+40
+84
+40
+98
+46
+7c
+00
+24
+21
+03
+61
+1a
+20
+a2
+01
+1a
+21
+7e
+0f
+24
+3a
+03
+55
+da
+20
+00
+00
+20
+40
+03
+66
+1c
+42
+7e
+00
+67
+e2
+4f
+d5
+20
+60
+00
+00
+1a
+22
+7e
+00
+20
+7a
+00
+00
+18
+40
+85
+c0
+79
+3f
+84
+1c
+60
+4a
+4f
+d5
+67
+e0
+cf
+d4
+6f
+e0
+cf
+d4
+20
+7a
+00
+00
+1f
+e0
+ff
+ff
+67
+e0
+cf
+d4
+20
+40
+03
+6d
+20
+20
+03
+67
+da
+60
+4f
+d9
+da
+40
+03
+70
+20
+20
+42
+e0
+6f
+e0
+cf
+da
+c0
+00
+83
+74
+c0
+01
+03
+97
+20
+60
+00
+00
+20
+40
+67
+30
+24
+3a
+03
+83
+70
+49
+e5
+08
+70
+4f
+d9
+01
+6f
+e0
+cf
+db
+1f
+e0
+fe
+02
+67
+e0
+cf
+db
+1f
+e6
+7c
+5a
+20
+42
+83
+8f
+da
+60
+4f
+c2
+20
+40
+03
+ba
+ef
+e1
+00
+3f
+1f
+e0
+fe
+0a
+e7
+e1
+00
+11
+20
+20
+63
+71
+20
+40
+03
+c2
+6f
+e0
+cf
+db
+1f
+e0
+fe
+01
+67
+e0
+cf
+db
+1f
+e6
+7c
+5a
+20
+42
+83
+8f
+da
+60
+4f
+c2
+20
+40
+03
+ba
+ef
+e1
+00
+3f
+1f
+e0
+fe
+12
+e7
+e1
+00
+11
+20
+20
+63
+71
+70
+4f
+db
+00
+da
+60
+4f
+c4
+20
+40
+63
+71
+da
+60
+4f
+c2
+20
+40
+03
+ba
+58
+00
+06
+50
+e7
+e1
+00
+11
+20
+60
+00
+00
+20
+40
+67
+30
+24
+3a
+03
+a6
+70
+49
+e5
+08
+70
+4f
+d9
+01
+6f
+e0
+cf
+db
+1f
+e0
+fe
+02
+67
+e0
+cf
+db
+1f
+e6
+7c
+5a
+20
+42
+83
+b2
+da
+60
+4f
+d0
+20
+40
+03
+ba
+ef
+e1
+00
+3f
+1f
+e0
+ff
+f6
+e7
+e1
+00
+11
+20
+20
+63
+71
+20
+40
+03
+c2
+6f
+e0
+cf
+db
+1f
+e0
+fe
+01
+67
+e0
+cf
+db
+1f
+e6
+7c
+5a
+20
+42
+83
+b2
+da
+60
+4f
+d0
+20
+40
+03
+ba
+ef
+e1
+00
+3f
+1f
+e0
+ff
+ee
+e7
+e1
+00
+11
+20
+20
+63
+71
+70
+4f
+db
+00
+da
+60
+4f
+d2
+20
+40
+63
+71
+da
+60
+4f
+d0
+20
+40
+03
+ba
+58
+00
+0a
+00
+e7
+e1
+00
+11
+20
+60
+00
+00
+d8
+40
+4c
+02
+ef
+e0
+80
+13
+1f
+e0
+ff
+ff
+1f
+ef
+fe
+0d
+98
+40
+fe
+00
+1f
+e0
+fe
+06
+1f
+e2
+22
+00
+20
+60
+00
+00
+70
+49
+e5
+01
+70
+4f
+d9
+03
+20
+60
+00
+00
+70
+4f
+f8
+01
+20
+60
+00
+00
+6f
+e0
+cf
+f9
+1f
+e0
+fe
+01
+67
+e0
+cf
+f9
+68
+48
+cf
+fd
+98
+46
+7c
+00
+20
+60
+00
+00
+6f
+e0
+cf
+f8
+20
+7a
+00
+00
+20
+40
+03
+c7
+24
+61
+00
+00
+70
+4f
+f9
+00
+70
+44
+07
+01
+20
+40
+6f
+f3
+20
+40
+6f
+eb
+20
+40
+04
+46
+20
+40
+04
+27
+67
+e1
+4f
+f6
+da
+20
+4f
+f0
+20
+40
+03
+df
+6f
+e0
+c4
+0c
+c2
+80
+83
+ff
+c3
+00
+04
+03
+70
+4f
+fb
+01
+20
+20
+04
+01
+ef
+e4
+00
+11
+67
+e4
+06
+70
+20
+40
+6f
+f3
+20
+40
+6f
+eb
+6f
+e1
+06
+76
+68
+49
+06
+72
+98
+46
+7c
+00
+24
+41
+6f
+ef
+68
+49
+06
+74
+98
+46
+7c
+00
+24
+41
+6f
+e7
+6f
+e1
+06
+76
+68
+49
+06
+70
+98
+46
+7c
+00
+20
+21
+03
+fb
+68
+49
+06
+72
+98
+46
+7e
+00
+24
+21
+03
+fd
+20
+3a
+03
+fd
+1f
+ef
+a2
+64
+6f
+e1
+06
+70
+68
+49
+06
+72
+98
+46
+04
+00
+1a
+22
+7e
+00
+98
+46
+fc
+00
+20
+40
+7d
+5f
+67
+e0
+cf
+fc
+20
+60
+00
+00
+70
+4f
+fc
+64
+20
+60
+00
+00
+70
+4f
+fc
+00
+20
+60
+00
+00
+20
+40
+43
+25
+20
+20
+43
+27
+70
+4f
+fa
+01
+20
+60
+00
+00
+70
+4f
+fa
+00
+6f
+e0
+cf
+fb
+20
+7a
+00
+00
+20
+40
+43
+25
+70
+4f
+fb
+00
+20
+60
+00
+00
+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
+41
+4e
+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
+84
+2b
+c0
+01
+04
+32
+20
+60
+00
+00
+58
+00
+03
+e8
+67
+e1
+44
+05
+68
+49
+41
+52
+6f
+e1
+41
+54
+da
+60
+0e
+10
+20
+40
+6f
+c0
+20
+20
+04
+38
+58
+00
+03
+e8
+67
+e1
+44
+05
+68
+49
+41
+4e
+6f
+e1
+41
+50
+da
+60
+03
+e8
+20
+40
+6f
+c0
+68
+49
+41
+56
+98
+4f
+fe
+00
+68
+49
+41
+58
+98
+46
+fc
+00
+20
+20
+7d
+5f
+20
+40
+04
+1a
+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
+04
+3d
+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
+04
+3d
+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
+04
+5f
+68
+59
+01
+64
+60
+49
+41
+58
+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
+84
+5f
+20
+60
+00
+00
+06
+c6
+aa
+55
+40
+00
+00
+40
+05
+00
+32
+07
+a0
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+e8
+04
+02
+00
+30
+00
+00
+3c
+00
+00
+00
+00
+00
+00
+00
+00
+70
+00
+00
+02
+00
+20
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+aa
+55
+01
+00
+cb
+43
+06
+aa
+55
+01
+00
+ec
+44
+ff
+aa
+55
+06
+00
+db
+42
+0d
+21
+21
+98
+07
+2a
+aa
+55
+07
+00
+6b
+42
+06
+53
+65
+6c
+66
+69
+65
+aa
+55
+08
+00
+41
+41
+06
+00
+0a
+0e
+00
+0a
+dd
+00
+aa
+55
+04
+00
+70
+4f
+b0
+1f
+70
+1a
+aa
+55
+02
+00
+87
+4f
+2b
+00
+aa
+55
+08
+00
+74
+4f
+ef
+03
+a0
+06
+07
+00
+06
+00
+aa
+55
+01
+00
+d1
+46
+01
+aa
+55
+01
+00
+d0
+46
+01
+aa
+55
+16
+00
+5a
+4f
+00
+00
+93
+46
+00
+96
+00
+01
+03
+93
+46
+00
+96
+00
+20
+01
+20
+03
+20
+01
+20
+03
+aa
+55
+02
+00
+ce
+46
+00
+ff
+aa
+55
+08
+00
+0a
+4f
+70
+17
+70
+17
+70
+17
+70
+17
+aa
+55
+01
+00
+fd
+4f
+05
+aa
+55
+06
+00
+f0
+4f
+e4
+0c
+00
+00
+bf
+09
+aa
+55
+0b
+00
+e3
+4e
+0a
+ff
+12
+ff
+01
+ff
+ff
+06
+0f
+ff
+ff
+aa
+55
+0a
+00
+c3
+4a
+60
+00
+41
+00
+50
+00
+44
+00
+00
+00
+aa
+55
+02
+00
+c3
+4e
+40
+00
+aa
+55
+01
+00
+b6
+4e
+00
+aa
+55
+01
+00
+cf
+4e
+00
+aa
+55
+01
+00
+d9
+4e
+00
+aa
+55
+01
+00
+ca
+4e
+00
+aa
+55
+08
+00
+57
+4b
+19
+18
+17
+16
+15
+14
+13
+00
+aa
+55
+01
+00
+c0
+4b
+00
+aa
+55
+03
+00
+66
+4b
+1b
+1c
+00
+aa
+55
+06
+00
+97
+4f
+1b
+1c
+1c
+1b
+1c
+00
+aa
+55
+09
+00
+75
+4b
+11
+10
+0f
+0e
+0d
+0c
+0b
+0a
+00
+aa
+55
+03
+00
+84
+4b
+03
+01
+00
+aa
+55
+03
+00
+f4
+4b
+04
+01
+00
+aa
+55
+09
+00
+93
+4b
+0b
+0c
+0d
+0e
+0f
+10
+11
+12
+00
+aa
+55
+08
+00
+a2
+4b
+14
+15
+16
+17
+18
+19
+1a
+00
+aa
+55
+01
+00
+cf
+4b
+00
+aa
+55
+01
+00
+b1
+4b
+00
+aa
+55
+01
+00
+8a
+4a
+00
+aa
+55
+08
+00
+30
+4a
+19
+18
+17
+16
+15
+14
+13
+00
+aa
+55
+01
+00
+99
+4a
+00
+aa
+55
+03
+00
+3f
+4a
+1b
+1c
+00
+aa
+55
+06
+00
+8f
+4f
+1b
+1c
+1c
+1b
+1c
+00
+aa
+55
+09
+00
+4e
+4a
+11
+10
+0f
+0e
+0d
+0c
+0b
+0a
+00
+aa
+55
+03
+00
+9f
+4a
+04
+01
+00
+aa
+55
+05
+00
+5d
+4a
+03
+01
+33
+34
+00
+aa
+55
+05
+00
+ea
+4b
+04
+01
+33
+34
+00
+aa
+55
+09
+00
+6c
+4a
+0b
+0c
+0d
+0e
+0f
+10
+11
+12
+00
+aa
+55
+03
+00
+a5
+4a
+03
+01
+00
+aa
+55
+08
+00
+7b
+4a
+14
+15
+16
+17
+18
+19
+1a
+00
+aa
+55
+01
+00
+a8
+4a
+00
+aa
+55
+0b
+00
+b8
+4f
+1e
+1f
+20
+21
+22
+23
+24
+25
+26
+00
+27
+aa
+55
+01
+00
+c4
+4f
+28
+aa
+55
+0b
+00
+c6
+4f
+25
+24
+23
+22
+21
+20
+1f
+1e
+1d
+00
+29
+aa
+55
+01
+00
+d2
+4f
+2a
+aa
+55
+07
+00
+dc
+4f
+02
+01
+1b
+1c
+1b
+1c
+00
+aa
+55
+09
+00
+e5
+4f
+2d
+2e
+2f
+30
+1b
+1c
+1b
+1c
+00
+aa
+55
+01
+00
+d1
+4a
+01
+aa
+55
+01
+00
+db
+4a
+02
+aa
+55
+01
+00
+e5
+4a
+03
+aa
+55
+01
+00
+ef
+4a
+04
+aa
+55
+01
+00
+0d
+4b
+00
+aa
+55
+03
+00
+c7
+4e
+00
+ff
+00
+aa
+55
+01
+00
+c0
+4e
+01
+aa
+55
+a4
+02
+02
+4c
+02
+1b
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+02
+1b
+00
+01
+00
+00
+00
+00
+00
+00
+00
+00
+00
+02
+1b
+00
+02
+00
+00
+00
+00
+00
+00
+00
+00
+00
+02
+1b
+00
+04
+00
+00
+00
+00
+00
+00
+00
+00
+00
+02
+1b
+00
+08
+00
+00
+00
+00
+00
+00
+00
+00
+00
+02
+1b
+00
+10
+00
+00
+00
+00
+00
+00
+00
+00
+00
+02
+1b
+00
+20
+00
+00
+00
+00
+00
+00
+00
+00
+00
+02
+1b
+00
+40
+00
+00
+00
+00
+00
+00
+00
+00
+00
+02
+1b
+00
+80
+00
+00
+00
+00
+00
+00
+00
+00
+00
+0a
+23
+00
+00
+f4
+07
+80
+02
+04
+f4
+07
+80
+02
+0a
+23
+00
+83
+f4
+07
+80
+03
+04
+f4
+07
+80
+03
+0a
+23
+00
+83
+f4
+07
+40
+04
+04
+f4
+07
+40
+04
+0a
+23
+00
+83
+f4
+07
+80
+05
+04
+f4
+07
+80
+05
+0a
+23
+00
+83
+f4
+07
+40
+06
+04
+f4
+07
+40
+06
+0a
+23
+00
+83
+f4
+07
+80
+07
+04
+f4
+07
+80
+07
+0a
+23
+00
+83
+f4
+07
+40
+08
+04
+f4
+07
+40
+08
+0a
+23
+00
+83
+f4
+07
+80
+09
+04
+f4
+07
+80
+09
+0a
+23
+00
+00
+f4
+07
+40
+0a
+04
+f4
+07
+40
+0a
+0a
+23
+00
+00
+40
+00
+80
+08
+04
+40
+00
+40
+04
+0a
+23
+00
+83
+80
+02
+80
+08
+04
+80
+02
+40
+04
+0a
+23
+00
+83
+40
+04
+80
+08
+04
+40
+05
+40
+04
+0a
+23
+00
+83
+80
+06
+80
+08
+04
+80
+07
+40
+04
+0a
+23
+00
+83
+40
+08
+80
+08
+04
+40
+09
+40
+04
+0a
+23
+00
+83
+80
+0a
+80
+08
+04
+80
+0b
+40
+04
+0a
+23
+00
+83
+40
+0c
+80
+08
+04
+40
+0d
+40
+04
+0a
+23
+00
+00
+80
+0d
+80
+08
+04
+80
+0e
+40
+04
+0a
+23
+00
+83
+f0
+07
+80
+07
+04
+f0
+07
+80
+07
+0a
+23
+00
+00
+f0
+07
+80
+07
+04
+f0
+07
+80
+07
+0a
+23
+00
+00
+00
+06
+20
+07
+04
+00
+06
+00
+03
+0a
+23
+00
+83
+00
+06
+40
+07
+87
+00
+06
+00
+03
+0a
+23
+00
+83
+00
+06
+60
+07
+87
+00
+06
+00
+03
+0a
+23
+00
+83
+00
+06
+80
+07
+87
+00
+06
+00
+03
+0a
+23
+00
+83
+00
+06
+90
+07
+87
+00
+06
+00
+03
+0a
+23
+00
+83
+00
+06
+a0
+07
+87
+00
+06
+00
+03
+0a
+23
+00
+83
+00
+06
+b0
+07
+87
+00
+06
+00
+03
+0a
+23
+00
+83
+00
+06
+d0
+07
+87
+00
+06
+00
+03
+0a
+23
+00
+83
+00
+06
+e0
+07
+87
+00
+06
+00
+03
+0a
+23
+00
+00
+00
+06
+e0
+07
+04
+00
+06
+00
+03
+0a
+23
+00
+83
+00
+04
+50
+06
+87
+00
+04
+00
+02
+0a
+23
+00
+00
+00
+04
+50
+06
+00
+00
+04
+00
+02
+0a
+23
+00
+83
+00
+04
+00
+0a
+87
+00
+04
+00
+02
+0a
+23
+00
+00
+00
+04
+00
+0a
+00
+00
+04
+00
+02
+0a
+23
+00
+83
+80
+0d
+f1
+0d
+87
+80
+0c
+f1
+0c
+0a
+23
+00
+00
+80
+0d
+f1
+0d
+04
+80
+0c
+f1
+0c
+0a
+23
+00
+83
+b0
+0e
+10
+0e
+87
+80
+0e
+f0
+0e
+0a
+23
+00
+00
+b0
+0e
+10
+0e
+04
+80
+0e
+f0
+0e
+0a
+23
+00
+83
+a0
+0d
+f0
+0e
+87
+a0
+0d
+a0
+0e
+0a
+23
+00
+00
+a0
+0d
+f0
+0e
+04
+a0
+0d
+a0
+0e
+0a
+23
+00
+83
+00
+06
+10
+07
+87
+00
+06
+00
+03
+0a
+23
+00
+83
+00
+06
+20
+07
+87
+00
+06
+00
+03
+0a
+23
+00
+83
+f0
+07
+05
+0e
+04
+f0
+07
+05
+0e
+0a
+23
+00
+00
+f0
+07
+05
+0e
+04
+f0
+07
+05
+0e
+aa
+55
+03
+00
+17
+4b
+00
+00
+00
+aa
+55
+08
+00
+02
+4f
+06
+00
+0a
+00
+10
+00
+2c
+01
+aa
+55
+08
+00
+b0
+4f
+16
+00
+16
+00
+10
+00
+2c
+01
+aa
+55
+9c
+01
+d2
+46
+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
+01
+05
+0e
+00
+0a
+02
+40
+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
+10
+13
+00
+02
+4d
+2a
+07
+00
+00
+00
+00
+00
+00
+00
+14
+00
+02
+02
+29
+02
+00
+00
+15
+00
+02
+08
+29
+02
+01
+01
+16
+00
+02
+03
+28
+01
+10
+17
+00
+02
+4d
+2a
+03
+00
+00
+00
+18
+00
+02
+02
+29
+02
+00
+00
+19
+00
+02
+08
+29
+02
+04
+01
+1a
+00
+02
+03
+28
+01
+10
+1b
+00
+02
+4d
+2a
+02
+00
+00
+1c
+00
+02
+02
+29
+02
+00
+00
+1d
+00
+02
+08
+29
+02
+03
+01
+1e
+00
+02
+03
+28
+01
+10
+1f
+00
+02
+4d
+2a
+03
+00
+00
+00
+20
+00
+02
+02
+29
+02
+00
+00
+21
+00
+02
+08
+29
+02
+05
+01
+22
+00
+02
+03
+28
+01
+10
+23
+00
+02
+4d
+2a
+0a
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+24
+00
+02
+02
+29
+02
+00
+00
+25
+00
+02
+08
+29
+02
+06
+01
+26
+00
+02
+03
+28
+01
+12
+27
+00
+02
+4d
+2a
+02
+00
+00
+28
+00
+02
+02
+29
+02
+00
+00
+29
+00
+02
+08
+29
+02
+02
+01
+2a
+00
+02
+03
+28
+01
+02
+2b
+00
+02
+4b
+2a
+01
+00
+2c
+00
+02
+03
+28
+01
+02
+2d
+00
+02
+4a
+2a
+04
+11
+01
+00
+01
+2e
+00
+02
+03
+28
+01
+04
+2f
+00
+02
+4c
+2a
+01
+00
+30
+00
+02
+00
+28
+02
+0f
+18
+00
+00
+aa
+55
+04
+00
+d0
+49
+f3
+00
+f3
+00
+aa
+55
+f3
+00
+ae
+48
+05
+0c
+09
+01
+a1
+01
+85
+03
+09
+82
+09
+e9
+09
+ea
+09
+30
+09
+40
+0a
+23
+02
+0a
+2d
+02
+0a
+2e
+02
+15
+00
+25
+01
+75
+01
+95
+08
+81
+02
+c0
+05
+0d
+09
+04
+a1
+01
+85
+06
+09
+22
+a1
+02
+09
+42
+15
+00
+25
+01
+75
+01
+95
+01
+81
+02
+09
+32
+15
+00
+25
+01
+81
+02
+09
+51
+75
+05
+95
+01
+16
+00
+00
+26
+f0
+0f
+81
+02
+09
+47
+75
+01
+95
+01
+81
+02
+05
+01
+26
+ff
+0f
+75
+10
+55
+0d
+65
+33
+09
+30
+35
+00
+46
+00
+10
+81
+02
+09
+31
+46
+8a
+03
+81
+02
+c0
+05
+0d
+09
+05
+a1
+01
+09
+22
+a1
+02
+09
+42
+15
+00
+25
+01
+75
+01
+95
+01
+81
+02
+09
+32
+15
+00
+25
+01
+81
+02
+09
+51
+75
+05
+95
+01
+16
+00
+00
+26
+f0
+0f
+81
+02
+09
+47
+75
+01
+95
+01
+81
+02
+05
+01
+26
+ff
+0f
+75
+10
+55
+0d
+65
+33
+09
+30
+35
+00
+46
+00
+10
+81
+02
+09
+31
+46
+8a
+03
+81
+02
+c0
+c0
+05
+01
+09
+06
+a1
+01
+85
+05
+05
+04
+19
+e0
+29
+e7
+15
+00
+25
+01
+75
+01
+95
+08
+81
+02
+75
+08
+95
+01
+15
+00
+25
+f4
+05
+04
+19
+00
+29
+f4
+81
+00
+c0
+c0
+aa
+55
+10
+00
+d4
+49
+d0
+00
+2d
+12
+1e
+4b
+0f
+a4
+99
+4e
+ce
+b5
+31
+f4
+05
+79
+aa
+55
+01
+00
+48
+41
+0c
+aa
+55
+06
+00
+c3
+40
+70
+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
+3a
+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
+30
+aa
+55
+05
+00
+43
+41
+ff
+04
+00
+00
+08
+aa
+55
+01
+00
+07
+44
+01
+aa
+55
+01
+00
+09
+44
+0a
+aa
+55
+01
+00
+08
+44
+00
+aa
+55
+01
+00
+11
+44
+00
+aa
+55
+04
+00
+0d
+44
+00
+07
+ff
+07
+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
+7a
+98
+b4
+70
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+1a
+c4
Index: output/flash.dat
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/output/flash.dat	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/output/flash.dat	(working copy)
@@ -0,0 +1,8192 @@
+00
+02
+aa
+55
+8a
+11
+c2
+84
+00
+18
+c0
+00
+00
+51
+c0
+01
+01
+1d
+c0
+08
+81
+26
+c0
+0a
+03
+04
+c0
+0a
+81
+b3
+c0
+0c
+01
+c1
+c0
+0c
+81
+80
+c0
+0d
+01
+38
+c0
+12
+83
+26
+c0
+13
+80
+7c
+c0
+51
+80
+c2
+c0
+52
+80
+fa
+c0
+53
+00
+87
+c0
+53
+80
+98
+c0
+55
+00
+ea
+c0
+58
+81
+d3
+c0
+62
+00
+1f
+c0
+62
+81
+c8
+c0
+6d
+02
+ed
+c0
+6d
+84
+09
+c0
+6e
+04
+46
+c0
+6e
+84
+27
+20
+20
+23
+5a
+c0
+12
+00
+55
+c0
+12
+80
+d3
+c0
+13
+00
+d8
+c0
+1c
+83
+20
+c0
+26
+83
+24
+c1
+7f
+80
+00
+20
+20
+23
+5a
+20
+40
+6b
+34
+20
+40
+6b
+41
+20
+40
+6b
+3b
+e8
+40
+80
+11
+1a
+20
+a2
+01
+18
+00
+0e
+00
+79
+3f
+80
+22
+a8
+4c
+00
+00
+20
+20
+80
+49
+6f
+f0
+80
+46
+79
+20
+7e
+06
+79
+20
+7e
+07
+67
+f0
+80
+46
+70
+80
+47
+02
+70
+80
+47
+82
+79
+3f
+fe
+07
+67
+f0
+80
+46
+70
+80
+47
+8a
+20
+00
+00
+0b
+70
+80
+47
+ca
+20
+00
+00
+21
+70
+80
+47
+4a
+20
+00
+00
+2c
+70
+80
+47
+ca
+20
+00
+00
+16
+70
+80
+47
+8a
+20
+00
+00
+21
+70
+80
+47
+82
+20
+00
+00
+01
+70
+80
+47
+92
+20
+00
+00
+0a
+70
+80
+47
+b2
+6f
+f0
+80
+07
+70
+80
+47
+92
+20
+00
+00
+01
+70
+80
+47
+82
+20
+00
+00
+01
+af
+ec
+00
+00
+20
+20
+80
+25
+c5
+11
+00
+49
+79
+20
+00
+22
+20
+20
+00
+26
+6f
+f1
+00
+44
+1f
+e0
+fe
+01
+67
+f1
+00
+44
+18
+e0
+8e
+01
+28
+e0
+1e
+08
+24
+20
+80
+25
+c2
+00
+00
+22
+20
+20
+6b
+38
+24
+35
+a0
+02
+37
+d9
+82
+00
+37
+d9
+82
+00
+20
+20
+20
+02
+20
+40
+25
+c2
+c5
+97
+80
+5b
+78
+3c
+fc
+00
+20
+00
+00
+1e
+20
+40
+25
+c2
+19
+69
+96
+00
+78
+56
+fc
+00
+78
+26
+fc
+00
+78
+30
+fc
+00
+78
+50
+7c
+00
+19
+62
+36
+00
+37
+c1
+84
+00
+20
+37
+00
+64
+1b
+42
+04
+00
+60
+4b
+00
+0f
+24
+2c
+26
+fa
+78
+28
+7c
+00
+6f
+e0
+c1
+67
+d8
+40
+4e
+20
+98
+40
+84
+00
+6f
+e0
+c1
+48
+98
+4f
+b6
+00
+20
+40
+68
+77
+20
+37
+26
+77
+20
+40
+00
+72
+6f
+e0
+81
+68
+c3
+01
+a6
+77
+20
+55
+a4
+77
+20
+20
+26
+77
+68
+4b
+00
+0f
+1b
+42
+7e
+00
+20
+40
+7d
+12
+1f
+e2
+04
+00
+20
+40
+26
+ff
+1b
+42
+56
+00
+1d
+22
+7e
+00
+98
+40
+fe
+00
+1f
+e2
+52
+00
+20
+60
+00
+00
+c5
+84
+a4
+89
+68
+4a
+40
+ad
+df
+e0
+06
+00
+98
+46
+7c
+00
+20
+61
+00
+00
+18
+42
+22
+00
+68
+4b
+00
+0f
+1d
+62
+7e
+00
+20
+40
+7d
+10
+1a
+22
+04
+00
+20
+20
+24
+7d
+18
+e2
+7e
+00
+c0
+00
+e7
+77
+c0
+02
+e7
+65
+c0
+00
+67
+61
+c0
+03
+00
+90
+c0
+03
+80
+93
+c0
+04
+00
+96
+c0
+04
+80
+97
+20
+20
+65
+a2
+70
+4f
+d9
+01
+70
+4f
+da
+01
+20
+60
+00
+00
+70
+4f
+d9
+01
+70
+4f
+da
+02
+20
+60
+00
+00
+20
+60
+00
+00
+20
+60
+00
+00
+6f
+e0
+ce
+c7
+c0
+00
+e5
+cf
+20
+40
+66
+28
+20
+40
+00
+9e
+20
+74
+00
+00
+20
+20
+65
+cf
+d8
+e0
+00
+00
+da
+40
+4a
+c3
+df
+e0
+00
+02
+98
+ef
+fe
+00
+9a
+40
+a4
+00
+ef
+e1
+00
+12
+20
+7a
+00
+00
+68
+49
+06
+f1
+98
+42
+fc
+00
+20
+22
+80
+aa
+18
+e0
+8e
+01
+20
+20
+00
+9f
+67
+e1
+4a
+cf
+20
+40
+43
+23
+da
+60
+4a
+d1
+df
+e0
+00
+0a
+98
+ef
+fe
+00
+9a
+60
+a6
+00
+20
+20
+66
+33
+6f
+e1
+4a
+cf
+20
+7a
+00
+00
+68
+49
+06
+f1
+18
+46
+7c
+00
+20
+22
+80
+b7
+20
+20
+00
+b6
+70
+4e
+c0
+01
+20
+40
+43
+25
+da
+60
+4b
+0d
+58
+00
+00
+00
+67
+e1
+4a
+cf
+70
+48
+9e
+32
+20
+40
+66
+33
+6f
+e0
+c5
+23
+1f
+ef
+f2
+0a
+d8
+a0
+45
+fd
+20
+20
+7c
+a1
+6f
+e0
+cf
+9f
+24
+3a
+00
+cc
+70
+4c
+00
+01
+20
+40
+43
+23
+20
+40
+00
+cf
+20
+40
+65
+61
+20
+21
+65
+00
+18
+e2
+7e
+00
+67
+e0
+ce
+c5
+20
+60
+00
+00
+18
+e2
+7e
+00
+c1
+80
+80
+00
+20
+20
+00
+c4
+df
+e0
+00
+0a
+98
+ef
+fe
+00
+da
+60
+45
+fd
+20
+20
+65
+2f
+20
+40
+28
+1c
+6a
+20
+80
+4d
+1a
+20
+a3
+fc
+24
+21
+26
+fa
+20
+20
+26
+8e
+09
+80
+00
+18
+1f
+ef
+7e
+00
+1f
+f1
+7e
+00
+e7
+e1
+80
+05
+78
+28
+7c
+00
+20
+40
+27
+0d
+20
+23
+26
+f6
+c5
+99
+26
+af
+6f
+e0
+80
+4d
+20
+3a
+26
+af
+1f
+e0
+ff
+fc
+67
+e0
+80
+4d
+20
+40
+72
+cb
+6f
+f0
+81
+08
+c3
+03
+a6
+fa
+18
+00
+70
+0c
+65
+e2
+01
+54
+20
+20
+26
+af
+1a
+22
+0c
+00
+ef
+e1
+80
+06
+67
+e1
+c3
+97
+c0
+03
+e7
+04
+c0
+00
+80
+f0
+20
+20
+66
+db
+18
+c0
+8d
+fe
+ef
+e0
+80
+06
+c0
+03
+00
+f4
+20
+60
+00
+00
+20
+20
+00
+f5
+70
+4e
+aa
+01
+70
+49
+e4
+00
+70
+4e
+b2
+00
+70
+49
+e5
+0a
+20
+60
+00
+00
+20
+40
+65
+4b
+df
+e0
+00
+0a
+98
+ef
+fe
+00
+da
+60
+45
+fd
+9a
+60
+a6
+00
+e8
+42
+00
+13
+18
+46
+7c
+00
+20
+62
+80
+00
+1c
+42
+7e
+00
+98
+46
+04
+00
+24
+41
+78
+06
+1a
+60
+8c
+09
+ef
+e0
+80
+06
+24
+3a
+01
+09
+20
+20
+65
+47
+70
+4e
+c0
+01
+20
+40
+65
+6b
+20
+40
+67
+69
+18
+e2
+7e
+00
+c0
+03
+01
+12
+c0
+03
+81
+16
+da
+60
+4a
+ae
+df
+e0
+00
+03
+20
+20
+65
+5a
+20
+40
+01
+1a
+20
+40
+03
+8f
+da
+60
+4f
+c4
+20
+20
+63
+71
+20
+40
+01
+1a
+20
+40
+03
+b2
+da
+60
+4f
+d2
+20
+20
+63
+71
+70
+4f
+d9
+00
+70
+4f
+da
+00
+20
+60
+00
+00
+20
+40
+75
+52
+20
+40
+74
+48
+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
+01
+1d
+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
+37
+d9
+82
+00
+70
+81
+3c
+58
+37
+d9
+82
+00
+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
+88
+40
+70
+8a
+13
+cd
+70
+8a
+06
+10
+70
+8a
+84
+4a
+70
+8a
+85
+40
+70
+8a
+16
+fe
+20
+40
+01
+88
+6f
+e0
+c4
+36
+20
+5a
+70
+d7
+24
+55
+81
+34
+37
+d9
+82
+00
+70
+81
+3b
+5f
+6f
+e0
+c0
+99
+c0
+08
+01
+75
+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
+01
+67
+70
+80
+43
+00
+70
+80
+42
+05
+58
+55
+74
+74
+67
+f1
+89
+68
+70
+89
+60
+6e
+20
+40
+02
+bf
+20
+40
+02
+ea
+20
+40
+01
+61
+70
+41
+48
+0c
+20
+40
+6f
+4e
+20
+20
+02
+ec
+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
+01
+6d
+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
+01
+53
+6f
+e0
+c1
+41
+c0
+05
+01
+83
+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
+35
+81
+af
+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
+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
+01
+99
+20
+40
+68
+6f
+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
+20
+40
+6b
+3a
+20
+40
+6b
+75
+20
+20
+6b
+38
+6f
+e0
+ce
+e3
+1f
+e2
+72
+00
+67
+e0
+c5
+23
+58
+00
+45
+23
+67
+e1
+44
+2c
+d8
+c0
+4e
+e4
+d8
+a0
+45
+26
+20
+20
+7c
+da
+20
+40
+73
+96
+20
+75
+80
+00
+20
+40
+42
+a3
+20
+40
+03
+c5
+70
+40
+94
+00
+20
+40
+01
+cb
+20
+40
+64
+59
+58
+00
+00
+01
+67
+e1
+44
+f6
+70
+40
+a6
+0a
+58
+00
+02
+4d
+67
+e1
+43
+db
+58
+00
+02
+2a
+67
+e1
+43
+dd
+58
+00
+02
+3f
+67
+e1
+43
+df
+58
+00
+62
+d3
+67
+e1
+43
+d3
+58
+00
+01
+f7
+67
+e1
+43
+d5
+58
+00
+63
+29
+67
+e1
+43
+d7
+58
+00
+02
+0c
+67
+e1
+43
+e3
+58
+00
+65
+05
+67
+e1
+45
+24
+58
+00
+63
+40
+67
+e1
+45
+1f
+58
+00
+63
+9a
+67
+e1
+45
+21
+20
+40
+62
+ca
+6f
+e1
+4f
+87
+67
+e1
+43
+32
+6f
+e4
+45
+0a
+67
+e4
+45
+02
+20
+20
+62
+bd
+20
+40
+6f
+35
+70
+44
+ec
+ff
+20
+40
+01
+fc
+20
+40
+70
+1b
+20
+20
+73
+9a
+6f
+e0
+c6
+ce
+20
+7a
+00
+00
+6f
+e0
+ce
+e3
+1f
+e2
+72
+00
+da
+20
+45
+26
+ef
+e0
+80
+11
+68
+48
+c6
+cf
+98
+46
+7c
+00
+20
+22
+82
+07
+1f
+e2
+04
+00
+20
+40
+02
+0a
+1a
+20
+a2
+01
+c2
+00
+02
+01
+20
+60
+00
+00
+79
+20
+04
+07
+20
+20
+6e
+dd
+20
+40
+03
+cd
+20
+40
+02
+12
+20
+40
+67
+6c
+20
+40
+67
+5a
+20
+40
+02
+23
+20
+20
+64
+d9
+da
+60
+4f
+ee
+da
+40
+02
+15
+20
+20
+42
+e0
+6f
+e0
+cf
+ef
+70
+4f
+ef
+00
+c0
+00
+82
+1a
+c0
+01
+02
+1c
+20
+60
+00
+00
+da
+60
+4a
+3f
+20
+20
+63
+71
+20
+40
+02
+1e
+20
+20
+63
+71
+da
+60
+4f
+dc
+20
+40
+67
+30
+20
+7a
+00
+00
+da
+60
+4f
+e5
+20
+60
+00
+00
+da
+60
+45
+18
+da
+40
+02
+26
+20
+20
+42
+e7
+70
+45
+1c
+02
+20
+40
+43
+25
+20
+40
+63
+4e
+20
+20
+63
+9e
+1a
+62
+7e
+00
+c0
+20
+02
+36
+c0
+18
+82
+34
+c0
+0a
+82
+31
+c0
+0a
+02
+30
+20
+20
+64
+e0
+20
+20
+64
+f4
+6f
+e1
+45
+12
+67
+e1
+45
+18
+20
+20
+64
+ef
+70
+4e
+c2
+01
+20
+60
+00
+00
+6f
+e1
+43
+3c
+c1
+00
+00
+00
+6f
+e4
+45
+0a
+20
+7a
+00
+00
+20
+40
+67
+30
+24
+3a
+02
+4a
+6f
+e4
+4f
+02
+67
+e4
+42
+d3
+20
+20
+2e
+93
+6f
+e1
+43
+98
+c0
+12
+02
+42
+20
+60
+00
+00
+20
+40
+78
+ad
+70
+44
+f1
+01
+20
+40
+67
+30
+20
+40
+43
+2b
+24
+3a
+02
+4a
+6f
+e4
+4f
+02
+67
+e4
+42
+d3
+20
+20
+2e
+93
+6f
+e4
+4f
+b0
+67
+e4
+42
+d3
+20
+20
+2e
+93
+20
+40
+02
+58
+d8
+e0
+00
+09
+20
+40
+7c
+ef
+24
+7a
+00
+00
+58
+00
+00
+20
+d8
+e0
+00
+09
+20
+40
+7c
+e1
+78
+54
+7c
+00
+20
+40
+70
+1b
+20
+40
+02
+72
+20
+20
+03
+4f
+6f
+e1
+44
+e9
+c2
+84
+82
+5d
+d8
+a0
+45
+da
+df
+20
+00
+23
+20
+20
+7c
+a1
+20
+40
+2a
+28
+24
+7a
+00
+00
+20
+40
+78
+fa
+20
+7a
+00
+00
+68
+4a
+49
+e6
+1c
+42
+7e
+00
+98
+46
+04
+00
+20
+62
+80
+00
+24
+21
+02
+69
+6f
+e0
+c9
+e5
+98
+46
+7c
+00
+20
+61
+00
+00
+1c
+42
+7e
+00
+67
+e2
+49
+e6
+20
+40
+63
+85
+24
+74
+00
+00
+1f
+e0
+ff
+ff
+1f
+ef
+fe
+0d
+d8
+40
+4c
+02
+98
+40
+8c
+00
+20
+20
+63
+cb
+6f
+e1
+48
+ac
+67
+e1
+44
+2e
+20
+40
+65
+be
+6f
+e1
+44
+2e
+67
+e1
+48
+ac
+d8
+e0
+00
+00
+6f
+e0
+c5
+23
+1f
+e2
+72
+00
+da
+60
+45
+fd
+1f
+22
+7e
+00
+67
+e1
+06
+78
+1a
+62
+7e
+00
+67
+e1
+06
+8c
+18
+e2
+7e
+00
+67
+e1
+06
+7a
+20
+40
+02
+8f
+6f
+e1
+06
+8c
+1f
+e2
+26
+00
+6f
+e1
+06
+7a
+1f
+e2
+0e
+00
+20
+40
+65
+8b
+6f
+e1
+06
+7a
+1f
+e0
+8e
+01
+6f
+e1
+06
+8c
+1f
+e0
+a6
+0a
+6f
+e1
+06
+78
+1f
+e2
+72
+00
+c2
+00
+02
+7b
+20
+60
+00
+00
+1a
+60
+a4
+05
+ef
+e2
+00
+12
+20
+7a
+00
+00
+1f
+e2
+04
+00
+1c
+42
+7e
+00
+98
+46
+04
+00
+24
+41
+78
+06
+58
+00
+03
+e8
+98
+46
+7c
+00
+20
+20
+02
+99
+1a
+60
+8c
+04
+ef
+e0
+80
+06
+20
+20
+02
+9c
+20
+40
+65
+6b
+20
+40
+65
+61
+20
+21
+65
+00
+20
+40
+02
+b7
+18
+e2
+7e
+00
+c0
+03
+02
+a6
+c0
+03
+82
+a8
+c0
+04
+02
+aa
+c0
+00
+82
+b1
+20
+20
+65
+58
+da
+60
+4f
+b8
+20
+20
+63
+71
+da
+60
+4f
+c6
+20
+20
+63
+71
+20
+40
+02
+ac
+20
+20
+63
+71
+da
+60
+4f
+dc
+20
+40
+67
+30
+20
+7a
+00
+00
+da
+60
+4f
+e5
+20
+60
+00
+00
+70
+4f
+ee
+05
+6f
+e0
+cf
+ef
+c1
+01
+00
+00
+1f
+e0
+fe
+01
+67
+e0
+cf
+ef
+20
+60
+00
+00
+da
+60
+4a
+30
+70
+49
+e5
+5a
+20
+40
+67
+30
+20
+7a
+00
+00
+da
+60
+4b
+57
+18
+e2
+7e
+00
+70
+49
+e5
+14
+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
+02
+dc
+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
+02
+dc
+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
+02
+d1
+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
+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
+02
+fd
+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
+82
+fe
+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
+03
+1d
+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
+03
+1a
+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
+03
+16
+58
+00
+83
+12
+67
+f1
+09
+07
+20
+20
+03
+0b
+6f
+e0
+c3
+34
+c1
+00
+00
+00
+c0
+01
+b0
+4a
+20
+20
+28
+e1
+79
+3f
+80
+30
+20
+20
+2a
+f6
+6f
+e1
+43
+e9
+20
+40
+7d
+79
+6f
+e2
+40
+ad
+98
+40
+fe
+00
+67
+e2
+40
+ad
+20
+40
+03
+37
+6f
+e0
+c0
+cb
+79
+20
+7e
+04
+20
+40
+23
+e1
+24
+55
+a3
+cb
+37
+d9
+82
+00
+1b
+22
+7e
+00
+67
+e3
+40
+b1
+6f
+e1
+c0
+c6
+6a
+20
+c0
+c9
+df
+20
+00
+03
+20
+20
+24
+2e
+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
+83
+4a
+e7
+e0
+80
+13
+37
+d9
+82
+00
+1a
+20
+a2
+01
+1a
+60
+a6
+01
+c2
+00
+03
+44
+1a
+42
+04
+00
+20
+60
+00
+00
+da
+20
+00
+00
+68
+4a
+4f
+d5
+1c
+42
+24
+00
+1a
+42
+7e
+00
+98
+46
+7c
+00
+24
+41
+78
+06
+1a
+42
+7e
+00
+18
+40
+84
+40
+98
+46
+7c
+00
+24
+21
+03
+61
+1a
+20
+a2
+01
+1a
+21
+7e
+0f
+24
+3a
+03
+55
+da
+20
+00
+00
+20
+40
+03
+66
+1c
+42
+7e
+00
+67
+e2
+4f
+d5
+20
+60
+00
+00
+1a
+22
+7e
+00
+20
+7a
+00
+00
+18
+40
+85
+c0
+79
+3f
+84
+1c
+60
+4a
+4f
+d5
+67
+e0
+cf
+d4
+6f
+e0
+cf
+d4
+20
+7a
+00
+00
+1f
+e0
+ff
+ff
+67
+e0
+cf
+d4
+20
+40
+03
+6d
+20
+20
+03
+67
+da
+60
+4f
+d9
+da
+40
+03
+70
+20
+20
+42
+e0
+6f
+e0
+cf
+da
+c0
+00
+83
+74
+c0
+01
+03
+97
+20
+60
+00
+00
+20
+40
+67
+30
+24
+3a
+03
+83
+70
+49
+e5
+08
+70
+4f
+d9
+01
+6f
+e0
+cf
+db
+1f
+e0
+fe
+02
+67
+e0
+cf
+db
+1f
+e6
+7c
+5a
+20
+42
+83
+8f
+da
+60
+4f
+c2
+20
+40
+03
+ba
+ef
+e1
+00
+3f
+1f
+e0
+fe
+0a
+e7
+e1
+00
+11
+20
+20
+63
+71
+20
+40
+03
+c2
+6f
+e0
+cf
+db
+1f
+e0
+fe
+01
+67
+e0
+cf
+db
+1f
+e6
+7c
+5a
+20
+42
+83
+8f
+da
+60
+4f
+c2
+20
+40
+03
+ba
+ef
+e1
+00
+3f
+1f
+e0
+fe
+12
+e7
+e1
+00
+11
+20
+20
+63
+71
+70
+4f
+db
+00
+da
+60
+4f
+c4
+20
+40
+63
+71
+da
+60
+4f
+c2
+20
+40
+03
+ba
+58
+00
+06
+50
+e7
+e1
+00
+11
+20
+60
+00
+00
+20
+40
+67
+30
+24
+3a
+03
+a6
+70
+49
+e5
+08
+70
+4f
+d9
+01
+6f
+e0
+cf
+db
+1f
+e0
+fe
+02
+67
+e0
+cf
+db
+1f
+e6
+7c
+5a
+20
+42
+83
+b2
+da
+60
+4f
+d0
+20
+40
+03
+ba
+ef
+e1
+00
+3f
+1f
+e0
+ff
+f6
+e7
+e1
+00
+11
+20
+20
+63
+71
+20
+40
+03
+c2
+6f
+e0
+cf
+db
+1f
+e0
+fe
+01
+67
+e0
+cf
+db
+1f
+e6
+7c
+5a
+20
+42
+83
+b2
+da
+60
+4f
+d0
+20
+40
+03
+ba
+ef
+e1
+00
+3f
+1f
+e0
+ff
+ee
+e7
+e1
+00
+11
+20
+20
+63
+71
+70
+4f
+db
+00
+da
+60
+4f
+d2
+20
+40
+63
+71
+da
+60
+4f
+d0
+20
+40
+03
+ba
+58
+00
+0a
+00
+e7
+e1
+00
+11
+20
+60
+00
+00
+d8
+40
+4c
+02
+ef
+e0
+80
+13
+1f
+e0
+ff
+ff
+1f
+ef
+fe
+0d
+98
+40
+fe
+00
+1f
+e0
+fe
+06
+1f
+e2
+22
+00
+20
+60
+00
+00
+70
+49
+e5
+01
+70
+4f
+d9
+03
+20
+60
+00
+00
+70
+4f
+f8
+01
+20
+60
+00
+00
+6f
+e0
+cf
+f9
+1f
+e0
+fe
+01
+67
+e0
+cf
+f9
+68
+48
+cf
+fd
+98
+46
+7c
+00
+20
+60
+00
+00
+6f
+e0
+cf
+f8
+20
+7a
+00
+00
+20
+40
+03
+c7
+24
+61
+00
+00
+70
+4f
+f9
+00
+70
+44
+07
+01
+20
+40
+6f
+f3
+20
+40
+6f
+eb
+20
+40
+04
+46
+20
+40
+04
+27
+67
+e1
+4f
+f6
+da
+20
+4f
+f0
+20
+40
+03
+df
+6f
+e0
+c4
+0c
+c2
+80
+83
+ff
+c3
+00
+04
+03
+70
+4f
+fb
+01
+20
+20
+04
+01
+ef
+e4
+00
+11
+67
+e4
+06
+70
+20
+40
+6f
+f3
+20
+40
+6f
+eb
+6f
+e1
+06
+76
+68
+49
+06
+72
+98
+46
+7c
+00
+24
+41
+6f
+ef
+68
+49
+06
+74
+98
+46
+7c
+00
+24
+41
+6f
+e7
+6f
+e1
+06
+76
+68
+49
+06
+70
+98
+46
+7c
+00
+20
+21
+03
+fb
+68
+49
+06
+72
+98
+46
+7e
+00
+24
+21
+03
+fd
+20
+3a
+03
+fd
+1f
+ef
+a2
+64
+6f
+e1
+06
+70
+68
+49
+06
+72
+98
+46
+04
+00
+1a
+22
+7e
+00
+98
+46
+fc
+00
+20
+40
+7d
+5f
+67
+e0
+cf
+fc
+20
+60
+00
+00
+70
+4f
+fc
+64
+20
+60
+00
+00
+70
+4f
+fc
+00
+20
+60
+00
+00
+20
+40
+43
+25
+20
+20
+43
+27
+70
+4f
+fa
+01
+20
+60
+00
+00
+70
+4f
+fa
+00
+6f
+e0
+cf
+fb
+20
+7a
+00
+00
+20
+40
+43
+25
+70
+4f
+fb
+00
+20
+60
+00
+00
+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
+41
+4e
+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
+84
+2b
+c0
+01
+04
+32
+20
+60
+00
+00
+58
+00
+03
+e8
+67
+e1
+44
+05
+68
+49
+41
+52
+6f
+e1
+41
+54
+da
+60
+0e
+10
+20
+40
+6f
+c0
+20
+20
+04
+38
+58
+00
+03
+e8
+67
+e1
+44
+05
+68
+49
+41
+4e
+6f
+e1
+41
+50
+da
+60
+03
+e8
+20
+40
+6f
+c0
+68
+49
+41
+56
+98
+4f
+fe
+00
+68
+49
+41
+58
+98
+46
+fc
+00
+20
+20
+7d
+5f
+20
+40
+04
+1a
+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
+04
+3d
+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
+04
+3d
+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
+04
+5f
+68
+59
+01
+64
+60
+49
+41
+58
+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
+84
+5f
+20
+60
+00
+00
+06
+c6
+aa
+55
+40
+00
+00
+40
+05
+00
+32
+07
+a0
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+e8
+04
+02
+00
+30
+00
+00
+3c
+00
+00
+00
+00
+00
+00
+00
+00
+70
+00
+00
+02
+00
+20
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+aa
+55
+01
+00
+cb
+43
+06
+aa
+55
+01
+00
+ec
+44
+ff
+aa
+55
+06
+00
+db
+42
+0d
+21
+21
+98
+07
+2a
+aa
+55
+07
+00
+6b
+42
+06
+53
+65
+6c
+66
+69
+65
+aa
+55
+08
+00
+41
+41
+06
+00
+0a
+0e
+00
+0a
+dd
+00
+aa
+55
+04
+00
+70
+4f
+b0
+1f
+70
+1a
+aa
+55
+02
+00
+87
+4f
+2b
+00
+aa
+55
+08
+00
+74
+4f
+ef
+03
+a0
+06
+07
+00
+06
+00
+aa
+55
+01
+00
+d1
+46
+01
+aa
+55
+01
+00
+d0
+46
+01
+aa
+55
+16
+00
+5a
+4f
+00
+00
+93
+46
+00
+96
+00
+01
+03
+93
+46
+00
+96
+00
+20
+01
+20
+03
+20
+01
+20
+03
+aa
+55
+02
+00
+ce
+46
+00
+ff
+aa
+55
+08
+00
+0a
+4f
+70
+17
+70
+17
+70
+17
+70
+17
+aa
+55
+01
+00
+fd
+4f
+05
+aa
+55
+06
+00
+f0
+4f
+e4
+0c
+00
+00
+bf
+09
+aa
+55
+0b
+00
+e3
+4e
+0a
+ff
+12
+ff
+01
+ff
+ff
+06
+0f
+ff
+ff
+aa
+55
+0a
+00
+c3
+4a
+60
+00
+41
+00
+50
+00
+44
+00
+00
+00
+aa
+55
+02
+00
+c3
+4e
+40
+00
+aa
+55
+01
+00
+b6
+4e
+00
+aa
+55
+01
+00
+cf
+4e
+00
+aa
+55
+01
+00
+d9
+4e
+00
+aa
+55
+01
+00
+ca
+4e
+00
+aa
+55
+08
+00
+57
+4b
+19
+18
+17
+16
+15
+14
+13
+00
+aa
+55
+01
+00
+c0
+4b
+00
+aa
+55
+03
+00
+66
+4b
+1b
+1c
+00
+aa
+55
+06
+00
+97
+4f
+1b
+1c
+1c
+1b
+1c
+00
+aa
+55
+09
+00
+75
+4b
+11
+10
+0f
+0e
+0d
+0c
+0b
+0a
+00
+aa
+55
+03
+00
+84
+4b
+03
+01
+00
+aa
+55
+03
+00
+f4
+4b
+04
+01
+00
+aa
+55
+09
+00
+93
+4b
+0b
+0c
+0d
+0e
+0f
+10
+11
+12
+00
+aa
+55
+08
+00
+a2
+4b
+14
+15
+16
+17
+18
+19
+1a
+00
+aa
+55
+01
+00
+cf
+4b
+00
+aa
+55
+01
+00
+b1
+4b
+00
+aa
+55
+01
+00
+8a
+4a
+00
+aa
+55
+08
+00
+30
+4a
+19
+18
+17
+16
+15
+14
+13
+00
+aa
+55
+01
+00
+99
+4a
+00
+aa
+55
+03
+00
+3f
+4a
+1b
+1c
+00
+aa
+55
+06
+00
+8f
+4f
+1b
+1c
+1c
+1b
+1c
+00
+aa
+55
+09
+00
+4e
+4a
+11
+10
+0f
+0e
+0d
+0c
+0b
+0a
+00
+aa
+55
+03
+00
+9f
+4a
+04
+01
+00
+aa
+55
+05
+00
+5d
+4a
+03
+01
+33
+34
+00
+aa
+55
+05
+00
+ea
+4b
+04
+01
+33
+34
+00
+aa
+55
+09
+00
+6c
+4a
+0b
+0c
+0d
+0e
+0f
+10
+11
+12
+00
+aa
+55
+03
+00
+a5
+4a
+03
+01
+00
+aa
+55
+08
+00
+7b
+4a
+14
+15
+16
+17
+18
+19
+1a
+00
+aa
+55
+01
+00
+a8
+4a
+00
+aa
+55
+0b
+00
+b8
+4f
+1e
+1f
+20
+21
+22
+23
+24
+25
+26
+00
+27
+aa
+55
+01
+00
+c4
+4f
+28
+aa
+55
+0b
+00
+c6
+4f
+25
+24
+23
+22
+21
+20
+1f
+1e
+1d
+00
+29
+aa
+55
+01
+00
+d2
+4f
+2a
+aa
+55
+07
+00
+dc
+4f
+02
+01
+1b
+1c
+1b
+1c
+00
+aa
+55
+09
+00
+e5
+4f
+2d
+2e
+2f
+30
+1b
+1c
+1b
+1c
+00
+aa
+55
+01
+00
+d1
+4a
+01
+aa
+55
+01
+00
+db
+4a
+02
+aa
+55
+01
+00
+e5
+4a
+03
+aa
+55
+01
+00
+ef
+4a
+04
+aa
+55
+01
+00
+0d
+4b
+00
+aa
+55
+03
+00
+c7
+4e
+00
+ff
+00
+aa
+55
+01
+00
+c0
+4e
+01
+aa
+55
+a4
+02
+02
+4c
+02
+1b
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+02
+1b
+00
+01
+00
+00
+00
+00
+00
+00
+00
+00
+00
+02
+1b
+00
+02
+00
+00
+00
+00
+00
+00
+00
+00
+00
+02
+1b
+00
+04
+00
+00
+00
+00
+00
+00
+00
+00
+00
+02
+1b
+00
+08
+00
+00
+00
+00
+00
+00
+00
+00
+00
+02
+1b
+00
+10
+00
+00
+00
+00
+00
+00
+00
+00
+00
+02
+1b
+00
+20
+00
+00
+00
+00
+00
+00
+00
+00
+00
+02
+1b
+00
+40
+00
+00
+00
+00
+00
+00
+00
+00
+00
+02
+1b
+00
+80
+00
+00
+00
+00
+00
+00
+00
+00
+00
+0a
+23
+00
+00
+f4
+07
+80
+02
+04
+f4
+07
+80
+02
+0a
+23
+00
+83
+f4
+07
+80
+03
+04
+f4
+07
+80
+03
+0a
+23
+00
+83
+f4
+07
+40
+04
+04
+f4
+07
+40
+04
+0a
+23
+00
+83
+f4
+07
+80
+05
+04
+f4
+07
+80
+05
+0a
+23
+00
+83
+f4
+07
+40
+06
+04
+f4
+07
+40
+06
+0a
+23
+00
+83
+f4
+07
+80
+07
+04
+f4
+07
+80
+07
+0a
+23
+00
+83
+f4
+07
+40
+08
+04
+f4
+07
+40
+08
+0a
+23
+00
+83
+f4
+07
+80
+09
+04
+f4
+07
+80
+09
+0a
+23
+00
+00
+f4
+07
+40
+0a
+04
+f4
+07
+40
+0a
+0a
+23
+00
+00
+40
+00
+80
+08
+04
+40
+00
+40
+04
+0a
+23
+00
+83
+80
+02
+80
+08
+04
+80
+02
+40
+04
+0a
+23
+00
+83
+40
+04
+80
+08
+04
+40
+05
+40
+04
+0a
+23
+00
+83
+80
+06
+80
+08
+04
+80
+07
+40
+04
+0a
+23
+00
+83
+40
+08
+80
+08
+04
+40
+09
+40
+04
+0a
+23
+00
+83
+80
+0a
+80
+08
+04
+80
+0b
+40
+04
+0a
+23
+00
+83
+40
+0c
+80
+08
+04
+40
+0d
+40
+04
+0a
+23
+00
+00
+80
+0d
+80
+08
+04
+80
+0e
+40
+04
+0a
+23
+00
+83
+f0
+07
+80
+07
+04
+f0
+07
+80
+07
+0a
+23
+00
+00
+f0
+07
+80
+07
+04
+f0
+07
+80
+07
+0a
+23
+00
+00
+00
+06
+20
+07
+04
+00
+06
+00
+03
+0a
+23
+00
+83
+00
+06
+40
+07
+87
+00
+06
+00
+03
+0a
+23
+00
+83
+00
+06
+60
+07
+87
+00
+06
+00
+03
+0a
+23
+00
+83
+00
+06
+80
+07
+87
+00
+06
+00
+03
+0a
+23
+00
+83
+00
+06
+90
+07
+87
+00
+06
+00
+03
+0a
+23
+00
+83
+00
+06
+a0
+07
+87
+00
+06
+00
+03
+0a
+23
+00
+83
+00
+06
+b0
+07
+87
+00
+06
+00
+03
+0a
+23
+00
+83
+00
+06
+d0
+07
+87
+00
+06
+00
+03
+0a
+23
+00
+83
+00
+06
+e0
+07
+87
+00
+06
+00
+03
+0a
+23
+00
+00
+00
+06
+e0
+07
+04
+00
+06
+00
+03
+0a
+23
+00
+83
+00
+04
+50
+06
+87
+00
+04
+00
+02
+0a
+23
+00
+00
+00
+04
+50
+06
+00
+00
+04
+00
+02
+0a
+23
+00
+83
+00
+04
+00
+0a
+87
+00
+04
+00
+02
+0a
+23
+00
+00
+00
+04
+00
+0a
+00
+00
+04
+00
+02
+0a
+23
+00
+83
+80
+0d
+f1
+0d
+87
+80
+0c
+f1
+0c
+0a
+23
+00
+00
+80
+0d
+f1
+0d
+04
+80
+0c
+f1
+0c
+0a
+23
+00
+83
+b0
+0e
+10
+0e
+87
+80
+0e
+f0
+0e
+0a
+23
+00
+00
+b0
+0e
+10
+0e
+04
+80
+0e
+f0
+0e
+0a
+23
+00
+83
+a0
+0d
+f0
+0e
+87
+a0
+0d
+a0
+0e
+0a
+23
+00
+00
+a0
+0d
+f0
+0e
+04
+a0
+0d
+a0
+0e
+0a
+23
+00
+83
+00
+06
+10
+07
+87
+00
+06
+00
+03
+0a
+23
+00
+83
+00
+06
+20
+07
+87
+00
+06
+00
+03
+0a
+23
+00
+83
+f0
+07
+05
+0e
+04
+f0
+07
+05
+0e
+0a
+23
+00
+00
+f0
+07
+05
+0e
+04
+f0
+07
+05
+0e
+aa
+55
+03
+00
+17
+4b
+00
+00
+00
+aa
+55
+08
+00
+02
+4f
+06
+00
+0a
+00
+10
+00
+2c
+01
+aa
+55
+08
+00
+b0
+4f
+16
+00
+16
+00
+10
+00
+2c
+01
+aa
+55
+9c
+01
+d2
+46
+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
+01
+05
+0e
+00
+0a
+02
+40
+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
+10
+13
+00
+02
+4d
+2a
+07
+00
+00
+00
+00
+00
+00
+00
+14
+00
+02
+02
+29
+02
+00
+00
+15
+00
+02
+08
+29
+02
+01
+01
+16
+00
+02
+03
+28
+01
+10
+17
+00
+02
+4d
+2a
+03
+00
+00
+00
+18
+00
+02
+02
+29
+02
+00
+00
+19
+00
+02
+08
+29
+02
+04
+01
+1a
+00
+02
+03
+28
+01
+10
+1b
+00
+02
+4d
+2a
+02
+00
+00
+1c
+00
+02
+02
+29
+02
+00
+00
+1d
+00
+02
+08
+29
+02
+03
+01
+1e
+00
+02
+03
+28
+01
+10
+1f
+00
+02
+4d
+2a
+03
+00
+00
+00
+20
+00
+02
+02
+29
+02
+00
+00
+21
+00
+02
+08
+29
+02
+05
+01
+22
+00
+02
+03
+28
+01
+10
+23
+00
+02
+4d
+2a
+0a
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+24
+00
+02
+02
+29
+02
+00
+00
+25
+00
+02
+08
+29
+02
+06
+01
+26
+00
+02
+03
+28
+01
+12
+27
+00
+02
+4d
+2a
+02
+00
+00
+28
+00
+02
+02
+29
+02
+00
+00
+29
+00
+02
+08
+29
+02
+02
+01
+2a
+00
+02
+03
+28
+01
+02
+2b
+00
+02
+4b
+2a
+01
+00
+2c
+00
+02
+03
+28
+01
+02
+2d
+00
+02
+4a
+2a
+04
+11
+01
+00
+01
+2e
+00
+02
+03
+28
+01
+04
+2f
+00
+02
+4c
+2a
+01
+00
+30
+00
+02
+00
+28
+02
+0f
+18
+00
+00
+aa
+55
+04
+00
+d0
+49
+f3
+00
+f3
+00
+aa
+55
+f3
+00
+ae
+48
+05
+0c
+09
+01
+a1
+01
+85
+03
+09
+82
+09
+e9
+09
+ea
+09
+30
+09
+40
+0a
+23
+02
+0a
+2d
+02
+0a
+2e
+02
+15
+00
+25
+01
+75
+01
+95
+08
+81
+02
+c0
+05
+0d
+09
+04
+a1
+01
+85
+06
+09
+22
+a1
+02
+09
+42
+15
+00
+25
+01
+75
+01
+95
+01
+81
+02
+09
+32
+15
+00
+25
+01
+81
+02
+09
+51
+75
+05
+95
+01
+16
+00
+00
+26
+f0
+0f
+81
+02
+09
+47
+75
+01
+95
+01
+81
+02
+05
+01
+26
+ff
+0f
+75
+10
+55
+0d
+65
+33
+09
+30
+35
+00
+46
+00
+10
+81
+02
+09
+31
+46
+8a
+03
+81
+02
+c0
+05
+0d
+09
+05
+a1
+01
+09
+22
+a1
+02
+09
+42
+15
+00
+25
+01
+75
+01
+95
+01
+81
+02
+09
+32
+15
+00
+25
+01
+81
+02
+09
+51
+75
+05
+95
+01
+16
+00
+00
+26
+f0
+0f
+81
+02
+09
+47
+75
+01
+95
+01
+81
+02
+05
+01
+26
+ff
+0f
+75
+10
+55
+0d
+65
+33
+09
+30
+35
+00
+46
+00
+10
+81
+02
+09
+31
+46
+8a
+03
+81
+02
+c0
+c0
+05
+01
+09
+06
+a1
+01
+85
+05
+05
+04
+19
+e0
+29
+e7
+15
+00
+25
+01
+75
+01
+95
+08
+81
+02
+75
+08
+95
+01
+15
+00
+25
+f4
+05
+04
+19
+00
+29
+f4
+81
+00
+c0
+c0
+aa
+55
+10
+00
+d4
+49
+d0
+00
+2d
+12
+1e
+4b
+0f
+a4
+99
+4e
+ce
+b5
+31
+f4
+05
+79
+aa
+55
+01
+00
+48
+41
+0c
+aa
+55
+06
+00
+c3
+40
+70
+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
+3a
+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
+30
+aa
+55
+05
+00
+43
+41
+ff
+04
+00
+00
+08
+aa
+55
+01
+00
+07
+44
+01
+aa
+55
+01
+00
+09
+44
+0a
+aa
+55
+01
+00
+08
+44
+00
+aa
+55
+01
+00
+11
+44
+00
+aa
+55
+04
+00
+0d
+44
+00
+07
+ff
+07
+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
+7a
+98
+b4
+70
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+1a
+c4
Index: output/memmap.format
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/output/memmap.format	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/output/memmap.format	(working copy)
@@ -0,0 +1,2490 @@
+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
+0x414e mem_adc_reference3v_ft_data
+0x414e mem_adc_reference3v_gpio1v_ft_data
+0x4150 mem_adc_reference3v_gpio2v_ft_data
+0x4152 mem_adc_reference3v_vdcdc3p6v_ft_data
+0x4154 mem_adc_reference3v_vdcdc4p6v_ft_data
+0x4156 mem_adc_reference3v_inter1v_ft_data
+0x4158 mem_adc_reference3v_inter1v_now_data
+0x415a mem_adc_reference_mode
+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
+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_1s_timer
+0x489f mem_shutter_timer_625us
+0x48a1 mem_rf_init_data_new
+0x48ac mem_key_value_xmem
+0x48ae mem_shutter_le_hid_map
+0x49d0 mem_shutter_le_map_len_android
+0x49d2 mem_shutter_le_map_len_ios
+0x49d4 mem_dy_le_search_service_uuid
+0x49e4 mem_iphone_flag
+0x49e5 mem_send_data_delay
+0x49e6 mem_key_send_clk
+0x49ea mem_shutter_key_state0
+0x49f4 mem_shutter_key_state1
+0x49fe mem_shutter_key_state2
+0x4a08 mem_shutter_key_state3
+0x4a12 mem_shutter_key_state4
+0x4a1c mem_shutter_key_state5
+0x4a26 mem_shutter_key_state6
+0x4a30 mem_key0_release_new
+0x4a3f mem_key1_release_new
+0x4a4e mem_key2_release_new
+0x4a5d mem_key3_release_new
+0x4a6c mem_key4_release_new
+0x4a7b mem_key5_release_new
+0x4a8a mem_key6_release_new
+0x4a99 mem_key0_long_press
+0x4a9c mem_key1_long_press
+0x4a9f mem_key2_long_press
+0x4aa2 mem_key3_long_press
+0x4aa5 mem_key4_long_press
+0x4aa8 mem_key5_long_press
+0x4aab mem_key6_long_press
+0x4aae mem_key0_long_release
+0x4ab1 mem_key1_long_release
+0x4ab4 mem_key2_long_release
+0x4ab7 mem_key3_long_release
+0x4aba mem_key4_long_release
+0x4abd mem_key5_long_release
+0x4ac0 mem_key6_long_release
+0x4ac3 mem_combine_key0
+0x4ac5 mem_combine_key1
+0x4ac7 mem_combine_key2
+0x4ac9 mem_combine_key3
+0x4acb mem_combine_key4
+0x4acd mem_combine_key5
+0x4acf mem_combine_key_state0
+0x4ad1 mem_combine_key0_press
+0x4adb mem_combine_key1_press
+0x4ae5 mem_combine_key2_press
+0x4aef mem_combine_key3_press
+0x4af9 mem_combine_key4_press
+0x4b03 mem_combine_key5_press
+0x4b0d mem_combine_key_release
+0x4b17 mem_shutter_move_data
+0x4b1b mem_key0_press_i
+0x4b25 mem_key1_press_i
+0x4b2f mem_key2_press_i
+0x4b39 mem_key3_press_i
+0x4b43 mem_key4_press_i
+0x4b4d mem_key5_press_i
+0x4b57 mem_key0_release_new_i
+0x4b66 mem_key1_release_new_i
+0x4b75 mem_key2_release_new_i
+0x4b84 mem_key3_release_new_i
+0x4b93 mem_key4_release_new_i
+0x4ba2 mem_key5_release_new_i
+0x4bb1 mem_key6_release_new_i
+0x4bc0 mem_key0_long_press_i
+0x4bc3 mem_key1_long_press_i
+0x4bc6 mem_key2_long_press_i
+0x4bc9 mem_key3_long_press_i
+0x4bcc mem_key4_long_press_i
+0x4bcf mem_key5_long_press_i
+0x4bd2 mem_key6_long_press_i
+0x4bd5 mem_key0_long_release_i
+0x4bd8 mem_key1_long_release_i
+0x4bdb mem_key2_long_release_i
+0x4bde mem_key3_long_release_i
+0x4be1 mem_key4_long_release_i
+0x4be4 mem_key5_long_release_i
+0x4be7 mem_key6_long_release_i
+0x4bea mem_key3_release_new_t
+0x4bf4 mem_key3_release_new_i_t
+0x4bfe mem_key3_press_count
+0x4bff mem_shutter_like_timeout
+0x4c00 mem_shutter_key_pressed
+0x4c01 mem_shutter_combine_key_release
+0x4c02 mem_shutter_mousekey_value_list
+0x4eaa mem_shutter_back_count
+0x4eab mem_shutter_le_conned
+0x4eac mem_move_config
+0x4eac mem_shutter_iphone_beyond_x_count
+0x4ead mem_shutter_iphone_beyond_y_count
+0x4eae mem_shutter_move_data_x
+0x4eb0 mem_shutter_move_data_y
+0x4eb2 mem_last_shutter_le_iphone_flag
+0x4eb3 mem_move_config_end
+0x4eb3 mem_shutter_back_count_cache
+0x4eb4 mem_shutter_iphone_beyond_x_cache
+0x4eb5 mem_shutter_iphone_beyond_y_cache
+0x4eb6 mem_shutter_iphone_move_mid
+0x4ec0 mem_shutter_long_key_released_flag
+0x4ec1 mem_shutter_move_mid_timer
+0x4ec2 mem_shutter_pairing_success
+0x4ec3 mem_combine_key_release_value
+0x4ec5 mem_last_press_key_value
+0x4ec6 mem_shutter_first_move
+0x4ec7 mem_move_mode_set
+0x4ec8 mem_move_mode_key_index
+0x4ec9 mem_move_mode_trigger_enable
+0x4eca mem_shutter_android_move_mid
+0x4ecf mem_shutter_iphone_up_mid
+0x4ed9 mem_shutter_iphone_like_mid
+0x4ee3 mem_shutter_key_num_conf
+0x4ee4 mem_shutter_dy_key_conf
+0x4eeb mem_le_dy_adv_data
+0x4ef6 mem_le_dy_scan_data
+0x4f02 mem_ble_shutter_dy_interval_min_new
+0x4f0a mem_shutter_ble_discovery_time_conf
+0x4f12 mem_queue_dy_each_size
+0x4f14 mem_dy_key0_press
+0x4f1e mem_dy_key1_press
+0x4f28 mem_dy_key2_press
+0x4f32 mem_dy_key3_press
+0x4f3c mem_dy_key4_press
+0x4f46 mem_dy_key5_press
+0x4f50 mem_dy_key6_press
+0x4f5a mem_shutter_led_on_light_dark_led_conf
+0x4f61 mem_shutter_led_off_light_dark_led_conf
+0x4f68 mem_shutter_reconn_blink_on_time_conf
+0x4f6c mem_shutter_discovery_blink_on_time_conf
+0x4f70 mem_shutter_efuse_start_offset
+0x4f72 mem_shutter_efuse_end_offset
+0x4f74 mem_initial_move_conf
+0x4f74 mem_android_initial_move_x
+0x4f76 mem_android_initial_move_y
+0x4f78 mem_iphone_initial_move_x
+0x4f7a mem_iphone_initial_move_y
+0x4f7c mem_otp_move_config
+0x4f7c mem_otp_shutter_move_data_x
+0x4f7e mem_otp_shutter_move_data_y
+0x4f80 mem_otp_last_shutter_le_iphone_flag
+0x4f81 mem_otp_move_config_end
+0x4f81 mem_otp_write_offset_addr
+0x4f83 mem_otp_read_offset_addr
+0x4f85 mem_otp_read_ios_android_addr
+0x4f87 mem_shutter_le_pairing_handle
+0x4f89 mem_shutter_temp_count
+0x4f8b mem_shutter_first_read_flag
+0x4f8c mem_shutter_valid_data_flag
+0x4f8d mem_shutter_volume_timer
+0x4f8e mem_shutter_link_timer
+0x4f8f mem_shutter_link_data
+0x4f97 mem_shutter_link_data_i
+0x4f9f mem_shutter_link_loop_flag
+0x4fa0 mem_shutter_discovery_time_conf
+0x4fa8 mem_shutter_reconn_or_discovery_blink_time_conf
+0x4fb0 mem_ble_shutter_dy_interval_min_ios
+0x4fb8 mem_fouse_up_press
+0x4fc2 mem_fouse_up_long_press
+0x4fc4 mem_fouse_up_long_release
+0x4fc6 mem_fouse_down_press
+0x4fd0 mem_fouse_down_long_press
+0x4fd2 mem_fouse_down_long_release
+0x4fd4 mem_shutter_key_evt_timer_count
+0x4fd5 mem_shutter_key_evt_btclk
+0x4fd9 mem_shutter_dy_fouse_time
+0x4fda mem_shutter_fouse_select
+0x4fdb mem_shutter_dy_fouse_count
+0x4fdc mem_shutter_mode_step_android
+0x4fe5 mem_shutter_mode_step_ios
+0x4fee mem_shutter_like_key_press_time
+0x4fef mem_shutter_photo_click_count
+0x4ff0 mem_shutter_end
+0x4ff0 mem_shutter_vdd_calculate_set
+0x4ff0 mem_shutter_vdd_full_vol
+0x4ff2 mem_shutter_vdd_empty_vol
+0x4ff4 mem_shutter_vdd_low_vol
+0x4ff6 mem_shutter_vdd_now_vol
+0x4ff8 mem_shutter_start_adc_flag
+0x4ff9 mem_shutter_adc_read_timer
+0x4ffa mem_shutter_enable_low_voltage_flag
+0x4ffb mem_shutter_adc_last_low_voltage_flag
+0x4ffc mem_shutter_battery_level_percentage
+0x4ffd mem_shutter_adc_read_time_init
+0x4ffe mem_shutter_dy_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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/output/otp.dat	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/output/otp.dat	(working copy)
@@ -0,0 +1,6811 @@
+0b
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+aa
+55
+8a
+11
+c2
+84
+00
+18
+c0
+00
+00
+51
+c0
+01
+01
+1d
+c0
+08
+81
+26
+c0
+0a
+03
+04
+c0
+0a
+81
+b3
+c0
+0c
+01
+c1
+c0
+0c
+81
+80
+c0
+0d
+01
+38
+c0
+12
+83
+26
+c0
+13
+80
+7c
+c0
+51
+80
+c2
+c0
+52
+80
+fa
+c0
+53
+00
+87
+c0
+53
+80
+98
+c0
+55
+00
+ea
+c0
+58
+81
+d3
+c0
+62
+00
+1f
+c0
+62
+81
+c8
+c0
+6d
+02
+ed
+c0
+6d
+84
+09
+c0
+6e
+04
+46
+c0
+6e
+84
+27
+20
+20
+23
+5a
+c0
+12
+00
+55
+c0
+12
+80
+d3
+c0
+13
+00
+d8
+c0
+1c
+83
+20
+c0
+26
+83
+24
+c1
+7f
+80
+00
+20
+20
+23
+5a
+20
+40
+6b
+34
+20
+40
+6b
+41
+20
+40
+6b
+3b
+e8
+40
+80
+11
+1a
+20
+a2
+01
+18
+00
+0e
+00
+79
+3f
+80
+22
+a8
+4c
+00
+00
+20
+20
+80
+49
+6f
+f0
+80
+46
+79
+20
+7e
+06
+79
+20
+7e
+07
+67
+f0
+80
+46
+70
+80
+47
+02
+70
+80
+47
+82
+79
+3f
+fe
+07
+67
+f0
+80
+46
+70
+80
+47
+8a
+20
+00
+00
+0b
+70
+80
+47
+ca
+20
+00
+00
+21
+70
+80
+47
+4a
+20
+00
+00
+2c
+70
+80
+47
+ca
+20
+00
+00
+16
+70
+80
+47
+8a
+20
+00
+00
+21
+70
+80
+47
+82
+20
+00
+00
+01
+70
+80
+47
+92
+20
+00
+00
+0a
+70
+80
+47
+b2
+6f
+f0
+80
+07
+70
+80
+47
+92
+20
+00
+00
+01
+70
+80
+47
+82
+20
+00
+00
+01
+af
+ec
+00
+00
+20
+20
+80
+25
+c5
+11
+00
+49
+79
+20
+00
+22
+20
+20
+00
+26
+6f
+f1
+00
+44
+1f
+e0
+fe
+01
+67
+f1
+00
+44
+18
+e0
+8e
+01
+28
+e0
+1e
+08
+24
+20
+80
+25
+c2
+00
+00
+22
+20
+20
+6b
+38
+24
+35
+a0
+02
+37
+d9
+82
+00
+37
+d9
+82
+00
+20
+20
+20
+02
+20
+40
+25
+c2
+c5
+97
+80
+5b
+78
+3c
+fc
+00
+20
+00
+00
+1e
+20
+40
+25
+c2
+19
+69
+96
+00
+78
+56
+fc
+00
+78
+26
+fc
+00
+78
+30
+fc
+00
+78
+50
+7c
+00
+19
+62
+36
+00
+37
+c1
+84
+00
+20
+37
+00
+64
+1b
+42
+04
+00
+60
+4b
+00
+0f
+24
+2c
+26
+fa
+78
+28
+7c
+00
+6f
+e0
+c1
+67
+d8
+40
+4e
+20
+98
+40
+84
+00
+6f
+e0
+c1
+48
+98
+4f
+b6
+00
+20
+40
+68
+77
+20
+37
+26
+77
+20
+40
+00
+72
+6f
+e0
+81
+68
+c3
+01
+a6
+77
+20
+55
+a4
+77
+20
+20
+26
+77
+68
+4b
+00
+0f
+1b
+42
+7e
+00
+20
+40
+7d
+12
+1f
+e2
+04
+00
+20
+40
+26
+ff
+1b
+42
+56
+00
+1d
+22
+7e
+00
+98
+40
+fe
+00
+1f
+e2
+52
+00
+20
+60
+00
+00
+c5
+84
+a4
+89
+68
+4a
+40
+ad
+df
+e0
+06
+00
+98
+46
+7c
+00
+20
+61
+00
+00
+18
+42
+22
+00
+68
+4b
+00
+0f
+1d
+62
+7e
+00
+20
+40
+7d
+10
+1a
+22
+04
+00
+20
+20
+24
+7d
+18
+e2
+7e
+00
+c0
+00
+e7
+77
+c0
+02
+e7
+65
+c0
+00
+67
+61
+c0
+03
+00
+90
+c0
+03
+80
+93
+c0
+04
+00
+96
+c0
+04
+80
+97
+20
+20
+65
+a2
+70
+4f
+d9
+01
+70
+4f
+da
+01
+20
+60
+00
+00
+70
+4f
+d9
+01
+70
+4f
+da
+02
+20
+60
+00
+00
+20
+60
+00
+00
+20
+60
+00
+00
+6f
+e0
+ce
+c7
+c0
+00
+e5
+cf
+20
+40
+66
+28
+20
+40
+00
+9e
+20
+74
+00
+00
+20
+20
+65
+cf
+d8
+e0
+00
+00
+da
+40
+4a
+c3
+df
+e0
+00
+02
+98
+ef
+fe
+00
+9a
+40
+a4
+00
+ef
+e1
+00
+12
+20
+7a
+00
+00
+68
+49
+06
+f1
+98
+42
+fc
+00
+20
+22
+80
+aa
+18
+e0
+8e
+01
+20
+20
+00
+9f
+67
+e1
+4a
+cf
+20
+40
+43
+23
+da
+60
+4a
+d1
+df
+e0
+00
+0a
+98
+ef
+fe
+00
+9a
+60
+a6
+00
+20
+20
+66
+33
+6f
+e1
+4a
+cf
+20
+7a
+00
+00
+68
+49
+06
+f1
+18
+46
+7c
+00
+20
+22
+80
+b7
+20
+20
+00
+b6
+70
+4e
+c0
+01
+20
+40
+43
+25
+da
+60
+4b
+0d
+58
+00
+00
+00
+67
+e1
+4a
+cf
+70
+48
+9e
+32
+20
+40
+66
+33
+6f
+e0
+c5
+23
+1f
+ef
+f2
+0a
+d8
+a0
+45
+fd
+20
+20
+7c
+a1
+6f
+e0
+cf
+9f
+24
+3a
+00
+cc
+70
+4c
+00
+01
+20
+40
+43
+23
+20
+40
+00
+cf
+20
+40
+65
+61
+20
+21
+65
+00
+18
+e2
+7e
+00
+67
+e0
+ce
+c5
+20
+60
+00
+00
+18
+e2
+7e
+00
+c1
+80
+80
+00
+20
+20
+00
+c4
+df
+e0
+00
+0a
+98
+ef
+fe
+00
+da
+60
+45
+fd
+20
+20
+65
+2f
+20
+40
+28
+1c
+6a
+20
+80
+4d
+1a
+20
+a3
+fc
+24
+21
+26
+fa
+20
+20
+26
+8e
+09
+80
+00
+18
+1f
+ef
+7e
+00
+1f
+f1
+7e
+00
+e7
+e1
+80
+05
+78
+28
+7c
+00
+20
+40
+27
+0d
+20
+23
+26
+f6
+c5
+99
+26
+af
+6f
+e0
+80
+4d
+20
+3a
+26
+af
+1f
+e0
+ff
+fc
+67
+e0
+80
+4d
+20
+40
+72
+cb
+6f
+f0
+81
+08
+c3
+03
+a6
+fa
+18
+00
+70
+0c
+65
+e2
+01
+54
+20
+20
+26
+af
+1a
+22
+0c
+00
+ef
+e1
+80
+06
+67
+e1
+c3
+97
+c0
+03
+e7
+04
+c0
+00
+80
+f0
+20
+20
+66
+db
+18
+c0
+8d
+fe
+ef
+e0
+80
+06
+c0
+03
+00
+f4
+20
+60
+00
+00
+20
+20
+00
+f5
+70
+4e
+aa
+01
+70
+49
+e4
+00
+70
+4e
+b2
+00
+70
+49
+e5
+0a
+20
+60
+00
+00
+20
+40
+65
+4b
+df
+e0
+00
+0a
+98
+ef
+fe
+00
+da
+60
+45
+fd
+9a
+60
+a6
+00
+e8
+42
+00
+13
+18
+46
+7c
+00
+20
+62
+80
+00
+1c
+42
+7e
+00
+98
+46
+04
+00
+24
+41
+78
+06
+1a
+60
+8c
+09
+ef
+e0
+80
+06
+24
+3a
+01
+09
+20
+20
+65
+47
+70
+4e
+c0
+01
+20
+40
+65
+6b
+20
+40
+67
+69
+18
+e2
+7e
+00
+c0
+03
+01
+12
+c0
+03
+81
+16
+da
+60
+4a
+ae
+df
+e0
+00
+03
+20
+20
+65
+5a
+20
+40
+01
+1a
+20
+40
+03
+8f
+da
+60
+4f
+c4
+20
+20
+63
+71
+20
+40
+01
+1a
+20
+40
+03
+b2
+da
+60
+4f
+d2
+20
+20
+63
+71
+70
+4f
+d9
+00
+70
+4f
+da
+00
+20
+60
+00
+00
+20
+40
+75
+52
+20
+40
+74
+48
+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
+01
+1d
+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
+37
+d9
+82
+00
+70
+81
+3c
+58
+37
+d9
+82
+00
+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
+88
+40
+70
+8a
+13
+cd
+70
+8a
+06
+10
+70
+8a
+84
+4a
+70
+8a
+85
+40
+70
+8a
+16
+fe
+20
+40
+01
+88
+6f
+e0
+c4
+36
+20
+5a
+70
+d7
+24
+55
+81
+34
+37
+d9
+82
+00
+70
+81
+3b
+5f
+6f
+e0
+c0
+99
+c0
+08
+01
+75
+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
+01
+67
+70
+80
+43
+00
+70
+80
+42
+05
+58
+55
+74
+74
+67
+f1
+89
+68
+70
+89
+60
+6e
+20
+40
+02
+bf
+20
+40
+02
+ea
+20
+40
+01
+61
+70
+41
+48
+0c
+20
+40
+6f
+4e
+20
+20
+02
+ec
+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
+01
+6d
+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
+01
+53
+6f
+e0
+c1
+41
+c0
+05
+01
+83
+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
+35
+81
+af
+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
+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
+01
+99
+20
+40
+68
+6f
+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
+20
+40
+6b
+3a
+20
+40
+6b
+75
+20
+20
+6b
+38
+6f
+e0
+ce
+e3
+1f
+e2
+72
+00
+67
+e0
+c5
+23
+58
+00
+45
+23
+67
+e1
+44
+2c
+d8
+c0
+4e
+e4
+d8
+a0
+45
+26
+20
+20
+7c
+da
+20
+40
+73
+96
+20
+75
+80
+00
+20
+40
+42
+a3
+20
+40
+03
+c5
+70
+40
+94
+00
+20
+40
+01
+cb
+20
+40
+64
+59
+58
+00
+00
+01
+67
+e1
+44
+f6
+70
+40
+a6
+0a
+58
+00
+02
+4d
+67
+e1
+43
+db
+58
+00
+02
+2a
+67
+e1
+43
+dd
+58
+00
+02
+3f
+67
+e1
+43
+df
+58
+00
+62
+d3
+67
+e1
+43
+d3
+58
+00
+01
+f7
+67
+e1
+43
+d5
+58
+00
+63
+29
+67
+e1
+43
+d7
+58
+00
+02
+0c
+67
+e1
+43
+e3
+58
+00
+65
+05
+67
+e1
+45
+24
+58
+00
+63
+40
+67
+e1
+45
+1f
+58
+00
+63
+9a
+67
+e1
+45
+21
+20
+40
+62
+ca
+6f
+e1
+4f
+87
+67
+e1
+43
+32
+6f
+e4
+45
+0a
+67
+e4
+45
+02
+20
+20
+62
+bd
+20
+40
+6f
+35
+70
+44
+ec
+ff
+20
+40
+01
+fc
+20
+40
+70
+1b
+20
+20
+73
+9a
+6f
+e0
+c6
+ce
+20
+7a
+00
+00
+6f
+e0
+ce
+e3
+1f
+e2
+72
+00
+da
+20
+45
+26
+ef
+e0
+80
+11
+68
+48
+c6
+cf
+98
+46
+7c
+00
+20
+22
+82
+07
+1f
+e2
+04
+00
+20
+40
+02
+0a
+1a
+20
+a2
+01
+c2
+00
+02
+01
+20
+60
+00
+00
+79
+20
+04
+07
+20
+20
+6e
+dd
+20
+40
+03
+cd
+20
+40
+02
+12
+20
+40
+67
+6c
+20
+40
+67
+5a
+20
+40
+02
+23
+20
+20
+64
+d9
+da
+60
+4f
+ee
+da
+40
+02
+15
+20
+20
+42
+e0
+6f
+e0
+cf
+ef
+70
+4f
+ef
+00
+c0
+00
+82
+1a
+c0
+01
+02
+1c
+20
+60
+00
+00
+da
+60
+4a
+3f
+20
+20
+63
+71
+20
+40
+02
+1e
+20
+20
+63
+71
+da
+60
+4f
+dc
+20
+40
+67
+30
+20
+7a
+00
+00
+da
+60
+4f
+e5
+20
+60
+00
+00
+da
+60
+45
+18
+da
+40
+02
+26
+20
+20
+42
+e7
+70
+45
+1c
+02
+20
+40
+43
+25
+20
+40
+63
+4e
+20
+20
+63
+9e
+1a
+62
+7e
+00
+c0
+20
+02
+36
+c0
+18
+82
+34
+c0
+0a
+82
+31
+c0
+0a
+02
+30
+20
+20
+64
+e0
+20
+20
+64
+f4
+6f
+e1
+45
+12
+67
+e1
+45
+18
+20
+20
+64
+ef
+70
+4e
+c2
+01
+20
+60
+00
+00
+6f
+e1
+43
+3c
+c1
+00
+00
+00
+6f
+e4
+45
+0a
+20
+7a
+00
+00
+20
+40
+67
+30
+24
+3a
+02
+4a
+6f
+e4
+4f
+02
+67
+e4
+42
+d3
+20
+20
+2e
+93
+6f
+e1
+43
+98
+c0
+12
+02
+42
+20
+60
+00
+00
+20
+40
+78
+ad
+70
+44
+f1
+01
+20
+40
+67
+30
+20
+40
+43
+2b
+24
+3a
+02
+4a
+6f
+e4
+4f
+02
+67
+e4
+42
+d3
+20
+20
+2e
+93
+6f
+e4
+4f
+b0
+67
+e4
+42
+d3
+20
+20
+2e
+93
+20
+40
+02
+58
+d8
+e0
+00
+09
+20
+40
+7c
+ef
+24
+7a
+00
+00
+58
+00
+00
+20
+d8
+e0
+00
+09
+20
+40
+7c
+e1
+78
+54
+7c
+00
+20
+40
+70
+1b
+20
+40
+02
+72
+20
+20
+03
+4f
+6f
+e1
+44
+e9
+c2
+84
+82
+5d
+d8
+a0
+45
+da
+df
+20
+00
+23
+20
+20
+7c
+a1
+20
+40
+2a
+28
+24
+7a
+00
+00
+20
+40
+78
+fa
+20
+7a
+00
+00
+68
+4a
+49
+e6
+1c
+42
+7e
+00
+98
+46
+04
+00
+20
+62
+80
+00
+24
+21
+02
+69
+6f
+e0
+c9
+e5
+98
+46
+7c
+00
+20
+61
+00
+00
+1c
+42
+7e
+00
+67
+e2
+49
+e6
+20
+40
+63
+85
+24
+74
+00
+00
+1f
+e0
+ff
+ff
+1f
+ef
+fe
+0d
+d8
+40
+4c
+02
+98
+40
+8c
+00
+20
+20
+63
+cb
+6f
+e1
+48
+ac
+67
+e1
+44
+2e
+20
+40
+65
+be
+6f
+e1
+44
+2e
+67
+e1
+48
+ac
+d8
+e0
+00
+00
+6f
+e0
+c5
+23
+1f
+e2
+72
+00
+da
+60
+45
+fd
+1f
+22
+7e
+00
+67
+e1
+06
+78
+1a
+62
+7e
+00
+67
+e1
+06
+8c
+18
+e2
+7e
+00
+67
+e1
+06
+7a
+20
+40
+02
+8f
+6f
+e1
+06
+8c
+1f
+e2
+26
+00
+6f
+e1
+06
+7a
+1f
+e2
+0e
+00
+20
+40
+65
+8b
+6f
+e1
+06
+7a
+1f
+e0
+8e
+01
+6f
+e1
+06
+8c
+1f
+e0
+a6
+0a
+6f
+e1
+06
+78
+1f
+e2
+72
+00
+c2
+00
+02
+7b
+20
+60
+00
+00
+1a
+60
+a4
+05
+ef
+e2
+00
+12
+20
+7a
+00
+00
+1f
+e2
+04
+00
+1c
+42
+7e
+00
+98
+46
+04
+00
+24
+41
+78
+06
+58
+00
+03
+e8
+98
+46
+7c
+00
+20
+20
+02
+99
+1a
+60
+8c
+04
+ef
+e0
+80
+06
+20
+20
+02
+9c
+20
+40
+65
+6b
+20
+40
+65
+61
+20
+21
+65
+00
+20
+40
+02
+b7
+18
+e2
+7e
+00
+c0
+03
+02
+a6
+c0
+03
+82
+a8
+c0
+04
+02
+aa
+c0
+00
+82
+b1
+20
+20
+65
+58
+da
+60
+4f
+b8
+20
+20
+63
+71
+da
+60
+4f
+c6
+20
+20
+63
+71
+20
+40
+02
+ac
+20
+20
+63
+71
+da
+60
+4f
+dc
+20
+40
+67
+30
+20
+7a
+00
+00
+da
+60
+4f
+e5
+20
+60
+00
+00
+70
+4f
+ee
+05
+6f
+e0
+cf
+ef
+c1
+01
+00
+00
+1f
+e0
+fe
+01
+67
+e0
+cf
+ef
+20
+60
+00
+00
+da
+60
+4a
+30
+70
+49
+e5
+5a
+20
+40
+67
+30
+20
+7a
+00
+00
+da
+60
+4b
+57
+18
+e2
+7e
+00
+70
+49
+e5
+14
+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
+02
+dc
+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
+02
+dc
+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
+02
+d1
+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
+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
+02
+fd
+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
+82
+fe
+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
+03
+1d
+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
+03
+1a
+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
+03
+16
+58
+00
+83
+12
+67
+f1
+09
+07
+20
+20
+03
+0b
+6f
+e0
+c3
+34
+c1
+00
+00
+00
+c0
+01
+b0
+4a
+20
+20
+28
+e1
+79
+3f
+80
+30
+20
+20
+2a
+f6
+6f
+e1
+43
+e9
+20
+40
+7d
+79
+6f
+e2
+40
+ad
+98
+40
+fe
+00
+67
+e2
+40
+ad
+20
+40
+03
+37
+6f
+e0
+c0
+cb
+79
+20
+7e
+04
+20
+40
+23
+e1
+24
+55
+a3
+cb
+37
+d9
+82
+00
+1b
+22
+7e
+00
+67
+e3
+40
+b1
+6f
+e1
+c0
+c6
+6a
+20
+c0
+c9
+df
+20
+00
+03
+20
+20
+24
+2e
+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
+83
+4a
+e7
+e0
+80
+13
+37
+d9
+82
+00
+1a
+20
+a2
+01
+1a
+60
+a6
+01
+c2
+00
+03
+44
+1a
+42
+04
+00
+20
+60
+00
+00
+da
+20
+00
+00
+68
+4a
+4f
+d5
+1c
+42
+24
+00
+1a
+42
+7e
+00
+98
+46
+7c
+00
+24
+41
+78
+06
+1a
+42
+7e
+00
+18
+40
+84
+40
+98
+46
+7c
+00
+24
+21
+03
+61
+1a
+20
+a2
+01
+1a
+21
+7e
+0f
+24
+3a
+03
+55
+da
+20
+00
+00
+20
+40
+03
+66
+1c
+42
+7e
+00
+67
+e2
+4f
+d5
+20
+60
+00
+00
+1a
+22
+7e
+00
+20
+7a
+00
+00
+18
+40
+85
+c0
+79
+3f
+84
+1c
+60
+4a
+4f
+d5
+67
+e0
+cf
+d4
+6f
+e0
+cf
+d4
+20
+7a
+00
+00
+1f
+e0
+ff
+ff
+67
+e0
+cf
+d4
+20
+40
+03
+6d
+20
+20
+03
+67
+da
+60
+4f
+d9
+da
+40
+03
+70
+20
+20
+42
+e0
+6f
+e0
+cf
+da
+c0
+00
+83
+74
+c0
+01
+03
+97
+20
+60
+00
+00
+20
+40
+67
+30
+24
+3a
+03
+83
+70
+49
+e5
+08
+70
+4f
+d9
+01
+6f
+e0
+cf
+db
+1f
+e0
+fe
+02
+67
+e0
+cf
+db
+1f
+e6
+7c
+5a
+20
+42
+83
+8f
+da
+60
+4f
+c2
+20
+40
+03
+ba
+ef
+e1
+00
+3f
+1f
+e0
+fe
+0a
+e7
+e1
+00
+11
+20
+20
+63
+71
+20
+40
+03
+c2
+6f
+e0
+cf
+db
+1f
+e0
+fe
+01
+67
+e0
+cf
+db
+1f
+e6
+7c
+5a
+20
+42
+83
+8f
+da
+60
+4f
+c2
+20
+40
+03
+ba
+ef
+e1
+00
+3f
+1f
+e0
+fe
+12
+e7
+e1
+00
+11
+20
+20
+63
+71
+70
+4f
+db
+00
+da
+60
+4f
+c4
+20
+40
+63
+71
+da
+60
+4f
+c2
+20
+40
+03
+ba
+58
+00
+06
+50
+e7
+e1
+00
+11
+20
+60
+00
+00
+20
+40
+67
+30
+24
+3a
+03
+a6
+70
+49
+e5
+08
+70
+4f
+d9
+01
+6f
+e0
+cf
+db
+1f
+e0
+fe
+02
+67
+e0
+cf
+db
+1f
+e6
+7c
+5a
+20
+42
+83
+b2
+da
+60
+4f
+d0
+20
+40
+03
+ba
+ef
+e1
+00
+3f
+1f
+e0
+ff
+f6
+e7
+e1
+00
+11
+20
+20
+63
+71
+20
+40
+03
+c2
+6f
+e0
+cf
+db
+1f
+e0
+fe
+01
+67
+e0
+cf
+db
+1f
+e6
+7c
+5a
+20
+42
+83
+b2
+da
+60
+4f
+d0
+20
+40
+03
+ba
+ef
+e1
+00
+3f
+1f
+e0
+ff
+ee
+e7
+e1
+00
+11
+20
+20
+63
+71
+70
+4f
+db
+00
+da
+60
+4f
+d2
+20
+40
+63
+71
+da
+60
+4f
+d0
+20
+40
+03
+ba
+58
+00
+0a
+00
+e7
+e1
+00
+11
+20
+60
+00
+00
+d8
+40
+4c
+02
+ef
+e0
+80
+13
+1f
+e0
+ff
+ff
+1f
+ef
+fe
+0d
+98
+40
+fe
+00
+1f
+e0
+fe
+06
+1f
+e2
+22
+00
+20
+60
+00
+00
+70
+49
+e5
+01
+70
+4f
+d9
+03
+20
+60
+00
+00
+70
+4f
+f8
+01
+20
+60
+00
+00
+6f
+e0
+cf
+f9
+1f
+e0
+fe
+01
+67
+e0
+cf
+f9
+68
+48
+cf
+fd
+98
+46
+7c
+00
+20
+60
+00
+00
+6f
+e0
+cf
+f8
+20
+7a
+00
+00
+20
+40
+03
+c7
+24
+61
+00
+00
+70
+4f
+f9
+00
+70
+44
+07
+01
+20
+40
+6f
+f3
+20
+40
+6f
+eb
+20
+40
+04
+46
+20
+40
+04
+27
+67
+e1
+4f
+f6
+da
+20
+4f
+f0
+20
+40
+03
+df
+6f
+e0
+c4
+0c
+c2
+80
+83
+ff
+c3
+00
+04
+03
+70
+4f
+fb
+01
+20
+20
+04
+01
+ef
+e4
+00
+11
+67
+e4
+06
+70
+20
+40
+6f
+f3
+20
+40
+6f
+eb
+6f
+e1
+06
+76
+68
+49
+06
+72
+98
+46
+7c
+00
+24
+41
+6f
+ef
+68
+49
+06
+74
+98
+46
+7c
+00
+24
+41
+6f
+e7
+6f
+e1
+06
+76
+68
+49
+06
+70
+98
+46
+7c
+00
+20
+21
+03
+fb
+68
+49
+06
+72
+98
+46
+7e
+00
+24
+21
+03
+fd
+20
+3a
+03
+fd
+1f
+ef
+a2
+64
+6f
+e1
+06
+70
+68
+49
+06
+72
+98
+46
+04
+00
+1a
+22
+7e
+00
+98
+46
+fc
+00
+20
+40
+7d
+5f
+67
+e0
+cf
+fc
+20
+60
+00
+00
+70
+4f
+fc
+64
+20
+60
+00
+00
+70
+4f
+fc
+00
+20
+60
+00
+00
+20
+40
+43
+25
+20
+20
+43
+27
+70
+4f
+fa
+01
+20
+60
+00
+00
+70
+4f
+fa
+00
+6f
+e0
+cf
+fb
+20
+7a
+00
+00
+20
+40
+43
+25
+70
+4f
+fb
+00
+20
+60
+00
+00
+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
+41
+4e
+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
+84
+2b
+c0
+01
+04
+32
+20
+60
+00
+00
+58
+00
+03
+e8
+67
+e1
+44
+05
+68
+49
+41
+52
+6f
+e1
+41
+54
+da
+60
+0e
+10
+20
+40
+6f
+c0
+20
+20
+04
+38
+58
+00
+03
+e8
+67
+e1
+44
+05
+68
+49
+41
+4e
+6f
+e1
+41
+50
+da
+60
+03
+e8
+20
+40
+6f
+c0
+68
+49
+41
+56
+98
+4f
+fe
+00
+68
+49
+41
+58
+98
+46
+fc
+00
+20
+20
+7d
+5f
+20
+40
+04
+1a
+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
+04
+3d
+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
+04
+3d
+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
+04
+5f
+68
+59
+01
+64
+60
+49
+41
+58
+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
+84
+5f
+20
+60
+00
+00
+06
+c6
+aa
+55
+40
+00
+00
+40
+05
+00
+32
+07
+a0
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+e8
+04
+02
+00
+30
+00
+00
+3c
+00
+00
+00
+00
+00
+00
+00
+00
+70
+00
+00
+02
+00
+20
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+aa
+55
+01
+00
+cb
+43
+06
+aa
+55
+01
+00
+ec
+44
+ff
+aa
+55
+06
+00
+db
+42
+0d
+21
+21
+98
+07
+2a
+aa
+55
+07
+00
+6b
+42
+06
+53
+65
+6c
+66
+69
+65
+aa
+55
+08
+00
+41
+41
+06
+00
+0a
+0e
+00
+0a
+dd
+00
+aa
+55
+04
+00
+70
+4f
+b0
+1f
+70
+1a
+aa
+55
+02
+00
+87
+4f
+2b
+00
+aa
+55
+08
+00
+74
+4f
+ef
+03
+a0
+06
+07
+00
+06
+00
+aa
+55
+01
+00
+d1
+46
+01
+aa
+55
+01
+00
+d0
+46
+01
+aa
+55
+16
+00
+5a
+4f
+00
+00
+93
+46
+00
+96
+00
+01
+03
+93
+46
+00
+96
+00
+20
+01
+20
+03
+20
+01
+20
+03
+aa
+55
+02
+00
+ce
+46
+00
+ff
+aa
+55
+08
+00
+0a
+4f
+70
+17
+70
+17
+70
+17
+70
+17
+aa
+55
+01
+00
+fd
+4f
+05
+aa
+55
+06
+00
+f0
+4f
+e4
+0c
+00
+00
+bf
+09
+aa
+55
+0b
+00
+e3
+4e
+0a
+ff
+12
+ff
+01
+ff
+ff
+06
+0f
+ff
+ff
+aa
+55
+0a
+00
+c3
+4a
+60
+00
+41
+00
+50
+00
+44
+00
+00
+00
+aa
+55
+02
+00
+c3
+4e
+40
+00
+aa
+55
+01
+00
+b6
+4e
+00
+aa
+55
+01
+00
+cf
+4e
+00
+aa
+55
+01
+00
+d9
+4e
+00
+aa
+55
+01
+00
+ca
+4e
+00
+aa
+55
+08
+00
+57
+4b
+19
+18
+17
+16
+15
+14
+13
+00
+aa
+55
+01
+00
+c0
+4b
+00
+aa
+55
+03
+00
+66
+4b
+1b
+1c
+00
+aa
+55
+06
+00
+97
+4f
+1b
+1c
+1c
+1b
+1c
+00
+aa
+55
+09
+00
+75
+4b
+11
+10
+0f
+0e
+0d
+0c
+0b
+0a
+00
+aa
+55
+03
+00
+84
+4b
+03
+01
+00
+aa
+55
+03
+00
+f4
+4b
+04
+01
+00
+aa
+55
+09
+00
+93
+4b
+0b
+0c
+0d
+0e
+0f
+10
+11
+12
+00
+aa
+55
+08
+00
+a2
+4b
+14
+15
+16
+17
+18
+19
+1a
+00
+aa
+55
+01
+00
+cf
+4b
+00
+aa
+55
+01
+00
+b1
+4b
+00
+aa
+55
+01
+00
+8a
+4a
+00
+aa
+55
+08
+00
+30
+4a
+19
+18
+17
+16
+15
+14
+13
+00
+aa
+55
+01
+00
+99
+4a
+00
+aa
+55
+03
+00
+3f
+4a
+1b
+1c
+00
+aa
+55
+06
+00
+8f
+4f
+1b
+1c
+1c
+1b
+1c
+00
+aa
+55
+09
+00
+4e
+4a
+11
+10
+0f
+0e
+0d
+0c
+0b
+0a
+00
+aa
+55
+03
+00
+9f
+4a
+04
+01
+00
+aa
+55
+05
+00
+5d
+4a
+03
+01
+33
+34
+00
+aa
+55
+05
+00
+ea
+4b
+04
+01
+33
+34
+00
+aa
+55
+09
+00
+6c
+4a
+0b
+0c
+0d
+0e
+0f
+10
+11
+12
+00
+aa
+55
+03
+00
+a5
+4a
+03
+01
+00
+aa
+55
+08
+00
+7b
+4a
+14
+15
+16
+17
+18
+19
+1a
+00
+aa
+55
+01
+00
+a8
+4a
+00
+aa
+55
+0b
+00
+b8
+4f
+1e
+1f
+20
+21
+22
+23
+24
+25
+26
+00
+27
+aa
+55
+01
+00
+c4
+4f
+28
+aa
+55
+0b
+00
+c6
+4f
+25
+24
+23
+22
+21
+20
+1f
+1e
+1d
+00
+29
+aa
+55
+01
+00
+d2
+4f
+2a
+aa
+55
+07
+00
+dc
+4f
+02
+01
+1b
+1c
+1b
+1c
+00
+aa
+55
+09
+00
+e5
+4f
+2d
+2e
+2f
+30
+1b
+1c
+1b
+1c
+00
+aa
+55
+01
+00
+d1
+4a
+01
+aa
+55
+01
+00
+db
+4a
+02
+aa
+55
+01
+00
+e5
+4a
+03
+aa
+55
+01
+00
+ef
+4a
+04
+aa
+55
+01
+00
+0d
+4b
+00
+aa
+55
+03
+00
+c7
+4e
+00
+ff
+00
+aa
+55
+01
+00
+c0
+4e
+01
+aa
+55
+a4
+02
+02
+4c
+02
+1b
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+02
+1b
+00
+01
+00
+00
+00
+00
+00
+00
+00
+00
+00
+02
+1b
+00
+02
+00
+00
+00
+00
+00
+00
+00
+00
+00
+02
+1b
+00
+04
+00
+00
+00
+00
+00
+00
+00
+00
+00
+02
+1b
+00
+08
+00
+00
+00
+00
+00
+00
+00
+00
+00
+02
+1b
+00
+10
+00
+00
+00
+00
+00
+00
+00
+00
+00
+02
+1b
+00
+20
+00
+00
+00
+00
+00
+00
+00
+00
+00
+02
+1b
+00
+40
+00
+00
+00
+00
+00
+00
+00
+00
+00
+02
+1b
+00
+80
+00
+00
+00
+00
+00
+00
+00
+00
+00
+0a
+23
+00
+00
+f4
+07
+80
+02
+04
+f4
+07
+80
+02
+0a
+23
+00
+83
+f4
+07
+80
+03
+04
+f4
+07
+80
+03
+0a
+23
+00
+83
+f4
+07
+40
+04
+04
+f4
+07
+40
+04
+0a
+23
+00
+83
+f4
+07
+80
+05
+04
+f4
+07
+80
+05
+0a
+23
+00
+83
+f4
+07
+40
+06
+04
+f4
+07
+40
+06
+0a
+23
+00
+83
+f4
+07
+80
+07
+04
+f4
+07
+80
+07
+0a
+23
+00
+83
+f4
+07
+40
+08
+04
+f4
+07
+40
+08
+0a
+23
+00
+83
+f4
+07
+80
+09
+04
+f4
+07
+80
+09
+0a
+23
+00
+00
+f4
+07
+40
+0a
+04
+f4
+07
+40
+0a
+0a
+23
+00
+00
+40
+00
+80
+08
+04
+40
+00
+40
+04
+0a
+23
+00
+83
+80
+02
+80
+08
+04
+80
+02
+40
+04
+0a
+23
+00
+83
+40
+04
+80
+08
+04
+40
+05
+40
+04
+0a
+23
+00
+83
+80
+06
+80
+08
+04
+80
+07
+40
+04
+0a
+23
+00
+83
+40
+08
+80
+08
+04
+40
+09
+40
+04
+0a
+23
+00
+83
+80
+0a
+80
+08
+04
+80
+0b
+40
+04
+0a
+23
+00
+83
+40
+0c
+80
+08
+04
+40
+0d
+40
+04
+0a
+23
+00
+00
+80
+0d
+80
+08
+04
+80
+0e
+40
+04
+0a
+23
+00
+83
+f0
+07
+80
+07
+04
+f0
+07
+80
+07
+0a
+23
+00
+00
+f0
+07
+80
+07
+04
+f0
+07
+80
+07
+0a
+23
+00
+00
+00
+06
+20
+07
+04
+00
+06
+00
+03
+0a
+23
+00
+83
+00
+06
+40
+07
+87
+00
+06
+00
+03
+0a
+23
+00
+83
+00
+06
+60
+07
+87
+00
+06
+00
+03
+0a
+23
+00
+83
+00
+06
+80
+07
+87
+00
+06
+00
+03
+0a
+23
+00
+83
+00
+06
+90
+07
+87
+00
+06
+00
+03
+0a
+23
+00
+83
+00
+06
+a0
+07
+87
+00
+06
+00
+03
+0a
+23
+00
+83
+00
+06
+b0
+07
+87
+00
+06
+00
+03
+0a
+23
+00
+83
+00
+06
+d0
+07
+87
+00
+06
+00
+03
+0a
+23
+00
+83
+00
+06
+e0
+07
+87
+00
+06
+00
+03
+0a
+23
+00
+00
+00
+06
+e0
+07
+04
+00
+06
+00
+03
+0a
+23
+00
+83
+00
+04
+50
+06
+87
+00
+04
+00
+02
+0a
+23
+00
+00
+00
+04
+50
+06
+00
+00
+04
+00
+02
+0a
+23
+00
+83
+00
+04
+00
+0a
+87
+00
+04
+00
+02
+0a
+23
+00
+00
+00
+04
+00
+0a
+00
+00
+04
+00
+02
+0a
+23
+00
+83
+80
+0d
+f1
+0d
+87
+80
+0c
+f1
+0c
+0a
+23
+00
+00
+80
+0d
+f1
+0d
+04
+80
+0c
+f1
+0c
+0a
+23
+00
+83
+b0
+0e
+10
+0e
+87
+80
+0e
+f0
+0e
+0a
+23
+00
+00
+b0
+0e
+10
+0e
+04
+80
+0e
+f0
+0e
+0a
+23
+00
+83
+a0
+0d
+f0
+0e
+87
+a0
+0d
+a0
+0e
+0a
+23
+00
+00
+a0
+0d
+f0
+0e
+04
+a0
+0d
+a0
+0e
+0a
+23
+00
+83
+00
+06
+10
+07
+87
+00
+06
+00
+03
+0a
+23
+00
+83
+00
+06
+20
+07
+87
+00
+06
+00
+03
+0a
+23
+00
+83
+f0
+07
+05
+0e
+04
+f0
+07
+05
+0e
+0a
+23
+00
+00
+f0
+07
+05
+0e
+04
+f0
+07
+05
+0e
+aa
+55
+03
+00
+17
+4b
+00
+00
+00
+aa
+55
+08
+00
+02
+4f
+06
+00
+0a
+00
+10
+00
+2c
+01
+aa
+55
+08
+00
+b0
+4f
+16
+00
+16
+00
+10
+00
+2c
+01
+aa
+55
+9c
+01
+d2
+46
+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
+01
+05
+0e
+00
+0a
+02
+40
+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
+10
+13
+00
+02
+4d
+2a
+07
+00
+00
+00
+00
+00
+00
+00
+14
+00
+02
+02
+29
+02
+00
+00
+15
+00
+02
+08
+29
+02
+01
+01
+16
+00
+02
+03
+28
+01
+10
+17
+00
+02
+4d
+2a
+03
+00
+00
+00
+18
+00
+02
+02
+29
+02
+00
+00
+19
+00
+02
+08
+29
+02
+04
+01
+1a
+00
+02
+03
+28
+01
+10
+1b
+00
+02
+4d
+2a
+02
+00
+00
+1c
+00
+02
+02
+29
+02
+00
+00
+1d
+00
+02
+08
+29
+02
+03
+01
+1e
+00
+02
+03
+28
+01
+10
+1f
+00
+02
+4d
+2a
+03
+00
+00
+00
+20
+00
+02
+02
+29
+02
+00
+00
+21
+00
+02
+08
+29
+02
+05
+01
+22
+00
+02
+03
+28
+01
+10
+23
+00
+02
+4d
+2a
+0a
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+24
+00
+02
+02
+29
+02
+00
+00
+25
+00
+02
+08
+29
+02
+06
+01
+26
+00
+02
+03
+28
+01
+12
+27
+00
+02
+4d
+2a
+02
+00
+00
+28
+00
+02
+02
+29
+02
+00
+00
+29
+00
+02
+08
+29
+02
+02
+01
+2a
+00
+02
+03
+28
+01
+02
+2b
+00
+02
+4b
+2a
+01
+00
+2c
+00
+02
+03
+28
+01
+02
+2d
+00
+02
+4a
+2a
+04
+11
+01
+00
+01
+2e
+00
+02
+03
+28
+01
+04
+2f
+00
+02
+4c
+2a
+01
+00
+30
+00
+02
+00
+28
+02
+0f
+18
+00
+00
+aa
+55
+04
+00
+d0
+49
+f3
+00
+f3
+00
+aa
+55
+f3
+00
+ae
+48
+05
+0c
+09
+01
+a1
+01
+85
+03
+09
+82
+09
+e9
+09
+ea
+09
+30
+09
+40
+0a
+23
+02
+0a
+2d
+02
+0a
+2e
+02
+15
+00
+25
+01
+75
+01
+95
+08
+81
+02
+c0
+05
+0d
+09
+04
+a1
+01
+85
+06
+09
+22
+a1
+02
+09
+42
+15
+00
+25
+01
+75
+01
+95
+01
+81
+02
+09
+32
+15
+00
+25
+01
+81
+02
+09
+51
+75
+05
+95
+01
+16
+00
+00
+26
+f0
+0f
+81
+02
+09
+47
+75
+01
+95
+01
+81
+02
+05
+01
+26
+ff
+0f
+75
+10
+55
+0d
+65
+33
+09
+30
+35
+00
+46
+00
+10
+81
+02
+09
+31
+46
+8a
+03
+81
+02
+c0
+05
+0d
+09
+05
+a1
+01
+09
+22
+a1
+02
+09
+42
+15
+00
+25
+01
+75
+01
+95
+01
+81
+02
+09
+32
+15
+00
+25
+01
+81
+02
+09
+51
+75
+05
+95
+01
+16
+00
+00
+26
+f0
+0f
+81
+02
+09
+47
+75
+01
+95
+01
+81
+02
+05
+01
+26
+ff
+0f
+75
+10
+55
+0d
+65
+33
+09
+30
+35
+00
+46
+00
+10
+81
+02
+09
+31
+46
+8a
+03
+81
+02
+c0
+c0
+05
+01
+09
+06
+a1
+01
+85
+05
+05
+04
+19
+e0
+29
+e7
+15
+00
+25
+01
+75
+01
+95
+08
+81
+02
+75
+08
+95
+01
+15
+00
+25
+f4
+05
+04
+19
+00
+29
+f4
+81
+00
+c0
+c0
+aa
+55
+10
+00
+d4
+49
+d0
+00
+2d
+12
+1e
+4b
+0f
+a4
+99
+4e
+ce
+b5
+31
+f4
+05
+79
+aa
+55
+01
+00
+48
+41
+0c
+aa
+55
+06
+00
+c3
+40
+70
+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
+3a
+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
+30
+aa
+55
+05
+00
+43
+41
+ff
+04
+00
+00
+08
+aa
+55
+01
+00
+07
+44
+01
+aa
+55
+01
+00
+09
+44
+0a
+aa
+55
+01
+00
+08
+44
+00
+aa
+55
+01
+00
+11
+44
+00
+aa
+55
+04
+00
+0d
+44
+00
+07
+ff
+07
+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
+7a
+98
+b4
+70
Index: output/program.lis
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/output/program.lis	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/output/program.lis	(working copy)
@@ -0,0 +1,33662 @@
+              include "bt_format "
+              org 0x0000
+0000 c2840018 bbit1 8 ,pf_patch_ext 
+0001 c0000051 beq patch00_0 ,p_soft_reset 
+0002 c001011d beq patch00_2 ,p_main_loop 
+0003 c0088126 beq patch02_1 ,p_set_sync_on 
+0004 c00a0304 beq patch02_4 ,p_set_lemode 
+0005 c00a81b3 beq patch02_5 ,p_rf_rx_enable 
+0006 c00c01c1 beq patch03_0 ,p_txon 
+0007 c00c8180 beq patch03_1 ,p_set_tx_power 
+0008 c00d0138 beq patch03_2 ,p_initialize_radio_cont 
+0009 c0128326 beq patch04_5 ,p_lpm_sleep 
+000a c013807c beq patch04_7 ,p_lpm_adjust_clk 
+000b c05180c2 beq patch14_3 ,p_shutter_dy_key_press 
+000c c05280fa beq patch14_5 ,p_shutter_dy_shutter_key_release 
+000d c0530087 beq patch14_6 ,p_shutter_dy_keyscan_key_check_long_press 
+000e c0538098 beq patch14_7 ,p_shutter_dy_keyscan_key_process_next 
+000f c05500ea beq patch15_2 ,p_shutter_dy_le_parse_att 
+0010 c05881d3 beq patch16_1 ,p_shutter_dy_init 
+0011 c062001f beq patch18_4 ,p_otp_write 
+0012 c06281c8 beq patch18_5 ,p_otp_read_data 
+0013 c06d02ed beq patch1b_2 ,p_sadc_calibration 
+0014 c06d8409 beq patch1b_3 ,p_adc_init_data 
+0015 c06e0446 beq patch1b_4 ,p_enable_adc 
+0016 c06e8427 beq patch1b_5 ,p_vdd_calculate_by_mode 
+0017 2020235a branch assert 
+
+pf_patch_ext:
+0018 c0120055 beq patch24_4 ,p_le_receive_rxon 
+0019 c01280d3 beq patch24_5 ,p_le_rx_dec 
+001a c01300d8 beq patch24_6 ,p_le_rx_nopayload 
+001b c01c8320 beq patch27_1 ,p_le_parse 
+001c c0268324 beq patch29_5 ,p_le_init_adv 
+001d c17f8000 rtneq patch3f_7 
+001e 2020235a branch assert 
+
+p_otp_write:
+001f 20406b34 call otp_enable_chgpump65 
+0020 20406b41 call otp_set_addr 
+0021 20406b3b call otp_reset 
+
+p_otp_program:
+0022 e8408011 ifetcht 1 ,rega 
+0023 1a20a201 increase 1 ,rega 
+0024 18000e00 force 0 ,queue 
+
+p_otp_program_bit:
+0025 793f8022 set0 mark_otp_write ,mark 
+
+p_otp_program_bit2:
+0026 a84c0000 qisolate0 temp 
+0027 20208049 branch p_otp_skip_0 ,true 
+0028 6ff08046 fetch 1 ,core_otp_din 
+0029 79207e06 set1 6 ,pdata 
+002a 79207e07 set1 7 ,pdata 
+002b 67f08046 store 1 ,core_otp_din 
+002c 70804702 jam 0x02 ,core_otp_ctrl 
+002d 70804782 jam 0x82 ,core_otp_ctrl 
+002e 793ffe07 set0 7 ,pdata 
+002f 67f08046 store 1 ,core_otp_din 
+0030 7080478a jam 0x8a ,core_otp_ctrl 
+0031 2000000b nop 11 
+0032 708047ca jam 0xca ,core_otp_ctrl 
+0033 20000021 nop 33 
+0034 7080474a jam 0x4a ,core_otp_ctrl 
+0035 2000002c nop 44 
+0036 708047ca jam 0xca ,core_otp_ctrl 
+0037 20000016 nop 22 
+0038 7080478a jam 0x8a ,core_otp_ctrl 
+0039 20000021 nop 33 
+003a 70804782 jam 0x82 ,core_otp_ctrl 
+003b 20000001 nop 1 
+003c 70804792 jam 0x92 ,core_otp_ctrl 
+003d 2000000a nop 10 
+003e 708047b2 jam 0xb2 ,core_otp_ctrl 
+003f 6ff08007 fetch 1 ,core_otp_rdata 
+0040 70804792 jam 0x92 ,core_otp_ctrl 
+0041 20000001 nop 1 
+0042 70804782 jam 0x82 ,core_otp_ctrl 
+0043 20000001 nop 1 
+0044 afec0000 qisolate0 pdata 
+0045 20208025 branch p_otp_program_bit ,true 
+0046 c5110049 bmark1 mark_otp_write ,p_otp_skip_0 
+0047 79200022 set1 mark_otp_write ,mark 
+0048 20200026 branch p_otp_program_bit2 
+
+p_otp_skip_0:
+0049 6ff10044 fetch 2 ,core_otp_addr 
+004a 1fe0fe01 increase 1 ,pdata 
+004b 67f10044 store 2 ,core_otp_addr 
+004c 18e08e01 increase 1 ,queue 
+004d 28e01e08 compare 8 ,queue ,0xf 
+004e 24208025 nbranch p_otp_program_bit ,true 
+004f c2000022 loop p_otp_program 
+0050 20206b38 branch otp_disable_chgpump 
+
+p_soft_reset:
+0051 2435a002 nbranch soft_reset + 1 ,wake 
+0052 37d98200 until null ,lpo_edge 
+0053 37d98200 until null ,lpo_edge 
+0054 20202002 branch soft_reset + 1 
+
+p_le_receive_rxon:
+0055 204025c2 call le_prep 
+0056 c597805b bmark0 mark_ble_lr ,p_le_receive_nolr 
+0057 783cfc00 pulse dewhiten_code_calc 
+0058 2000001e nop 30 
+0059 204025c2 call le_prep 
+005a 19699600 lshift3 timeup ,timeup 
+
+p_le_receive_nolr:
+005b 7856fc00 disable match 
+005c 7826fc00 enable decode_fec0 
+005d 7830fc00 enable is_rx 
+005e 78507c00 disable is_tx 
+005f 19623600 copy timeup ,stop_watch 
+0060 37c18400 correlate null ,timeout 
+0061 20370064 branch p_le_receive_on_attempt ,attempt 
+0062 1b420400 copy clke ,temp 
+0063 604b000f storet 6 ,mem_sync_clke 
+
+p_le_receive_on_attempt:
+0064 242c26fa nbranch le_unsync_end ,sync 
+0065 78287c00 enable swfine 
+0066 6fe0c167 fetch 1 ,mem_le_tx_ifs_defference 
+0067 d8404e20 arg param_20ms_init ,temp 
+0068 98408400 iadd temp ,temp 
+0069 6fe0c148 fetch 1 ,mem_system_clk 
+006a 984fb600 imul32 temp ,stop_watch 
+006b 20406877 call rf_debug_rx_sync_line 
+006c 20372677 branch le_receive_skip ,attempt 
+006d 20400072 call p_calc_clke_all_modem 
+006e 6fe08168 fetch 1 ,mem_le_state 
+006f c301a677 bbit0 lestate_got_first_packet ,le_receive_skip 
+0070 2055a477 call lpm_adjust_clk ,wake 
+0071 20202677 branch le_receive_skip 
+
+p_calc_clke_all_modem:
+0072 684b000f fetcht 6 ,mem_sync_clke 
+0073 1b427e00 copy clke ,pdata 
+0074 20407d12 call clk_diff 
+0075 1fe20400 copy pdata ,temp 
+0076 204026ff call calc_clke_all_modem 
+0077 1b425600 copy clke ,rege 
+0078 1d227e00 copy clke_rt ,pdata 
+0079 9840fe00 iadd temp ,pdata 
+007a 1fe25200 copy pdata ,clke_rt 
+007b 20600000 rtn 
+
+p_lpm_adjust_clk:
+007c c584a489 bmark0 mark_context ,lpm_clear_counter 
+007d 684a40ad fetcht 4 ,mem_sleep_counter_all 
+007e dfe00600 arg 0x600 ,pdata 
+007f 98467c00 isub temp ,null 
+0080 20610000 rtn positive 
+0081 18422200 copy temp ,rega 
+0082 684b000f fetcht 6 ,mem_sync_clke 
+0083 1d627e00 deposit rege 
+0084 20407d10 call clk_diff_rt 
+0085 1a220400 copy rega ,temp 
+0086 2020247d branch lpm_adjust_clk + 6 
+
+p_shutter_dy_keyscan_key_check_long_press:
+0087 18e27e00 copy queue ,pdata 
+0088 c000e777 beq shutter_like_key_num ,shutter_dy_link_key_long_press 
+0089 c002e765 beq shutter_left_key_num ,shutter_dy_loop_send_volume_dec_page 
+008a c0006761 beq shutter_right_key_num ,shutter_dy_loop_send_volume_inc_page 
+008b c0030090 beq shutter_fun_key_num ,p_shutter_key_fun_long_press 
+008c c0038093 beq shutter_fun1_key_num ,p_shutter_key_fun1_long_press 
+008d c0040096 beq shutter_fun2_key_num ,p_shutter_key_fun2_long_press 
+008e c0048097 beq shutter_fun3_key_num ,p_shutter_key_fun3_long_press 
+008f 202065a2 branch shutter_dy_key_long_press_set_key_normal 
+
+p_shutter_key_fun_long_press:
+0090 704fd901 jam 1 ,mem_shutter_dy_fouse_time 
+0091 704fda01 jam fouseup ,mem_shutter_fouse_select 
+0092 20600000 rtn 
+
+p_shutter_key_fun1_long_press:
+0093 704fd901 jam 1 ,mem_shutter_dy_fouse_time 
+0094 704fda02 jam fousedown ,mem_shutter_fouse_select 
+0095 20600000 rtn 
+
+p_shutter_key_fun2_long_press:
+0096 20600000 rtn 
+
+p_shutter_key_fun3_long_press:
+0097 20600000 rtn 
+
+p_shutter_dy_keyscan_key_process_next:
+0098 6fe0cec7 fetch 1 ,mem_move_mode_set 
+0099 c000e5cf beq move_single_key ,shutter_dy_skip_check_combine_key 
+009a 20406628 call shutter_dy_check_combine_key_release 
+009b 2040009e call p_shutter_dy_check_combine_key 
+009c 20740000 rtn user 
+009d 202065cf branch shutter_dy_skip_check_combine_key 
+
+p_shutter_dy_check_combine_key:
+009e d8e00000 arg 0 ,queue 
+
+p_shutter_dy_check_combine_key_loop:
+009f da404ac3 arg mem_combine_key0 ,regb 
+00a0 dfe00002 arg 2 ,pdata 
+00a1 98effe00 imul32 queue ,pdata 
+00a2 9a40a400 iadd regb ,regb 
+00a3 efe10012 ifetch 2 ,regb 
+00a4 207a0000 rtn blank 
+00a5 684906f1 fetcht 2 ,mem_key_value_temp 
+00a6 9842fc00 ixor temp ,null 
+00a7 202280aa branch p_shutter_dy_check_combine_key_parse ,zero 
+00a8 18e08e01 increase 1 ,queue 
+00a9 2020009f branch p_shutter_dy_check_combine_key_loop 
+
+p_shutter_dy_check_combine_key_parse:
+00aa 67e14acf store 2 ,mem_combine_key_state0 
+00ab 20404323 call app_led_on 
+00ac da604ad1 arg mem_combine_key0_press ,regc 
+00ad dfe0000a arg max_queue_num_combinekey ,pdata 
+00ae 98effe00 imul32 queue ,pdata 
+00af 9a60a600 iadd regc ,regc 
+00b0 20206633 branch shutter_dy_combine_key_enableuser 
+
+p_shutter_dy_check_combine_key_release:
+00b1 6fe14acf fetch 2 ,mem_combine_key_state0 
+00b2 207a0000 rtn blank 
+00b3 684906f1 fetcht 2 ,mem_key_value_temp 
+00b4 18467c00 sub temp ,0 ,null 
+00b5 202280b7 branch p_shutter_dy_check_combine_key_release_all ,zero 
+00b6 202000b6 branch p_shutter_dy_check_combine_key_release + 5 
+
+p_shutter_dy_check_combine_key_release_all:
+00b7 704ec001 jam 1 ,mem_shutter_long_key_released_flag 
+00b8 20404325 call app_led_off 
+00b9 da604b0d arg mem_combine_key_release ,regc 
+00ba 58000000 setarg 0 
+00bb 67e14acf store 2 ,mem_combine_key_state0 
+00bc 70489e32 jam 50 ,mem_shutter_1s_timer 
+00bd 20406633 call shutter_dy_combine_key_enableuser 
+00be 6fe0c523 fetch 1 ,mem_shutter_key_num 
+00bf 1feff20a mul32 pdata ,shutter_key_conf_sate_bytes ,loopcnt 
+00c0 d8a045fd arg mem_shutter_nv_data ,contw 
+00c1 20207ca1 branch clear_mem 
+
+p_shutter_dy_key_press:
+00c2 6fe0cf9f fetch 1 ,mem_shutter_link_loop_flag 
+00c3 243a00cc nbranch p_shutter_dy_key_value_filter ,blank 
+
+p_shutter_dy_key_press_next:
+00c4 704c0001 jam 1 ,mem_shutter_key_pressed 
+00c5 20404323 call app_led_on 
+00c6 204000cf call p_shutter_dy_key_press_clk 
+00c7 20406561 call shutter_dy_jude_queue_size 
+00c8 20216500 branch shutter_dy_over_clear ,positive 
+00c9 18e27e00 copy queue ,pdata 
+00ca 67e0cec5 store 1 ,mem_last_press_key_value 
+00cb 20600000 rtn 
+
+p_shutter_dy_key_value_filter:
+00cc 18e27e00 copy queue ,pdata 
+00cd c1808000 rtnne shutter_like_key_num 
+00ce 202000c4 branch p_shutter_dy_key_press_next 
+
+p_shutter_dy_key_press_clk:
+00cf dfe0000a arg shutter_key_conf_sate_bytes ,pdata 
+00d0 98effe00 imul32 queue ,pdata 
+00d1 da6045fd arg mem_shutter_nv_data ,regc 
+00d2 2020652f branch shutter_dy_key_press_clk + 3 
+
+p_le_rx_dec:
+00d3 2040281c call le_check_retransmit 
+00d4 6a20804d fetchr rega ,1 ,mem_le_rxbuf_data_length 
+00d5 1a20a3fc increase -4 ,rega 
+00d6 242126fa nbranch le_crc_fail_consecutive ,positive 
+00d7 2020268e branch le_rx_dec + 6 
+
+p_le_rx_nopayload:
+00d8 09800018 parse demod ,bucket ,24 
+00d9 1fef7e00 rshift32 pdata ,pdata 
+00da 1ff17e00 rshift16 pdata ,pdata 
+00db e7e18005 istore 3 ,contw 
+00dc 78287c00 enable swfine 
+00dd 2040270d call le_set_until_tx_timer 
+00de 202326f6 branch le_crc_fail ,crc_failed 
+00df c59926af bmark0 mark_ble_encryption ,le_rx_match 
+00e0 6fe0804d fetch 1 ,mem_le_rxbuf_data_length 
+00e1 203a26af branch le_rx_match ,blank 
+00e2 1fe0fffc increase -4 ,pdata 
+00e3 67e0804d store 1 ,mem_le_rxbuf_data_length 
+00e4 204072cb call wait_ccm_done 
+00e5 6ff08108 fetch 1 ,core_misc_status 
+00e6 c303a6fa bbit0 7 ,le_crc_fail_consecutive 
+00e7 1800700c force regidx_result ,regext_index 
+00e8 65e20154 storer regext ,4 ,mem_le_peer_mic 
+00e9 202026af branch le_rx_match 
+
+p_shutter_dy_le_parse_att:
+00ea 1a220c00 copy rega ,contr 
+00eb efe18006 ifetch 3 ,contr 
+00ec 67e1c397 store 3 ,mem_le_att_opcode 
+00ed c003e704 beq attop_find_by_type_value_response ,shutter_dy_le_parse_att_find_by_type_value_rsp 
+00ee c00080f0 beq attop_error_response ,p_shutter_dy_le_parse_error_rsp 
+00ef 202066db branch shutter_dy_le_parse_att + 6 
+
+p_shutter_dy_le_parse_error_rsp:
+00f0 18c08dfe increase -2 ,contr 
+00f1 efe08006 ifetch 1 ,contr 
+00f2 c00300f4 beq attop_find_by_type_value_request ,p_shutter_dy_not_iphone_read_conf 
+00f3 20600000 rtn 
+
+p_shutter_dy_not_iphone_read_conf:
+00f4 202000f5 branch p_shutter_dy_remote_not_iphone 
+
+p_shutter_dy_remote_not_iphone:
+00f5 704eaa01 jam 1 ,mem_shutter_back_count 
+00f6 7049e400 jam 0 ,mem_iphone_flag 
+00f7 704eb200 jam 0 ,mem_last_shutter_le_iphone_flag 
+00f8 7049e50a jam 10 ,mem_send_data_delay 
+00f9 20600000 rtn 
+
+p_shutter_dy_shutter_key_release:
+00fa 2040654b call shutter_dy_key_release_led 
+
+p_shutter_dy_shutter_key_release_time:
+00fb dfe0000a arg shutter_key_conf_sate_bytes ,pdata 
+00fc 98effe00 imul32 queue ,pdata 
+00fd da6045fd arg mem_shutter_nv_data ,regc 
+00fe 9a60a600 iadd regc ,regc 
+00ff e8420013 ifetcht 4 ,regc 
+0100 18467c00 sub temp ,0 ,null 
+0101 20628000 rtn zero 
+0102 1c427e00 copy clkn_bt ,pdata 
+0103 98460400 isub temp ,temp 
+0104 24417806 ncall ui_timer_timeout ,positive 
+0105 1a608c09 add regc ,key_state_longpress_offset ,contr 
+0106 efe08006 ifetch 1 ,contr 
+0107 243a0109 nbranch p_shutter_dy_push_queue_long_release ,blank 
+0108 20206547 branch shutter_dy_shutter_key_release_time + 13 
+
+p_shutter_dy_push_queue_long_release:
+0109 704ec001 jam 1 ,mem_shutter_long_key_released_flag 
+010a 2040656b call shutter_clear_dy_key_state 
+010b 20406769 call shutter_dy_clear_volume_timer 
+010c 18e27e00 copy queue ,pdata 
+010d c0030112 beq shutter_fun_key_num ,p_fouse_up_long_release 
+010e c0038116 beq shutter_fun1_key_num ,p_fouse_down_long_release 
+010f da604aae arg mem_key0_long_release ,regc 
+0110 dfe00003 arg max_queue_num_long_release ,pdata 
+0111 2020655a branch shutter_dy_push_queue_press_or_release 
+
+p_fouse_up_long_release:
+0112 2040011a call p_shutter_fouse_release_clear 
+0113 2040038f call p_shutter_dy_fouseup_init 
+0114 da604fc4 arg mem_fouse_up_long_release ,regc 
+0115 20206371 branch push_buffer_in_queue 
+
+p_fouse_down_long_release:
+0116 2040011a call p_shutter_fouse_release_clear 
+0117 204003b2 call p_shutter_dy_fousedown_init 
+0118 da604fd2 arg mem_fouse_down_long_release ,regc 
+0119 20206371 branch push_buffer_in_queue 
+
+p_shutter_fouse_release_clear:
+011a 704fd900 jam 0 ,mem_shutter_dy_fouse_time 
+011b 704fda00 jam 0 ,mem_shutter_fouse_select 
+011c 20600000 rtn 
+
+p_main_loop:
+011d 20407552 call sp_calc_sequence_256 
+011e 20407448 call sp_calc_sequence_256_check 
+011f 20402a45 call le_advertising_dispatch 
+0120 2040202a call idle_dispatch 
+0121 204042ad call app_process_idle 
+0122 20402018 call connection_dispatch 
+0123 2040310f call g24_dispatch 
+0124 2040248c call lpm_dispatch 
+0125 2020011d branch p_main_loop 
+
+p_set_sync_on:
+0126 708a0f60 jam 0x60 ,0x8a0f 
+0127 708a10aa jam 0xaa ,0x8a10 
+0128 708a127a jam 0x7a ,0x8a12 
+0129 708a2500 jam 0x00 ,0x8a25 
+012a 708a2600 jam 0x00 ,0x8a26 
+012b 2000003c nop 60 
+012c 708a2020 jam 0x20 ,0x8a20 
+012d 708a23f5 jam 0xf5 ,0x8a23 
+012e 708a2412 jam 0x12 ,0x8a24 
+012f 708a2410 jam 0x10 ,0x8a24 
+0130 2000003c nop 60 
+0131 708a1260 jam 0x60 ,0x8a12 
+0132 708a23dd jam 0xdd ,0x8a23 
+0133 20600000 rtn 
+
+p_set_ck2rfp11:
+0134 37d98200 until null ,lpo_edge 
+0135 70813c58 jam 0x58 ,0x813c 
+0136 37d98200 until null ,lpo_edge 
+0137 20600000 rtn 
+
+p_initialize_radio_cont:
+0138 7001bb00 jam 0 ,mem_le_testtype 
+0139 7001bc00 jam 0 ,mem_cmd_le_create_conn 
+013a 37d98200 until null ,lpo_edge 
+013b 7089460d jam 0x0d ,0x8946 
+013c 70896f10 jam 0x10 ,0x896f 
+013d 708a8840 jam 0x40 ,core_rx_cfg0 
+013e 708a13cd jam 0xcd ,0x8a13 
+013f 708a0610 jam 0x10 ,0x8a06 
+0140 708a844a jam 0x4a ,0x8a84 
+0141 708a8540 jam 0x40 ,0x8a85 
+0142 708a16fe jam 0xfe ,0x8a16 
+0143 20400188 call p_set_otp_config 
+0144 6fe0c436 fetch 1 ,mem_wdt_always_work 
+0145 205a70d7 call wdt_set_disable ,blank 
+0146 24558134 ncall p_set_ck2rfp11 ,wake 
+0147 37d98200 until null ,lpo_edge 
+0148 70813b5f jam 0x5f ,0x813b 
+0149 6fe0c099 fetch 1 ,mem_fcomp_div 
+014a c0080175 beq xtal_16m ,p_initialize_radio_16m 
+014b 6fe0c438 fetch 1 ,mem_ring_ibias_trim 
+014c 1fe1fe04 or_into 0x04 ,pdata 
+014d 67f08a02 store 1 ,0x8a02 
+014e 70890f01 jam 0x01 ,0x890f 
+014f 708a8024 jam 0x24 ,0x8a80 
+0150 708a8162 jam 0x62 ,0x8a81 
+0151 58e61212 setarg 0xe61212 
+0152 67f18a73 store 3 ,0x8a73 
+
+p_initialize_radio2:
+0153 708a8660 jam 0x60 ,0x8a86 
+0154 708a8b3b jam 0x3b ,0x8a8b 
+0155 20400167 call p_dpll_on 
+0156 70804300 jam 0 ,core_config 
+0157 70804205 jam clksel_dpll ,core_clksel 
+0158 58557474 setarg 0x557474 
+0159 67f18968 store 3 ,0x8968 
+015a 7089606e jam 0x6e ,0x8960 
+015b 204002bf call p_rx_dcoc 
+015c 204002ea call p_rfpll_aac_ghpc 
+015d 20400161 call p_set_xtal_cap 
+015e 7041480c jam system_clk_12m ,mem_system_clk 
+015f 20406f4e call sadc_calibration 
+0160 202002ec branch p_dpll_ring_ibias_calc 
+
+p_set_xtal_cap:
+0161 20758000 rtn wake 
+0162 37d98200 until null ,lpo_edge 
+0163 6fe0c11c fetch 1 ,mem_xtal_c_sel 
+0164 67f0813a store 1 ,core_xtal_cap 
+0165 37d98200 until null ,lpo_edge 
+0166 20600000 rtn 
+
+p_dpll_on:
+0167 6fe0c099 fetch 1 ,mem_fcomp_div 
+0168 c00c016d beq xtal_24m ,p_dpll_on_24m 
+0169 6fe0c438 fetch 1 ,mem_ring_ibias_trim 
+016a 1fe1fe06 or_into 0x06 ,pdata 
+016b 67f08a02 store 1 ,0x8a02 
+016c 708a05e0 jam 0xe0 ,0x8a05 
+
+p_dpll_on_24m:
+016d 708a00d8 jam 0xd8 ,0x8a00 
+016e 2000003c nop 60 
+016f 708a01a0 jam 0xa0 ,0x8a01 
+0170 708a00df jam 0xdf ,0x8a00 
+0171 708a01fa jam 0xfa ,0x8a01 
+0172 20000014 nop 20 
+0173 708a009f jam 0x9f ,0x8a00 
+0174 20600000 rtn 
+
+p_initialize_radio_16m:
+0175 6fe0c438 fetch 1 ,mem_ring_ibias_trim 
+0176 1fe1fe06 or_into 0x06 ,pdata 
+0177 67f08a02 store 1 ,0x8a02 
+0178 70890f00 jam 0x00 ,0x890f 
+0179 708a8023 jam 0x23 ,0x8a80 
+017a 708a81b0 jam 0xb0 ,0x8a81 
+017b 58e40909 setarg 0xe40909 
+017c 67f18a73 store 3 ,0x8a73 
+017d 708a762a jam 0x2a ,0x8a76 
+017e 70890204 jam 0x04 ,0x8902 
+017f 20200153 branch p_initialize_radio2 
+
+p_set_tx_power:
+0180 6fe0c141 fetch 1 ,mem_tx_power 
+0181 c0050183 beq tx_power_10db ,p_set_tx_power_10db 
+0182 2020220e branch set_tx_power + 2 
+
+p_set_tx_power_10db:
+0183 708a1425 jam 0x25 ,0x8a14 
+0184 58a93f3f setarg 0xa93f3f 
+0185 67f18a60 store 3 ,0x8a60 
+0186 708a631f jam 0x1f ,0x8a63 
+0187 20600000 rtn 
+
+p_set_otp_config:
+0188 203581af branch p_set_otp_config_wake ,wake 
+0189 6fe2020d fetch 4 ,mem_otp_core_ldo 
+018a 207a0000 rtn blank 
+018b 37d98200 until null ,lpo_edge 
+018c 6ff08136 fetch 1 ,0x8136 
+018d 1fe17ef0 and pdata ,0xf0 ,pdata 
+018e 6848820d fetcht 1 ,mem_otp_core_ldo 
+018f 9841fe00 ior temp ,pdata 
+0190 67f08136 store 1 ,0x8136 
+0191 37d98200 until null ,lpo_edge 
+0192 6ff08138 fetch 1 ,0x8138 
+0193 1fe17e07 and pdata ,0x7 ,pdata 
+0194 6848820e fetcht 1 ,mem_otp_verf_bg 
+0195 18498400 lshift3 temp ,temp 
+0196 9841fe00 ior temp ,pdata 
+0197 67f08138 store 1 ,0x8138 
+0198 37d98200 until null ,lpo_edge 
+
+p_set_otp_config2:
+0199 6ff08acb fetch 1 ,0x8acb 
+019a 1fe17ef0 and pdata ,0xf0 ,pdata 
+019b 6848820f fetcht 1 ,mem_otp_charge_pump 
+019c 6048c15b storet 1 ,mem_otp_charge_pump_x 
+019d 9841fe00 ior temp ,pdata 
+019e 67f08acb store 1 ,0x8acb 
+019f 6fe08210 fetch 1 ,mem_otp_dpll_ibais 
+01a0 67e0c15c store 1 ,mem_otp_dpll_ibais_x 
+01a1 2feffe03 isolate1 3 ,pdata 
+01a2 6ff08a06 fetch 1 ,0x8a06 
+01a3 7920fe07 setflag true ,7 ,pdata 
+01a4 67f08a06 store 1 ,0x8a06 
+01a5 6fe08210 fetch 1 ,mem_otp_dpll_ibais 
+01a6 1fe10407 and pdata ,7 ,temp 
+01a7 18520400 lshift4 temp ,temp 
+01a8 18438400 lshift temp ,temp 
+01a9 6048c438 storet 1 ,mem_ring_ibias_trim 
+01aa 6ff08a02 fetch 1 ,0x8a02 
+01ab 1fe17e1f and pdata ,0x1f ,pdata 
+01ac 9841fe00 ior temp ,pdata 
+01ad 67f08a02 store 1 ,0x8a02 
+01ae 20600000 rtn 
+
+p_set_otp_config_wake:
+01af 6fe1415b fetch 2 ,mem_otp_charge_pump_x 
+01b0 207a0000 rtn blank 
+01b1 67e1020f store 2 ,mem_otp_charge_pump 
+01b2 20200199 branch p_set_otp_config2 
+
+p_rf_rx_enable:
+01b3 2040686f call rf_debug_rx_gpio_high 
+01b4 204021ba call rf_rx_agc_set 
+01b5 18002a08 force 8 ,radio_ctrl 
+01b6 18002a00 force 0 ,radio_ctrl 
+01b7 580aaada setarg 0x0aaada 
+01b8 67f18a0f store 3 ,0x8a0f 
+01b9 708a2540 jam 0x40 ,0x8a25 
+01ba 708a2610 jam 0x10 ,0x8a26 
+01bb 2000003c nop 60 
+01bc 708a01fb jam 0xfb ,0x8a01 
+01bd 708a25ff jam 0xff ,0x8a25 
+01be 708a2630 jam 0x30 ,0x8a26 
+01bf 708a16fe jam 0xfe ,0x8a16 
+01c0 202021b4 branch rf_rx_enable + 14 
+
+p_txon:
+01c1 580aaa7e setarg 0x0aaa7e 
+01c2 67f18a0f store 3 ,0x8a0f 
+01c3 2000003c nop 60 
+01c4 708a2500 jam 0x00 ,0x8a25 
+01c5 708a260d jam 0x0d ,0x8a26 
+01c6 708a16f6 jam 0xf6 ,0x8a16 
+01c7 20202203 branch txon + 7 
+
+p_otp_read_data:
+01c8 20406b3a call enable_otp_read 
+01c9 20406b75 call otp_read_data + 1 
+01ca 20206b38 branch otp_disable_chgpump 
+
+p_shutter_dy_key_conf:
+01cb 6fe0cee3 fetch 1 ,mem_shutter_key_num_conf 
+01cc 1fe27200 copy pdata ,loopcnt 
+01cd 67e0c523 store 1 ,mem_shutter_key_num 
+01ce 58004523 setarg mem_shutter_key_num 
+01cf 67e1442c store 2 ,mem_keyscan_ptr 
+01d0 d8c04ee4 arg mem_shutter_dy_key_conf ,contr 
+01d1 d8a04526 arg mem_shutter_key_conf0 ,contw 
+01d2 20207cda branch memcpy 
+
+p_shutter_dy_init:
+01d3 20407396 call enable_authrom 
+01d4 20758000 rtn wake 
+01d5 204042a3 call app_param_init 
+01d6 204003c5 call p_shutter_adc_config_init 
+01d7 70409400 jam 0 ,mem_lpm_mode 
+01d8 204001cb call p_shutter_dy_key_conf 
+01d9 20406459 call shutter_dy_adv_conf 
+01da 58000001 setarg 0x0001 
+01db 67e144f6 store 2 ,mem_ble_shutter_reconn_timeout 
+01dc 7040a60a jam 0x0a ,mem_lpm_overhead 
+01dd 5800024d setarg p_shutter_dy_process_idle 
+01de 67e143db store 2 ,mem_cb_idle_process 
+01df 5800022a setarg p_shutter_dy_process_bb_event 
+01e0 67e143dd store 2 ,mem_cb_bb_event_process 
+01e1 5800023f setarg p_ble_shutter_receive_data 
+01e2 67e143df store 2 ,mem_cb_att_write 
+01e3 580062d3 setarg shutter_le_scale_lpm_lock 
+01e4 67e143d3 store 2 ,mem_cb_check_wakelock 
+01e5 580001f7 setarg p_shutter_le_before_hibernate 
+01e6 67e143d5 store 2 ,mem_cb_before_hibernate 
+01e7 58006329 setarg shutter_process_lpm_before 
+01e8 67e143d7 store 2 ,mem_cb_before_lpm 
+01e9 5800020c setarg p_shutter_dy_le_bb_event_timer 
+01ea 67e143e3 store 2 ,mem_cb_event_timer 
+01eb 58006505 setarg shutter_dy_key_change 
+01ec 67e14524 store 2 ,mem_cb_shutter_keycan 
+01ed 58006340 setarg shutter_soft_swtich_power_on 
+01ee 67e1451f store 2 ,mem_shutter_soft_switch_poweron_callback_function 
+01ef 5800639a setarg shutter_soft_swtich_power_off 
+01f0 67e14521 store 2 ,mem_shutter_soft_switch_poweroff_callback_function 
+01f1 204062ca call shutter_common_init + 8 
+01f2 6fe14f87 fetch 2 ,mem_shutter_le_pairing_handle 
+01f3 67e14332 store 2 ,mem_le_pairing_handle 
+01f4 6fe4450a fetch 8 ,mem_ble_shutter_interval_min_new 
+01f5 67e44502 store 8 ,mem_ble_shutter_interval_min 
+01f6 202062bd branch shutter_power_switch 
+
+p_shutter_le_before_hibernate:
+01f7 20406f35 call gpio_set_before_lpm 
+01f8 7044ecff jam ui_button_gpio_disable ,mem_ui_button_gpio 
+01f9 204001fc call p_set_key_gpio_before_hiernate 
+01fa 2040701b call keyscan_process_lpm_before 
+01fb 2020739a branch disable_authrom 
+
+p_set_key_gpio_before_hiernate:
+01fc 6fe0c6ce fetch 1 ,mem_shutter_hard_soft_switch_case_temp 
+01fd 207a0000 rtn blank 
+01fe 6fe0cee3 fetch 1 ,mem_shutter_key_num_conf 
+01ff 1fe27200 copy pdata ,loopcnt 
+0200 da204526 arg mem_shutter_key_conf0 ,rega 
+
+p_set_key_gpio_loop:
+0201 efe08011 ifetch 1 ,rega 
+0202 6848c6cf fetcht 1 ,mem_shutter_soft_switch_button_gpio_temp 
+0203 98467c00 isub temp ,null 
+0204 20228207 branch p_set_key_gpio_loop_end ,zero 
+0205 1fe20400 copy pdata ,temp 
+0206 2040020a call p_shutter_gpio_config_input_pd 
+
+p_set_key_gpio_loop_end:
+0207 1a20a201 increase 1 ,rega 
+0208 c2000201 loop p_set_key_gpio_loop 
+0209 20600000 rtn 
+
+p_shutter_gpio_config_input_pd:
+020a 79200407 set1 gpio_active_bit ,temp 
+020b 20206edd branch gpio_config_input 
+
+p_shutter_dy_le_bb_event_timer:
+020c 204003cd call p_shutter_adc_read_timer 
+020d 20400212 call p_shutter_like_key_press_event_timer 
+020e 2040676c call shutter_dy_link_key_loop_timer 
+020f 2040675a call shutter_dy_long_key_volume_timer 
+0210 20400223 call p_shutter_check_sleep_timer 
+0211 202064d9 branch shutter_dy_check_power_off_timer 
+
+p_shutter_like_key_press_event_timer:
+0212 da604fee arg mem_shutter_like_key_press_time ,regc 
+0213 da400215 arg p_shutter_like_key_press_event_timeout ,regb 
+0214 202042e0 branch timer_single_step 
+
+p_shutter_like_key_press_event_timeout:
+0215 6fe0cfef fetch 1 ,mem_shutter_photo_click_count 
+0216 704fef00 jam 0 ,mem_shutter_photo_click_count 
+0217 c000821a beq 1 ,p_shutter_like_key_press 
+0218 c001021c beq 2 ,p_shutter_like_key_press_event_double 
+0219 20600000 rtn 
+
+p_shutter_like_key_press:
+021a da604a3f arg mem_key1_release_new ,regc 
+021b 20206371 branch push_buffer_in_queue 
+
+p_shutter_like_key_press_event_double:
+021c 2040021e call p_shutter_like_key_press_event_double_ptr 
+021d 20206371 branch push_buffer_in_queue 
+
+p_shutter_like_key_press_event_double_ptr:
+021e da604fdc arg mem_shutter_mode_step_android ,regc 
+021f 20406730 call shutter_dy_check_iphone 
+0220 207a0000 rtn blank 
+0221 da604fe5 arg mem_shutter_mode_step_ios ,regc 
+0222 20600000 rtn 
+
+p_shutter_check_sleep_timer:
+0223 da604518 arg mem_shutter_sleep_timer ,regc 
+0224 da400226 arg p_shutter_sleep_timeout ,regb 
+0225 202042e7 branch timer_single_step_2b 
+
+p_shutter_sleep_timeout:
+0226 70451c02 jam ss_state_power_off ,mem_shutter_soft_switch_power_state 
+0227 20404325 call app_led_off 
+0228 2040634e call shutter_disconnect_current_connection 
+0229 2020639e branch shutter_wait_power_off 
+
+p_shutter_dy_process_bb_event:
+022a 1a627e00 copy regc ,pdata 
+022b c0200236 beq bt_evt_le_parse_conn_papa_update_rsp ,p_ble_shutter_process_parse_connect_parameter_update_response 
+022c c0188234 beq bt_evt_le_pairing_success ,p_ble_shutter_pairing_success 
+022d c00a8231 beq bt_evt_le_disconnected ,p_ble_shutter_dy_process_baseband_disconnect 
+022e c00a0230 beq bt_evt_le_connected ,p_ble_shutter_dy_process_baseband_connect 
+022f 202064e0 branch shutter_dy_process_bb_event + 1 
+
+p_ble_shutter_dy_process_baseband_connect:
+0230 202064f4 branch ble_shutter_dy_process_baseband_connect 
+
+p_ble_shutter_dy_process_baseband_disconnect:
+0231 6fe14512 fetch 2 ,mem_ble_shutter_discovery_timeout 
+0232 67e14518 store 2 ,mem_shutter_sleep_timer 
+0233 202064ef branch ble_shutter_dy_process_baseband_disconnect 
+
+p_ble_shutter_pairing_success:
+0234 704ec201 jam 1 ,mem_shutter_pairing_success 
+0235 20600000 rtn 
+
+p_ble_shutter_process_parse_connect_parameter_update_response:
+0236 6fe1433c fetch 2 ,mem_le_l2cap_signaling_conn_param_update_rsp_result 
+0237 c1000000 rtneq ble_signaling_connect_parameter_update_accepted 
+0238 6fe4450a fetch 8 ,mem_ble_shutter_interval_min_new 
+0239 207a0000 rtn blank 
+023a 20406730 call shutter_dy_check_iphone 
+023b 243a024a nbranch p_parameter_updata_response_ios ,blank 
+023c 6fe44f02 fetch 8 ,mem_ble_shutter_dy_interval_min_new 
+023d 67e442d3 store 8 ,mem_le_interval_min 
+023e 20202e93 branch le_l2cap_tx_update_req 
+
+p_ble_shutter_receive_data:
+023f 6fe14398 fetch 2 ,mem_le_att_handle 
+0240 c0120242 beq gatt_keyboard_write_handle_new ,p_ble_shutter_process_reconnect_complete 
+0241 20600000 rtn 
+
+p_ble_shutter_process_reconnect_complete:
+0242 204078ad call queue_init 
+0243 7044f101 jam 1 ,mem_ble_shutter_enable_notify 
+0244 20406730 call shutter_dy_check_iphone 
+0245 2040432b call app_lpm_mult_enable 
+0246 243a024a nbranch p_parameter_updata_response_ios ,blank 
+0247 6fe44f02 fetch 8 ,mem_ble_shutter_dy_interval_min_new 
+0248 67e442d3 store 8 ,mem_le_interval_min 
+0249 20202e93 branch le_l2cap_tx_update_req 
+
+p_parameter_updata_response_ios:
+024a 6fe44fb0 fetch 8 ,mem_ble_shutter_dy_interval_min_ios 
+024b 67e442d3 store 8 ,mem_le_interval_min 
+024c 20202e93 branch le_l2cap_tx_update_req 
+
+p_shutter_dy_process_idle:
+024d 20400258 call p_shutter_dy_shutter_send_data_to_master 
+024e d8e00009 arg key_scan_timer ,queue 
+024f 20407cef call timer_check 
+0250 247a0000 nrtn blank 
+0251 58000020 setarg 0x20 
+0252 d8e00009 arg key_scan_timer ,queue 
+0253 20407ce1 call timer_init 
+0254 78547c00 disable user 
+0255 2040701b call keyscan_process_lpm_before 
+0256 20400272 call p_shutter_dy_keyscan_key_process 
+0257 2020034f branch p_key_evt_ui_timer_check 
+
+p_shutter_dy_shutter_send_data_to_master:
+0258 6fe144e9 fetch 2 ,mem_ui_state_map 
+0259 c284825d bbit1 ui_state_ble_connected ,p_shutter_dy_pop_queue_to_ble_data 
+025a d8a045da arg mem_queue_curr_num ,contw 
+025b df200023 arg 35 ,loopcnt 
+025c 20207ca1 branch clear_mem 
+
+p_shutter_dy_pop_queue_to_ble_data:
+025d 20402a28 call le_fifo_check_nearly_full 
+025e 247a0000 nrtn blank 
+025f 204078fa call queue_empty 
+0260 207a0000 rtn blank 
+0261 684a49e6 fetcht 4 ,mem_key_send_clk 
+0262 1c427e00 copy clkn_bt ,pdata 
+0263 98460400 isub temp ,temp 
+0264 20628000 rtn zero 
+0265 24210269 nbranch p_shutter_dy_pop_queue_to_ble_data2 ,positive 
+0266 6fe0c9e5 fetch 1 ,mem_send_data_delay 
+0267 98467c00 isub temp ,null 
+0268 20610000 rtn positive 
+
+p_shutter_dy_pop_queue_to_ble_data2:
+0269 1c427e00 copy clkn_bt ,pdata 
+026a 67e249e6 store 4 ,mem_key_send_clk 
+026b 20406385 call queue_pop_one_byte 
+026c 24740000 nrtn user 
+026d 1fe0ffff pincrease -1 
+026e 1feffe0d mul32 pdata ,13 ,pdata 
+026f d8404c02 arg mem_shutter_mousekey_value_list ,temp 
+0270 98408c00 iadd temp ,contr 
+0271 202063cb branch le_send_notify_from_list 
+
+p_shutter_dy_keyscan_key_process:
+0272 6fe148ac fetch 2 ,mem_key_value_xmem 
+0273 67e1442e store 2 ,mem_key_value_retention 
+0274 204065be call shutter_dy_keyscan_key_process_next 
+0275 6fe1442e fetch 2 ,mem_key_value_retention 
+0276 67e148ac store 2 ,mem_key_value_xmem 
+0277 d8e00000 arg 0 ,queue 
+0278 6fe0c523 fetch 1 ,mem_shutter_key_num 
+0279 1fe27200 copy pdata ,loopcnt 
+027a da6045fd arg mem_shutter_nv_data ,regc 
+
+p_shutter_dy_keyscan_key_check_release_loop:
+027b 1f227e00 copy loopcnt ,pdata 
+027c 67e10678 store 2 ,mem_temp 
+027d 1a627e00 copy regc ,pdata 
+027e 67e1068c store 2 ,mem_regc 
+027f 18e27e00 copy queue ,pdata 
+0280 67e1067a store 2 ,mem_temp + 2 
+0281 2040028f call p_shutter_dy_keyscan_key_check_release 
+0282 6fe1068c fetch 2 ,mem_regc 
+0283 1fe22600 copy pdata ,regc 
+0284 6fe1067a fetch 2 ,mem_temp + 2 
+0285 1fe20e00 copy pdata ,queue 
+0286 2040658b call shutter_dy_keyscan_key_check_long_press 
+0287 6fe1067a fetch 2 ,mem_temp + 2 
+0288 1fe08e01 add pdata ,1 ,queue 
+0289 6fe1068c fetch 2 ,mem_regc 
+028a 1fe0a60a add pdata ,shutter_key_conf_sate_bytes ,regc 
+028b 6fe10678 fetch 2 ,mem_temp 
+028c 1fe27200 copy pdata ,loopcnt 
+028d c200027b loop p_shutter_dy_keyscan_key_check_release_loop 
+028e 20600000 rtn 
+
+p_shutter_dy_keyscan_key_check_release:
+028f 1a60a405 add regc ,key_state_release_clk_offset ,regb 
+0290 efe20012 ifetch key_state_release_clk_length ,regb 
+0291 207a0000 rtn blank 
+0292 1fe20400 copy pdata ,temp 
+0293 1c427e00 copy clkn_bt ,pdata 
+0294 98460400 isub temp ,temp 
+0295 24417806 ncall ui_timer_timeout ,positive 
+0296 580003e8 setarg 1000 
+0297 98467c00 isub temp ,null 
+0298 20200299 branch p_shutter_dy_push_queue_release 
+
+p_shutter_dy_push_queue_release:
+0299 1a608c04 add regc ,4 ,contr 
+029a efe08006 ifetch 1 ,contr 
+029b 2020029c branch p_shutter_dy_push_queue_release1 
+
+p_shutter_dy_push_queue_release1:
+029c 2040656b call shutter_clear_dy_key_state 
+
+p_shutter_dy_push_queue_release1_next:
+029d 20406561 call shutter_dy_jude_queue_size 
+029e 20216500 branch shutter_dy_over_clear ,positive 
+029f 204002b7 call p_shutter_dy_le_get_release_ptr 
+02a0 18e27e00 copy queue ,pdata 
+02a1 c00302a6 beq shutter_fun_key_num ,p_shutter_fun_key_release 
+02a2 c00382a8 beq shutter_fun1_key_num ,p_shutter_fun1_key_release 
+02a3 c00402aa beq shutter_fun2_key_num ,p_shutter_fun2_key_release 
+02a4 c00082b1 beq shutter_like_key_num ,p_shutter_fun3_key_release 
+02a5 20206558 branch shutter_dy_push_queue_release1_next + 4 
+
+p_shutter_fun_key_release:
+02a6 da604fb8 arg mem_fouse_up_press ,regc 
+02a7 20206371 branch push_buffer_in_queue 
+
+p_shutter_fun1_key_release:
+02a8 da604fc6 arg mem_fouse_down_press ,regc 
+02a9 20206371 branch push_buffer_in_queue 
+
+p_shutter_fun2_key_release:
+02aa 204002ac call p_shutter_mode_step_ptr 
+02ab 20206371 branch push_buffer_in_queue 
+
+p_shutter_mode_step_ptr:
+02ac da604fdc arg mem_shutter_mode_step_android ,regc 
+02ad 20406730 call shutter_dy_check_iphone 
+02ae 207a0000 rtn blank 
+02af da604fe5 arg mem_shutter_mode_step_ios ,regc 
+02b0 20600000 rtn 
+
+p_shutter_fun3_key_release:
+02b1 704fee05 jam 5 ,mem_shutter_like_key_press_time 
+02b2 6fe0cfef fetch 1 ,mem_shutter_photo_click_count 
+02b3 c1010000 rtneq 2 
+02b4 1fe0fe01 increase 1 ,pdata 
+02b5 67e0cfef store 1 ,mem_shutter_photo_click_count 
+02b6 20600000 rtn 
+
+p_shutter_dy_le_get_release_ptr:
+
+p_shutter_dy_le_get_release_ptr_set:
+02b7 da604a30 arg mem_key0_release_new ,regc 
+02b8 7049e55a jam 90 ,mem_send_data_delay 
+02b9 20406730 call shutter_dy_check_iphone 
+02ba 207a0000 rtn blank 
+02bb da604b57 arg mem_key0_release_new_i ,regc 
+02bc 18e27e00 copy queue ,pdata 
+02bd 7049e514 jam 20 ,mem_send_data_delay 
+02be 20600000 rtn 
+
+p_rx_dcoc:
+02bf 20758000 rtn wake 
+02c0 20402160 call set_sync_on 
+02c1 d8400027 arg 39 ,temp 
+02c2 2040216f call set_freq_rx 
+02c3 204021a6 call rf_rx_enable 
+02c4 708a257f jam 0x7f ,0x8a25 
+02c5 708a301a jam 0x1a ,0x8a30 
+02c6 708a3178 jam 0x78 ,0x8a31 
+02c7 708a8fb2 jam 0xb2 ,0x8a8f 
+02c8 708ac200 jam 0 ,0x8ac2 
+02c9 708ac300 jam 0 ,0x8ac3 
+02ca d8e00006 arg 6 ,queue 
+02cb 204002dc call p_rx_dcoc_avg 
+02cc 2a2ffe0d isolate1 13 ,rega 
+02cd 2040211d call qset_start 
+02ce 2a4ffe0d isolate1 13 ,regb 
+02cf 2040211e call qset_p 
+02d0 d8e00005 arg 5 ,queue 
+
+p_rx_dcoc_loop2:
+02d1 2040211c call qset1_p 
+02d2 2040211e call qset_p 
+02d3 204002dc call p_rx_dcoc_avg 
+02d4 d8a08ac2 arg 0x8ac2 ,contw 
+02d5 1a31fe00 rshift4 rega ,pdata 
+02d6 20402117 call qsetxor 
+02d7 1a51fe00 rshift4 regb ,pdata 
+02d8 20402117 call qsetxor 
+02d9 18e08fff increase -1 ,queue 
+02da 202102d1 branch p_rx_dcoc_loop2 ,positive 
+02db 2020214f branch rx_dcoc_loop2 + 10 
+
+p_rx_dcoc_avg:
+02dc 2000003c nop 60 
+02dd 58000f00 setarg mem_dcoc_buf 
+02de 67f10982 store 2 ,0x8982 
+02df 58000ff0 setarg mem_dcoc_buf_end 
+02e0 67f10984 store 2 ,0x8984 
+02e1 70898109 jam 0x9 ,0x8981 
+02e2 70898103 jam 0x3 ,0x8981 
+02e3 70898006 jam 0x6 ,0x8980 
+02e4 2000003c nop 60 
+02e5 da200000 arg 0 ,rega 
+02e6 da400000 arg 0 ,regb 
+02e7 df200010 arg 16 ,loopcnt 
+02e8 d8c00f00 arg mem_dcoc_buf ,contr 
+02e9 2020212d branch rx_dcoc_loop 
+
+p_rfpll_aac_ghpc:
+02ea 20758000 rtn wake 
+02eb 20202272 branch rfpll_aac_ghpc + 1 
+
+p_dpll_ring_ibias_calc:
+02ec 20600000 rtn 
+
+p_sadc_calibration:
+02ed 20758000 rtn wake 
+02ee 708a0777 jam 0x77 ,core_gpadc_ctrl 
+02ef 708a08c9 jam 0xc9 ,core_gpadc_cfg0 
+02f0 708a0b01 jam 0x01 ,core_gpadc_cfg3 
+02f1 6fe0c409 fetch 1 ,mem_adc_clkdiv 
+02f2 67f080cd store 1 ,core_sadc_clkdiv 
+02f3 20000bb8 nop 3000 
+02f4 204002fd call p_sadc_read 
+02f5 708a08c1 jam 0xc1 ,core_gpadc_cfg0 
+02f6 6a40c419 fetchr regb ,1 ,mem_spi_write_addr 
+02f7 df200008 arg 8 ,loopcnt 
+02f8 20406f58 call sadc_cal_read + 1 
+02f9 6fe0c419 fetch 1 ,mem_spi_write_addr 
+02fa 67e0c433 store 1 ,mem_adc_cal_c7 
+02fb 6240c419 storer regb ,1 ,mem_spi_write_addr 
+02fc 20600000 rtn 
+
+p_sadc_read:
+02fd 7080cc03 jam 0x03 ,core_sadc_ctrl 
+
+p_sadc_read_wait:
+02fe 6ff08129 fetch 1 ,core_perf_status 
+02ff c30282fe bbit0 saradc_done ,p_sadc_read_wait 
+0300 68590164 fetcht 2 ,core_sadc_data 
+0301 6049440a storet 2 ,mem_adc_current_value 
+0302 7080cc00 jam 0x00 ,core_sadc_ctrl 
+0303 20600000 rtn 
+
+p_set_lemode:
+0304 708a8211 jam 0x11 ,0x8a82 
+0305 708a8d12 jam 0x12 ,0x8a8d 
+0306 708a8e0a jam 0x0a ,0x8a8e 
+0307 6fe0c099 fetch 1 ,mem_fcomp_div 
+0308 c008031d beq xtal_16m ,p_set_lemode_2m_16m 
+0309 58005762 setarg 0x5762 
+030a 67f10907 store 2 ,0x8907 
+
+p_set_lemode_2m:
+030b 70890103 jam 3 ,0x8901 
+030c 70893003 jam 3 ,0x8930 
+030d c6168000 rtnmark1 mark_ble_2m 
+030e 70890101 jam 1 ,0x8901 
+030f 708a8207 jam 0x07 ,0x8a82 
+0310 708a8d44 jam 0x44 ,0x8a8d 
+0311 708a8e0a jam 0x0a ,0x8a8e 
+0312 6fe0c099 fetch 1 ,mem_fcomp_div 
+0313 c008031a beq xtal_16m ,p_set_lemode_1m_16m 
+0314 58002bb1 setarg 0x2bb1 
+0315 67f10907 store 2 ,0x8907 
+
+p_set_lemode_1m:
+0316 c6978000 rtnmark0 mark_ble_lr 
+0317 70893024 jam 0x24 ,0x8930 
+0318 70890105 jam 5 ,0x8901 
+0319 20600000 rtn 
+
+p_set_lemode_1m_16m:
+031a 58004189 setarg 0x4189 
+031b 67f10907 store 2 ,0x8907 
+031c 20200316 branch p_set_lemode_1m 
+
+p_set_lemode_2m_16m:
+031d 58008312 setarg 0x8312 
+031e 67f10907 store 2 ,0x8907 
+031f 2020030b branch p_set_lemode_2m 
+
+p_le_parse:
+0320 6fe0c334 fetch 1 ,mem_le_packet_llid 
+0321 c1000000 rtneq llid_reserved 
+0322 c001b04a beq llid_le_ll ,le_parse_ll 
+0323 202028e1 branch le_parse_l2cap 
+
+p_le_init_adv:
+0324 793f8030 set0 mark_ble_crc_fail ,mark 
+0325 20202af6 branch le_init_adv + 1 
+
+p_lpm_sleep:
+0326 6fe143e9 fetch 2 ,mem_cb_before_lpm_sleep 
+0327 20407d79 call callback_func 
+
+p_lpm_sleep_skip_cb_function:
+0328 6fe240ad fetch 4 ,mem_sleep_counter_all 
+0329 9840fe00 iadd temp ,pdata 
+032a 67e240ad store 4 ,mem_sleep_counter_all 
+032b 20400337 call p_lpm_save_context 
+032c 6fe0c0cb fetch 1 ,mem_lpm_hv_sel 
+032d 79207e04 set1 lpm_doze_en_bit ,pdata 
+032e 204023e1 call lpm_write_sel_hv 
+032f 2455a3cb ncall lpm_preon_counter ,wake 
+0330 37d98200 until null ,lpo_edge 
+0331 1b227e00 copy clkn ,pdata 
+0332 67e340b1 store 6 ,mem_sleep_clkn 
+0333 6fe1c0c6 fetch 3 ,mem_lpm_isogate 
+0334 6a20c0c9 fetchr rega ,1 ,mem_lpm_ldo_sel 
+0335 df200003 arg 3 ,loopcnt 
+0336 2020242e branch lpm_sleep_loop 
+
+p_lpm_save_context:
+0337 600440e7 storer mark ,8 ,mem_saved_mark 
+0338 d8c08070 arg core_gpio_conf ,contr 
+0339 d8a040cc arg mem_saved_gpio ,contw 
+033a 20407c8f call memcpy16 
+033b d8c080d4 arg core_gpio_conf_hi ,contr 
+033c 20407c89 call memcpy8 
+033d 6ff08080 fetch 1 ,core_spid_ctrl 
+033e 67e0c0ef store 1 ,mem_saved_spidctrl 
+033f 18422400 copy temp ,regb 
+
+p_lpm_write_gpio_wakeup:
+0340 df20000c arg 12 ,loopcnt 
+0341 da200016 arg mem_gpio_wakeup_cfg ,rega 
+0342 da60814d arg core_gpio_wakeup_cfg ,regc 
+0343 37d98200 until null ,lpo_edge 
+
+p_lpm_write_gpio_loop:
+0344 efe08011 ifetch 1 ,rega 
+0345 e8408013 ifetcht 1 ,regc 
+0346 98467c00 isub temp ,null 
+0347 2022834a branch p_lpm_write_gpio_loop_next ,zero 
+0348 e7e08013 istore 1 ,regc 
+0349 37d98200 until null ,lpo_edge 
+
+p_lpm_write_gpio_loop_next:
+034a 1a20a201 increase 1 ,rega 
+034b 1a60a601 increase 1 ,regc 
+034c c2000344 loop p_lpm_write_gpio_loop 
+034d 1a420400 copy regb ,temp 
+034e 20600000 rtn 
+
+p_key_evt_ui_timer_check:
+034f da200000 arg 0 ,rega 
+0350 684a4fd5 fetcht 4 ,mem_shutter_key_evt_btclk 
+0351 1c422400 copy clkn_bt ,regb 
+0352 1a427e00 copy regb ,pdata 
+0353 98467c00 isub temp ,null 
+0354 24417806 ncall ui_timer_timeout ,positive 
+
+p_key_evt_ui_timer_check_loop:
+0355 1a427e00 copy regb ,pdata 
+0356 18408440 increase 64 ,temp 
+0357 98467c00 isub temp ,null 
+0358 24210361 nbranch p_key_evt_ui_timer_check_end ,positive 
+0359 1a20a201 increase 1 ,rega 
+035a 1a217e0f and rega ,0x0f ,pdata 
+035b 243a0355 nbranch p_key_evt_ui_timer_check_loop ,blank 
+035c da200000 arg 0 ,rega 
+035d 20400366 call p_key_evt_ui_timer_check_send_evt 
+
+p_key_evt_ui_timer_init:
+035e 1c427e00 copy clkn_bt ,pdata 
+035f 67e24fd5 store 4 ,mem_shutter_key_evt_btclk 
+0360 20600000 rtn 
+
+p_key_evt_ui_timer_check_end:
+0361 1a227e00 copy rega ,pdata 
+0362 207a0000 rtn blank 
+0363 184085c0 increase -64 ,temp 
+0364 793f841c set0 28 ,temp 
+0365 604a4fd5 storet 4 ,mem_shutter_key_evt_btclk 
+
+p_key_evt_ui_timer_check_send_evt:
+0366 67e0cfd4 store 1 ,mem_shutter_key_evt_timer_count 
+
+p_key_evt_50ms_loop:
+0367 6fe0cfd4 fetch 1 ,mem_shutter_key_evt_timer_count 
+0368 207a0000 rtn blank 
+0369 1fe0ffff increase -1 ,pdata 
+036a 67e0cfd4 store 1 ,mem_shutter_key_evt_timer_count 
+036b 2040036d call p_shutter_long_fouse_timer 
+036c 20200367 branch p_key_evt_50ms_loop 
+
+p_shutter_long_fouse_timer:
+036d da604fd9 arg mem_shutter_dy_fouse_time ,regc 
+036e da400370 arg p_shutter_dy_fouse_timeout ,regb 
+036f 202042e0 branch timer_single_step 
+
+p_shutter_dy_fouse_timeout:
+0370 6fe0cfda fetch 1 ,mem_shutter_fouse_select 
+0371 c0008374 beq fouseup ,p_shutter_dy_fouseup_event 
+0372 c0010397 beq fousedown ,p_shutter_dy_fousedown_event 
+0373 20600000 rtn 
+
+p_shutter_dy_fouseup_event:
+0374 20406730 call shutter_dy_check_iphone 
+0375 243a0383 nbranch p_shutter_dy_fouseup_event_ios ,blank 
+0376 7049e508 jam 8 ,mem_send_data_delay 
+0377 704fd901 jam 1 ,mem_shutter_dy_fouse_time 
+0378 6fe0cfdb fetch 1 ,mem_shutter_dy_fouse_count 
+0379 1fe0fe02 increase 2 ,pdata 
+037a 67e0cfdb store 1 ,mem_shutter_dy_fouse_count 
+037b 1fe67c5a sub pdata ,90 ,null 
+037c 2042838f call p_shutter_dy_fouseup_init ,zero 
+037d da604fc2 arg mem_fouse_up_long_press ,regc 
+037e 204003ba call p_shutter_dy_find_value_list_position 
+037f efe1003f ifetch 2 ,pdata 
+0380 1fe0fe0a add pdata ,10 ,pdata 
+0381 e7e10011 istore 2 ,rega 
+0382 20206371 branch push_buffer_in_queue 
+
+p_shutter_dy_fouseup_event_ios:
+0383 204003c2 call p_shutter_dy_fouse_time_ios 
+0384 6fe0cfdb fetch 1 ,mem_shutter_dy_fouse_count 
+0385 1fe0fe01 increase 1 ,pdata 
+0386 67e0cfdb store 1 ,mem_shutter_dy_fouse_count 
+0387 1fe67c5a sub pdata ,90 ,null 
+0388 2042838f call p_shutter_dy_fouseup_init ,zero 
+0389 da604fc2 arg mem_fouse_up_long_press ,regc 
+038a 204003ba call p_shutter_dy_find_value_list_position 
+038b efe1003f ifetch 2 ,pdata 
+038c 1fe0fe12 add pdata ,18 ,pdata 
+038d e7e10011 istore 2 ,rega 
+038e 20206371 branch push_buffer_in_queue 
+
+p_shutter_dy_fouseup_init:
+038f 704fdb00 jam 0 ,mem_shutter_dy_fouse_count 
+0390 da604fc4 arg mem_fouse_up_long_release ,regc 
+0391 20406371 call push_buffer_in_queue 
+0392 da604fc2 arg mem_fouse_up_long_press ,regc 
+0393 204003ba call p_shutter_dy_find_value_list_position 
+0394 58000650 setarg 0x0650 
+0395 e7e10011 istore 2 ,rega 
+0396 20600000 rtn 
+
+p_shutter_dy_fousedown_event:
+0397 20406730 call shutter_dy_check_iphone 
+0398 243a03a6 nbranch p_shutter_dy_fousedown_event_ios ,blank 
+0399 7049e508 jam 8 ,mem_send_data_delay 
+039a 704fd901 jam 1 ,mem_shutter_dy_fouse_time 
+039b 6fe0cfdb fetch 1 ,mem_shutter_dy_fouse_count 
+039c 1fe0fe02 increase 2 ,pdata 
+039d 67e0cfdb store 1 ,mem_shutter_dy_fouse_count 
+039e 1fe67c5a sub pdata ,90 ,null 
+039f 204283b2 call p_shutter_dy_fousedown_init ,zero 
+03a0 da604fd0 arg mem_fouse_down_long_press ,regc 
+03a1 204003ba call p_shutter_dy_find_value_list_position 
+03a2 efe1003f ifetch 2 ,pdata 
+03a3 1fe0fff6 increase -10 ,pdata 
+03a4 e7e10011 istore 2 ,rega 
+03a5 20206371 branch push_buffer_in_queue 
+
+p_shutter_dy_fousedown_event_ios:
+03a6 204003c2 call p_shutter_dy_fouse_time_ios 
+03a7 6fe0cfdb fetch 1 ,mem_shutter_dy_fouse_count 
+03a8 1fe0fe01 increase 1 ,pdata 
+03a9 67e0cfdb store 1 ,mem_shutter_dy_fouse_count 
+03aa 1fe67c5a sub pdata ,90 ,null 
+03ab 204283b2 call p_shutter_dy_fousedown_init ,zero 
+03ac da604fd0 arg mem_fouse_down_long_press ,regc 
+03ad 204003ba call p_shutter_dy_find_value_list_position 
+03ae efe1003f ifetch 2 ,pdata 
+03af 1fe0ffee increase -18 ,pdata 
+03b0 e7e10011 istore 2 ,rega 
+03b1 20206371 branch push_buffer_in_queue 
+
+p_shutter_dy_fousedown_init:
+03b2 704fdb00 jam 0 ,mem_shutter_dy_fouse_count 
+03b3 da604fd2 arg mem_fouse_down_long_release ,regc 
+03b4 20406371 call push_buffer_in_queue 
+03b5 da604fd0 arg mem_fouse_down_long_press ,regc 
+03b6 204003ba call p_shutter_dy_find_value_list_position 
+03b7 58000a00 setarg 0x0a00 
+03b8 e7e10011 istore 2 ,rega 
+03b9 20600000 rtn 
+
+p_shutter_dy_find_value_list_position:
+03ba d8404c02 arg mem_shutter_mousekey_value_list ,temp 
+03bb efe08013 ifetch 1 ,regc 
+03bc 1fe0ffff increase -1 ,pdata 
+03bd 1feffe0d mul32 pdata ,13 ,pdata 
+03be 9840fe00 iadd temp ,pdata 
+03bf 1fe0fe06 increase 6 ,pdata 
+03c0 1fe22200 copy pdata ,rega 
+03c1 20600000 rtn 
+
+p_shutter_dy_fouse_time_ios:
+03c2 7049e501 jam 1 ,mem_send_data_delay 
+03c3 704fd903 jam 3 ,mem_shutter_dy_fouse_time 
+03c4 20600000 rtn 
+
+p_shutter_adc_config_init:
+03c5 704ff801 jam 1 ,mem_shutter_start_adc_flag 
+03c6 20600000 rtn 
+
+p_shutter_adc_read_interval:
+03c7 6fe0cff9 fetch 1 ,mem_shutter_adc_read_timer 
+03c8 1fe0fe01 increase 1 ,pdata 
+03c9 67e0cff9 store 1 ,mem_shutter_adc_read_timer 
+03ca 6848cffd fetcht 1 ,mem_shutter_adc_read_time_init 
+03cb 98467c00 isub temp ,null 
+03cc 20600000 rtn 
+
+p_shutter_adc_read_timer:
+
+p_shutter_adc_read_start:
+03cd 6fe0cff8 fetch 1 ,mem_shutter_start_adc_flag 
+03ce 207a0000 rtn blank 
+03cf 204003c7 call p_shutter_adc_read_interval 
+
+p_shutter_adc_read_start_next:
+03d0 24610000 nrtn positive 
+03d1 704ff900 jam 0 ,mem_shutter_adc_read_timer 
+03d2 70440701 jam adc_config_hvin ,mem_adc_config_flag 
+03d3 20406ff3 call adc_clear_no_power_flag 
+03d4 20406feb call adc_clear_low_power_flag 
+03d5 20400446 call p_enable_adc 
+03d6 20400427 call p_vdd_calculate_by_mode 
+03d7 67e14ff6 store 2 ,mem_shutter_vdd_now_vol 
+
+p_shutter_adc_data_process:
+03d8 da204ff0 arg mem_shutter_vdd_calculate_set ,rega 
+03d9 204003df call p_shutter_bat_percent_lowpower_out 
+03da 6fe0c40c fetch 1 ,mem_adc_power_flag 
+03db c28083ff bbit1 1 ,p_shutter_low_voltage_power_down 
+03dc c3000403 bbit0 0 ,p_shutter_adc_no_low_voltage 
+03dd 704ffb01 jam 1 ,mem_shutter_adc_last_low_voltage_flag 
+03de 20200401 branch p_shutter_adc_low_voltage 
+
+p_shutter_bat_percent_lowpower_out:
+03df efe40011 ifetch 8 ,rega 
+03e0 67e40670 store 8 ,mem_pdatatemp 
+
+p_shutter_bat_percent_lowpower_out_battery:
+03e1 20406ff3 call adc_clear_no_power_flag 
+03e2 20406feb call adc_clear_low_power_flag 
+03e3 6fe10676 fetch 2 ,mem_pdatatemp + 6 
+03e4 68490672 fetcht 2 ,mem_pdatatemp + 2 
+03e5 98467c00 isub temp ,null 
+03e6 24416fef ncall adc_set_no_power_flag ,positive 
+03e7 68490674 fetcht 2 ,mem_pdatatemp + 4 
+03e8 98467c00 isub temp ,null 
+03e9 24416fe7 ncall adc_set_low_power_flag ,positive 
+
+p_shutter_adc_bat_level_set:
+03ea 6fe10676 fetch 2 ,mem_pdatatemp + 6 
+03eb 68490670 fetcht 2 ,mem_pdatatemp 
+03ec 98467c00 isub temp ,null 
+03ed 202103fb branch p_shutter_adc_bat_level_100_percent ,positive 
+03ee 68490672 fetcht 2 ,mem_pdatatemp + 2 
+03ef 98467e00 isub temp ,pdata 
+03f0 242103fd nbranch p_shutter_adc_bat_level_0_percent ,positive 
+03f1 203a03fd branch p_shutter_adc_bat_level_0_percent ,blank 
+03f2 1fefa264 mul32 pdata ,100 ,rega 
+03f3 6fe10670 fetch 2 ,mem_pdatatemp 
+03f4 68490672 fetcht 2 ,mem_pdatatemp + 2 
+03f5 98460400 isub temp ,temp 
+03f6 1a227e00 copy rega ,pdata 
+03f7 9846fc00 idiv temp 
+03f8 20407d5f call get_div_result 
+03f9 67e0cffc store 1 ,mem_shutter_battery_level_percentage 
+03fa 20600000 rtn 
+
+p_shutter_adc_bat_level_100_percent:
+03fb 704ffc64 jam 100 ,mem_shutter_battery_level_percentage 
+03fc 20600000 rtn 
+
+p_shutter_adc_bat_level_0_percent:
+03fd 704ffc00 jam 0 ,mem_shutter_battery_level_percentage 
+03fe 20600000 rtn 
+
+p_shutter_low_voltage_power_down:
+03ff 20404325 call app_led_off 
+0400 20204327 branch app_enter_hibernate 
+
+p_shutter_adc_low_voltage:
+0401 704ffa01 jam 1 ,mem_shutter_enable_low_voltage_flag 
+0402 20600000 rtn 
+
+p_shutter_adc_no_low_voltage:
+0403 704ffa00 jam 0 ,mem_shutter_enable_low_voltage_flag 
+0404 6fe0cffb fetch 1 ,mem_shutter_adc_last_low_voltage_flag 
+0405 207a0000 rtn blank 
+0406 20404325 call app_led_off 
+0407 704ffb00 jam 0 ,mem_shutter_adc_last_low_voltage_flag 
+0408 20600000 rtn 
+
+p_adc_init_data:
+0409 6fe401fd fetch 8 ,mem_otp_adc 
+040a 203a6f79 branch adc_init_cal_data_default ,blank 
+040b 67e443fd store 8 ,mem_reference_inter1p8v_2v_adc_io_data 
+040c 20406b3a call enable_otp_read 
+040d 20406aad call loadcode_check_otp_lock 
+040e dfe00fc0 arg otp_offset_adc_param_l_c0 ,pdata 
+040f 9a40a400 iadd regb ,regb 
+0410 df20000a arg 10 ,loopcnt 
+0411 da2001fd arg mem_otp_temp ,rega 
+0412 20406b74 call otp_read_data 
+0413 20406b37 call disable_otp 
+0414 6fe401fd fetch 8 ,mem_otp_temp 
+0415 207a0000 rtn blank 
+0416 67e4414e store 8 ,mem_adc_reference3v_gpio1v_ft_data 
+0417 efe10006 ifetch 2 ,contr 
+0418 e7e10005 istore 2 ,contw 
+0419 20600000 rtn 
+
+p_sadc_cal_write:
+041a 6ff080cc fetch 1 ,core_sadc_ctrl 
+041b 79207e01 set1 1 ,pdata 
+041c 67f080cc store 1 ,core_sadc_ctrl 
+041d 6a40c419 fetchr regb ,1 ,mem_spi_write_addr 
+041e 6fe0c433 fetch 1 ,mem_adc_cal_c7 
+041f 67e0c419 store 1 ,mem_spi_write_addr 
+0420 df200008 arg 8 ,loopcnt 
+0421 20406f67 call sadc_cal_write + 4 
+0422 6240c419 storer regb ,1 ,mem_spi_write_addr 
+0423 6ff08a0a fetch 1 ,core_gpadc_cfg2 
+0424 793ffe04 set0 4 ,pdata 
+0425 67f08a0a store 1 ,core_gpadc_cfg2 
+0426 20600000 rtn 
+
+p_vdd_calculate_by_mode:
+
+p_vdd_reference_inter3v_calculate:
+0427 6fe0c407 fetch 1 ,mem_adc_config_flag 
+0428 c000842b beq adc_config_hvin ,p_vdd_reference_inter3v_calculate_by_mode_vdcdc 
+0429 c0010432 beq adc_config_gpio ,p_vdd_reference_inter3v_calculate_by_mode_gpio 
+042a 20600000 rtn 
+
+p_vdd_reference_inter3v_calculate_by_mode_vdcdc:
+042b 580003e8 setarg 1000 
+042c 67e14405 store 2 ,mem_reference_voltage 
+042d 68494152 fetcht 2 ,mem_adc_reference3v_vdcdc3p6v_ft_data 
+042e 6fe14154 fetch 2 ,mem_adc_reference3v_vdcdc4p6v_ft_data 
+042f da600e10 arg 3600 ,regc 
+0430 20406fc0 call vdd_calculate 
+0431 20200438 branch p_mul1v_div1v_to_cal 
+
+p_vdd_reference_inter3v_calculate_by_mode_gpio:
+0432 580003e8 setarg 1000 
+0433 67e14405 store 2 ,mem_reference_voltage 
+0434 6849414e fetcht 2 ,mem_adc_reference3v_gpio1v_ft_data 
+0435 6fe14150 fetch 2 ,mem_adc_reference3v_gpio2v_ft_data 
+0436 da6003e8 arg 1000 ,regc 
+0437 20406fc0 call vdd_calculate 
+
+p_mul1v_div1v_to_cal:
+0438 68494156 fetcht 2 ,mem_adc_reference3v_inter1v_ft_data 
+0439 984ffe00 imul32 temp ,pdata 
+043a 68494158 fetcht 2 ,mem_adc_reference3v_inter1v_now_data 
+043b 9846fc00 idiv temp 
+043c 20207d5f branch get_div_result 
+
+p_enable_adc_init_config:
+043d 2040041a call p_sadc_cal_write 
+043e 6ff08a09 fetch 1 ,core_gpadc_cfg1 
+043f 793ffe07 set0 7 ,pdata 
+0440 67f08a09 store 1 ,core_gpadc_cfg1 
+0441 708a0777 jam 0x77 ,core_gpadc_ctrl 
+0442 708a08c1 jam 0xc1 ,core_gpadc_cfg0 
+0443 708a0d61 jam 0x61 ,core_vtest_ctrl0 
+0444 708a0b00 jam 0x00 ,core_gpadc_cfg3 
+0445 20600000 rtn 
+
+p_enable_adc:
+
+p_enable_adc_reference_source_inter3v:
+0446 2040043d call p_enable_adc_init_config 
+0447 20406f90 call sadc_channel 
+0448 6fe0c409 fetch 1 ,mem_adc_clkdiv 
+0449 67f080cd store 1 ,core_sadc_clkdiv 
+044a 20406f97 call sadc_read 
+044b 708a0d60 jam 0x60 ,core_vtest_ctrl0 
+044c 7080cd00 jam 0x00 ,core_sadc_clkdiv 
+
+p_read_adc_inter1v:
+044d 2040043d call p_enable_adc_init_config 
+044e 6fe0c409 fetch 1 ,mem_adc_clkdiv 
+044f 67f080cd store 1 ,core_sadc_clkdiv 
+0450 708a0b50 jam 0x50 ,core_gpadc_cfg3 
+0451 708a0ec0 jam 0xc0 ,core_vtest_ctrl1 
+0452 df00000b arg 0xb ,regext_index 
+0453 6de1440a fetchr regext ,2 ,mem_adc_current_value 
+0454 7080cc03 jam 0x03 ,core_sadc_ctrl 
+0455 2040045f call p_sar_adc_read_wait 
+0456 68590164 fetcht 2 ,core_sadc_data 
+0457 60494158 storet 2 ,mem_adc_reference3v_inter1v_now_data 
+0458 20406f9c call sadc_read_wait + 4 
+0459 df00000b arg 0xb ,regext_index 
+045a 65e1440a storer regext ,2 ,mem_adc_current_value 
+045b 708a0d60 jam 0x60 ,core_vtest_ctrl0 
+045c 7080cd00 jam 0x00 ,core_sadc_clkdiv 
+045d 7080cc00 jam 0x00 ,core_sadc_ctrl 
+045e 20600000 rtn 
+
+p_sar_adc_read_wait:
+045f 6ff08129 fetch 1 ,core_perf_status 
+0460 c302845f bbit0 saradc_done ,p_sar_adc_read_wait 
+0461 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 20407d74 call clean_smem 
+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 
+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 
+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 6fe34ee4 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 6fe3cee4 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 6fe44ee4 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 6fe0cee3 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 6fe44f0a 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 6fe3cf5a fetch 7 ,mem_shutter_led_on_light_dark_led_conf 
+645f 67e3c6a7 store 7 ,mem_shutter_led_struct_app_led 
+6460 6fe3cf61 fetch 7 ,mem_shutter_led_off_light_dark_led_conf 
+6461 67e3c6b2 store 7 ,mem_shutter_power_off_led_style 
+6462 6fe24f68 fetch 4 ,mem_shutter_reconn_blink_on_time_conf 
+6463 67e244fa store 4 ,mem_ble_shutter_reconn_blink_on_time 
+6464 6fe24f6c 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 6fe44f02 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 6fe14f87 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 d8404c02 arg mem_shutter_mousekey_value_list ,temp 
+6491 9840a200 iadd temp ,rega 
+6492 1a20a203 increase 3 ,rega 
+6493 d8400072 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 684a49e6 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 6fe0c9e5 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 67e249e6 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 d8404c02 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 da604ec1 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 6fe148ac 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 da604eb6 arg mem_shutter_iphone_move_mid ,regc 
+64cc 20206371 branch push_buffer_in_queue 
+
+shutter_dy_android_like_loaction_mid:
+64cd da604eca arg mem_shutter_android_move_mid ,regc 
+64ce 20206371 branch push_buffer_in_queue 
+
+shutter_dy_iphone_up_mid:
+64cf da604ecf arg mem_shutter_iphone_up_mid ,regc 
+64d0 20206371 branch push_buffer_in_queue 
+
+shutter_dy_iphone_like_mid:
+64d1 da604ed9 arg mem_shutter_iphone_like_mid ,regc 
+64d2 20206371 branch push_buffer_in_queue 
+
+shutter_dy_clear_key_state_timer:
+64d3 da604bff 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 d8a049f4 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 704ec201 jam 1 ,mem_shutter_pairing_success 
+64e7 20406783 call shutter_dy_clear_move_config 
+64e8 6fe14f74 fetch 2 ,mem_android_initial_move_x 
+64e9 67e14eae store 2 ,mem_shutter_move_data_x 
+64ea 68494f76 fetcht 2 ,mem_android_initial_move_y 
+64eb 58000fff setarg 0xfff 
+64ec 98467e00 isub temp ,pdata 
+64ed 67e14eb0 store 2 ,mem_shutter_move_data_y 
+64ee 20600000 rtn 
+
+ble_shutter_dy_process_baseband_disconnect:
+64ef 704eab00 jam 0 ,mem_shutter_le_conned 
+64f0 704ec200 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 67e249e6 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 704ec500 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 6fe0cf9f fetch 1 ,mem_shutter_link_loop_flag 
+650b 243a6502 nbranch shutter_dy_key_value_filter ,blank 
+
+shutter_dy_key_press_next:
+650c 704c0001 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 6848cec5 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 67e0cec5 store 1 ,mem_last_press_key_value 
+6517 6848cec8 fetcht 1 ,mem_move_mode_key_index 
+6518 98467c00 isub temp ,null 
+6519 2022e524 branch shutter_dy_key_move_to_specify_location ,zero 
+651a 6fe0cec9 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 704ec601 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 6fe0cec9 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 da6049ea 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 6fe0cec9 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 da6049ea 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 6fe0cf9f 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 6fe0cec9 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 704ec001 jam 1 ,mem_shutter_long_key_released_flag 
+6567 2040656b call shutter_clear_dy_key_state 
+6568 da604aae 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 6fe148ac 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 67e148ac 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 da6049ea 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 6fe0cec0 fetch 1 ,mem_shutter_long_key_released_flag 
+659a 207a0000 rtn blank 
+659b 704ec000 jam 0 ,mem_shutter_long_key_released_flag 
+659c 44d34014 bpatch patch14_6 ,mem_patch14 
+659d 20406755 call shutter_dy_long_key_function 
+659e 6fe0cec7 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 6848cec8 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 6fe0cec9 fetch 1 ,mem_move_mode_trigger_enable 
+65aa 79407e00 setflip 0 ,pdata 
+65ab 67e0cec9 store 1 ,mem_move_mode_trigger_enable 
+65ac 247a0000 nrtn blank 
+
+shutter_dy_move_mode_disable:
+65ad 704ec900 jam 0 ,mem_move_mode_trigger_enable 
+65ae 20204325 branch app_led_off 
+
+shutter_dy_long_press_android_or_ios:
+65af da604a99 arg mem_key0_long_press ,regc 
+65b0 20406730 call shutter_dy_check_iphone 
+65b1 207a0000 rtn blank 
+65b2 da604bc0 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 6fe0cec7 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 6fe0cec5 fetch 1 ,mem_last_press_key_value 
+65d6 6848cec8 fetcht 1 ,mem_move_mode_key_index 
+65d7 98467c00 isub temp ,null 
+65d8 2022c323 branch app_led_on ,zero 
+65d9 6fe0cec9 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 da404ac3 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 67e14acf store 2 ,mem_combine_key_state0 
+65e9 20404323 call app_led_on 
+65ea da604ad1 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 7049e578 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 6848ceaa fetcht 1 ,mem_shutter_back_count 
+6600 20406730 call shutter_dy_check_iphone 
+6601 207a0000 rtn blank 
+6602 6848cead fetcht 1 ,mem_shutter_iphone_beyond_y_count 
+6603 18408401 increase 1 ,temp 
+6604 6fe0cec6 fetch 1 ,mem_shutter_first_move 
+6605 207a0000 rtn blank 
+6606 6848ceaa fetcht 1 ,mem_shutter_back_count 
+6607 704ec600 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 67e0ceb3 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 6fe0ceb3 fetch 1 ,mem_shutter_back_count_cache 
+6610 1fe0ffff increase -1 ,pdata 
+6611 67e0ceb3 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 6fe0ceac fetch 1 ,mem_shutter_iphone_beyond_x_count 
+6615 207a0000 rtn blank 
+6616 67e0ceb4 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 6fe0ceb4 fetch 1 ,mem_shutter_iphone_beyond_x_cache 
+661a 1fe0ffff increase -1 ,pdata 
+661b 67e0ceb4 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 6fe0cead fetch 1 ,mem_shutter_iphone_beyond_y_count 
+661f 207a0000 rtn blank 
+6620 67e0ceb5 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 6fe0ceb5 fetch 1 ,mem_shutter_iphone_beyond_y_cache 
+6624 1fe0ffff increase -1 ,pdata 
+6625 67e0ceb5 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 6fe14acf 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 60494acf storet 2 ,mem_combine_key_state0 
+6630 6fe14ec3 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 704ec001 jam 1 ,mem_shutter_long_key_released_flag 
+6637 20404325 call app_led_off 
+6638 da604b0d arg mem_combine_key_release ,regc 
+6639 204065f0 call shutter_dy_push_buffer_in_queue 
+663a 58000000 setarg 0 
+663b 67e14acf store 2 ,mem_combine_key_state0 
+663c 70489e32 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 d8a049ea arg mem_shutter_key_state0 ,contw 
+6641 20207ca1 branch clear_mem 
+
+shutter_dy_check_move_data:
+6642 44d44015 bpatch patch15_0 ,mem_patch15 
+6643 6fe0cec7 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 d8404c02 arg mem_shutter_mousekey_value_list ,temp 
+6659 98408a00 iadd temp ,contw 
+665a 18a08a03 increase 3 ,contw 
+665b 6fe1cb17 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 d8404c02 arg mem_shutter_mousekey_value_list ,temp 
+6661 98408a00 iadd temp ,contw 
+6662 18a08a03 increase 3 ,contw 
+6663 6fe14eae fetch 2 ,mem_shutter_move_data_x 
+6664 e7e18005 istore 3 ,contw 
+6665 18a08a07 increase 7 ,contw 
+6666 6fe14eb0 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 6fe0ceac fetch 1 ,mem_shutter_iphone_beyond_x_count 
+666c 207a0000 rtn blank 
+666d 1fe0ffff increase -1 ,pdata 
+666e 67e0ceac store 1 ,mem_shutter_iphone_beyond_x_count 
+666f dfe00072 arg iphone_once_max_move_value ,pdata 
+6670 20600000 rtn 
+
+shutter_dy_every_move_size_set:
+6671 d840002a arg android_every_move_size ,temp 
+6672 20406730 call shutter_dy_check_iphone 
+6673 207a0000 rtn blank 
+6674 d8400005 arg iphone_every_move_size ,temp 
+6675 20600000 rtn 
+
+shutter_dy_move_left:
+6676 20406671 call shutter_dy_every_move_size_set 
+6677 6fe14eae 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 67e14eae store 2 ,mem_shutter_move_data_x 
+
+shutter_dy_move_data_store:
+667d 44d4c015 bpatch patch15_1 ,mem_patch15 
+667e 6fe14eae fetch 2 ,mem_shutter_move_data_x 
+667f 68494eb0 fetcht 2 ,mem_shutter_move_data_y 
+6680 184d0400 lshift8 temp ,temp 
+6681 18520400 lshift4 temp ,temp 
+6682 9840fe00 iadd temp ,pdata 
+6683 67e1cb17 store 3 ,mem_shutter_move_data 
+6684 20206654 branch shutter_dy_get_move_data 
+
+shutter_dy_move_x_check_max:
+6685 6fe14eae fetch 2 ,mem_shutter_move_data_x 
+6686 d8400072 arg iphone_once_max_move_value ,temp 
+6687 98460400 isub temp ,temp 
+6688 24610000 nrtn positive 
+6689 18427e00 copy temp ,pdata 
+668a 6848ceac 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 6048ceac storet 1 ,mem_shutter_iphone_beyond_x_count 
+668f 2020667c branch shutter_dy_move_store_x 
+
+shutter_dy_clear_move_x:
+6690 704eac00 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 6fe14eae 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 6fe14eb0 fetch 2 ,mem_shutter_move_data_y 
+669d 98467e00 isub temp ,pdata 
+669e 67e14eb0 store 2 ,mem_shutter_move_data_y 
+
+shutter_dy_move_y_check_max:
+669f 68494eb0 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 d8400072 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 6848cead 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 6048cead storet 1 ,mem_shutter_iphone_beyond_y_count 
+66ae 202066bc branch shutter_dy_move_store_y 
+
+shutter_dy_clear_move_y:
+66af 704ead00 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 6fe0cead 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 67e0cead store 1 ,mem_shutter_iphone_beyond_y_count 
+66b8 58000fff setarg 0xfff 
+66b9 d8400072 arg iphone_once_max_move_value ,temp 
+66ba 98467e00 isub temp ,pdata 
+66bb 9a20fe00 iadd rega ,pdata 
+
+shutter_dy_move_store_y:
+66bc 67e14eb0 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 6fe14eb0 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 d8c049d4 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 684949d0 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 684949d2 fetcht 2 ,mem_shutter_le_map_len_ios 
+
+shutter_dy_le_parse_att_read_blob_request2:
+66ea d8c048ae 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 d8c048ae 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 704eaa05 jam 5 ,mem_shutter_back_count 
+6706 7049e401 jam 1 ,mem_iphone_flag 
+6707 704eb201 jam 1 ,mem_last_shutter_le_iphone_flag 
+6708 7049e5f0 jam 240 ,mem_send_data_delay 
+6709 704ec10a jam 10 ,mem_shutter_move_mid_timer 
+670a 704ec601 jam 1 ,mem_shutter_first_move 
+670b 204067bf call shutter_dy_load_move_config_info 
+670c 6fe0cec2 fetch 1 ,mem_shutter_pairing_success 
+670d 207a0000 rtn blank 
+670e 20406783 call shutter_dy_clear_move_config 
+670f d8400072 arg iphone_once_max_move_value ,temp 
+6710 6fe14f78 fetch 2 ,mem_iphone_initial_move_x 
+6711 da204eae arg mem_shutter_move_data_x ,rega 
+6712 da404eac arg mem_shutter_iphone_beyond_x_count ,regb 
+6713 2040671e call shutter_dy_iphone_move_initial_set 
+6714 d8400072 arg iphone_once_max_move_value ,temp 
+6715 6fe14f7a fetch 2 ,mem_iphone_initial_move_y 
+6716 da204eb0 arg mem_shutter_move_data_y ,rega 
+6717 da404ead arg mem_shutter_iphone_beyond_y_count ,regb 
+6718 2040671e call shutter_dy_iphone_move_initial_set 
+6719 58000fff setarg 0xfff 
+671a 68494eb0 fetcht 2 ,mem_shutter_move_data_y 
+671b 98467e00 isub temp ,pdata 
+671c 67e14eb0 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 704eaa01 jam 1 ,mem_shutter_back_count 
+672a 7049e400 jam 0 ,mem_iphone_flag 
+672b 704eb200 jam 0 ,mem_last_shutter_le_iphone_flag 
+672c 7049e50a 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 6fe0c9e4 fetch 1 ,mem_iphone_flag 
+6731 20600000 rtn 
+
+shutter_dy_le_get_press_ptr:
+6732 da604f14 arg mem_dy_key0_press ,regc 
+6733 20406730 call shutter_dy_check_iphone 
+6734 207a0000 rtn blank 
+6735 7049e578 jam 120 ,mem_send_data_delay 
+6736 da604b1b arg mem_key0_press_i ,regc 
+6737 20600000 rtn 
+
+shutter_dy_le_get_release_ptr:
+
+shutter_dy_le_get_release_ptr_set:
+6738 da604a30 arg mem_key0_release_new ,regc 
+6739 20406730 call shutter_dy_check_iphone 
+673a 207a0000 rtn blank 
+673b da604b57 arg mem_key0_release_new_i ,regc 
+673c 7049e50c 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 6fe0cbfe fetch 1 ,mem_key3_press_count 
+6742 79407e00 setflip 0 ,pdata 
+6743 67e0cbfe 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 da604a5d arg mem_key3_release_new ,regc 
+674c 20406730 call shutter_dy_check_iphone 
+674d 207a0000 rtn blank 
+674e da604b84 arg mem_key3_release_new_i ,regc 
+674f 20600000 rtn 
+
+shutter_dy_le_get_vol_dec_ptr:
+6750 da604bea arg mem_key3_release_new_t ,regc 
+6751 20406730 call shutter_dy_check_iphone 
+6752 207a0000 rtn blank 
+6753 da604bf4 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 da604f8d 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 704f8d04 jam 4 ,mem_shutter_volume_timer 
+675e 6fe0cbfe 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 704bfe00 jam 0 ,mem_key3_press_count 
+6762 704f8d04 jam 4 ,mem_shutter_volume_timer 
+6763 da604aa5 arg mem_key4_long_press ,regc 
+6764 20206371 branch push_buffer_in_queue 
+
+shutter_dy_loop_send_volume_dec_page:
+6765 704bfe01 jam 1 ,mem_key3_press_count 
+6766 704f8d04 jam 4 ,mem_shutter_volume_timer 
+6767 da604a9f arg mem_key2_long_press ,regc 
+6768 20206371 branch push_buffer_in_queue 
+
+shutter_dy_clear_volume_timer:
+6769 704bfe00 jam 0 ,mem_key3_press_count 
+676a 704f8d00 jam 0 ,mem_shutter_volume_timer 
+676b 20600000 rtn 
+
+shutter_dy_link_key_loop_timer:
+676c da604f8e 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 704f8e02 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 da604f8f arg mem_shutter_link_data ,regc 
+6773 20406730 call shutter_dy_check_iphone 
+6774 207a0000 rtn blank 
+6775 da604f97 arg mem_shutter_link_data_i ,regc 
+6776 20600000 rtn 
+
+shutter_dy_link_key_long_press:
+6777 6fe0cf9f fetch 1 ,mem_shutter_link_loop_flag 
+6778 243a677c nbranch shutter_dy_clear_link_key_timer ,blank 
+6779 704f9f01 jam 1 ,mem_shutter_link_loop_flag 
+677a 704f8e02 jam 2 ,mem_shutter_link_timer 
+677b 20600000 rtn 
+
+shutter_dy_clear_link_key_timer:
+677c 704f9f00 jam 0 ,mem_shutter_link_loop_flag 
+677d 704f8e00 jam 0 ,mem_shutter_link_timer 
+677e 20600000 rtn 
+
+shutter_dy_jude_clear_move_config:
+677f 6fe0ceab fetch 1 ,mem_shutter_le_conned 
+6780 247a0000 nrtn blank 
+6781 704eab01 jam 1 ,mem_shutter_le_conned 
+6782 2020667d branch shutter_dy_move_data_store 
+
+shutter_dy_clear_move_config:
+6783 58000000 setarg 0 
+6784 67e3ceac 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 6fe0cf80 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 6fe0ceac fetch 1 ,mem_shutter_iphone_beyond_x_count 
+678f 1feffe72 mul32 pdata ,iphone_once_max_move_value ,pdata 
+6790 1fe20400 copy pdata ,temp 
+6791 6fe14eae fetch 2 ,mem_shutter_move_data_x 
+6792 9840fe00 iadd temp ,pdata 
+6793 67e14f7c store 2 ,mem_otp_shutter_move_data_x 
+6794 6fe0cead fetch 1 ,mem_shutter_iphone_beyond_y_count 
+6795 1feffe72 mul32 pdata ,iphone_once_max_move_value ,pdata 
+6796 1fe20400 copy pdata ,temp 
+6797 6fe14eb0 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 67e14f7e store 2 ,mem_otp_shutter_move_data_y 
+679d 20406730 call shutter_dy_check_iphone 
+679e 67e0cf80 store 1 ,mem_otp_last_shutter_le_iphone_flag 
+679f 20600000 rtn 
+
+shutter_dy_store_android_config:
+67a0 6fe14eae fetch 2 ,mem_shutter_move_data_x 
+67a1 67e14f7c store 2 ,mem_otp_shutter_move_data_x 
+67a2 6fe14eb0 fetch 2 ,mem_shutter_move_data_y 
+67a3 67e14f7e store 2 ,mem_otp_shutter_move_data_y 
+67a4 20406730 call shutter_dy_check_iphone 
+67a5 67e0cf80 store 1 ,mem_otp_last_shutter_le_iphone_flag 
+67a6 20600000 rtn 
+
+shutter_dy_get_ios_config:
+67a7 6fe14f7c fetch 2 ,mem_otp_shutter_move_data_x 
+67a8 1fe6fc72 div pdata ,iphone_once_max_move_value 
+67a9 20407d62 call wait_div_end 
+67aa 1807fe00 quotient pdata 
+67ab 18070400 remainder temp 
+67ac 67e0ceac store 1 ,mem_shutter_iphone_beyond_x_count 
+67ad 18427e00 copy temp ,pdata 
+67ae 67e14eae store 2 ,mem_shutter_move_data_x 
+67af 6fe14f7e fetch 2 ,mem_otp_shutter_move_data_y 
+67b0 1fe6fc72 div pdata ,iphone_once_max_move_value 
+67b1 20407d62 call wait_div_end 
+67b2 1807fe00 quotient pdata 
+67b3 18070400 remainder temp 
+67b4 67e0cead store 1 ,mem_shutter_iphone_beyond_y_count 
+67b5 58000fff setarg 0xfff 
+67b6 98467e00 isub temp ,pdata 
+67b7 67e14eb0 store 2 ,mem_shutter_move_data_y 
+67b8 20600000 rtn 
+
+shutter_dy_get_android_config:
+67b9 6fe14f7c fetch 2 ,mem_otp_shutter_move_data_x 
+67ba 67e14eae store 2 ,mem_shutter_move_data_x 
+67bb 6fe14f7e fetch 2 ,mem_otp_shutter_move_data_y 
+67bc 67e14eb0 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 6fe14f83 fetch 2 ,mem_otp_read_offset_addr 
+67c2 2040684f call shutter_dy_shutter_read_move_config_from_otp_addr 
+67c3 704f8b00 jam 0 ,mem_shutter_first_read_flag 
+67c4 6fe2cf7c fetch 5 ,mem_otp_move_config 
+67c5 704f8c00 jam 0 ,mem_shutter_valid_data_flag 
+67c6 704f8900 jam 0 ,mem_shutter_temp_count 
+67c7 204067e6 call shutter_dy_campare_otp_data 
+67c8 6fe0cf89 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 6fe14f70 fetch 2 ,mem_shutter_efuse_start_offset 
+67cc 1fe0fffb increase -5 ,pdata 
+67cd 67e14f83 store 2 ,mem_otp_read_offset_addr 
+67ce 20600000 rtn 
+
+shutter_dy_shutter_next_read_addr:
+67cf 6fe14f83 fetch 2 ,mem_otp_read_offset_addr 
+67d0 1fe0fffb increase -5 ,pdata 
+67d1 67e14f83 store 2 ,mem_otp_read_offset_addr 
+67d2 20600000 rtn 
+
+shutter_dy_shutter_last_read_addr:
+67d3 6fe14f83 fetch 2 ,mem_otp_read_offset_addr 
+67d4 1fe0fe05 pincrease 5 
+67d5 67e14f83 store 2 ,mem_otp_read_offset_addr 
+67d6 20600000 rtn 
+
+shutter_dy_shutter_read_ios_android_addr:
+67d7 6fe14f85 fetch 2 ,mem_otp_read_ios_android_addr 
+67d8 1fe0fe05 pincrease 5 
+67d9 67e14f85 store 2 ,mem_otp_read_ios_android_addr 
+67da 6fe14f85 fetch 2 ,mem_otp_read_ios_android_addr 
+67db 1fe20400 copy pdata ,temp 
+67dc 6fe14f70 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 6fe0cf8b 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 6fe14f7c 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 6fe14f7e 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 6fe0cf80 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 6fe0cf89 fetch 1 ,mem_shutter_temp_count 
+67f7 1fe0fe01 pincrease 1 
+67f8 67e0cf89 store 1 ,mem_shutter_temp_count 
+67f9 20600000 rtn 
+
+shutter_dy_shutter_judge_ios_or_android:
+67fa 704f8901 jam 1 ,mem_shutter_temp_count 
+67fb 204067d7 call shutter_dy_shutter_read_ios_android_addr 
+67fc 6fe14f85 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 6fe0cf80 fetch 1 ,mem_otp_last_shutter_le_iphone_flag 
+6801 a841fe00 icompare 0xff ,temp 
+6802 2040e821 call shutter_dy_clear_temp_count ,true 
+6803 6fe0cf89 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 6fe14f74 fetch 2 ,mem_android_initial_move_x 
+680c 67e14eae store 2 ,mem_shutter_move_data_x 
+680d 68494f76 fetcht 2 ,mem_android_initial_move_y 
+680e 58000fff setarg 0xfff 
+680f 98467e00 isub temp ,pdata 
+6810 67e14eb0 store 2 ,mem_shutter_move_data_y 
+6811 202067be branch shutter_dy_store_move_config_info 
+
+shutter_dy_shutter_ios_save_init_loaction:
+6812 d8400072 arg iphone_once_max_move_value ,temp 
+6813 6fe14f78 fetch 2 ,mem_iphone_initial_move_x 
+6814 da204eae arg mem_shutter_move_data_x ,rega 
+6815 da404eac arg mem_shutter_iphone_beyond_x_count ,regb 
+6816 2040671e call shutter_dy_iphone_move_initial_set 
+6817 d8400072 arg iphone_once_max_move_value ,temp 
+6818 6fe14f7a fetch 2 ,mem_iphone_initial_move_y 
+6819 da204eb0 arg mem_shutter_move_data_y ,rega 
+681a da404ead arg mem_shutter_iphone_beyond_y_count ,regb 
+681b 2040671e call shutter_dy_iphone_move_initial_set 
+681c 58000fff setarg 0xfff 
+681d 68494eb0 fetcht 2 ,mem_shutter_move_data_y 
+681e 98467e00 isub temp ,pdata 
+681f 67e14eb0 store 2 ,mem_shutter_move_data_y 
+6820 202067be branch shutter_dy_store_move_config_info 
+
+shutter_dy_clear_temp_count:
+6821 704f8900 jam 0 ,mem_shutter_temp_count 
+6822 20600000 rtn 
+
+shutter_dy_campare_effective_addr_read_otp:
+6823 44d74015 bpatch patch15_6 ,mem_patch15 
+6824 704f8b01 jam 1 ,mem_shutter_first_read_flag 
+6825 204067c0 call shutter_dy_shutter_uart_config_loop 
+6826 6fe14f72 fetch 2 ,mem_shutter_efuse_end_offset 
+6827 1fe20400 copy pdata ,temp 
+6828 6fe14f83 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 6fe14f83 fetch 2 ,mem_otp_read_offset_addr 
+682e 1fe20400 copy pdata ,temp 
+682f 6fe14f70 fetch 2 ,mem_shutter_efuse_start_offset 
+6830 1fe0fffb increase -5 ,pdata 
+6831 98467e00 isub temp ,pdata 
+6832 6fe14f83 fetch 2 ,mem_otp_read_offset_addr 
+6833 67e14f85 store 2 ,mem_otp_read_ios_android_addr 
+6834 204067fa call shutter_dy_shutter_judge_ios_or_android 
+6835 6fe14f85 fetch 2 ,mem_otp_read_ios_android_addr 
+6836 2442e84f ncall shutter_dy_shutter_read_move_config_from_otp_addr ,zero 
+6837 704f8900 jam 0 ,mem_shutter_temp_count 
+6838 204067e6 call shutter_dy_campare_otp_data 
+6839 6fe0cf89 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 704f8b01 jam 1 ,mem_shutter_first_read_flag 
+683e 204067c0 call shutter_dy_shutter_uart_config_loop 
+683f 68494f72 fetcht 2 ,mem_shutter_efuse_end_offset 
+6840 6fe14f83 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 68494f83 fetcht 2 ,mem_otp_read_offset_addr 
+6846 6fe14f70 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 6fe14f83 fetch 2 ,mem_otp_read_offset_addr 
+684c 67e14f81 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 da204f7c 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 da204f7c arg mem_otp_move_config ,rega 
+6856 6a414f81 fetchr regb ,2 ,mem_otp_write_offset_addr 
+6857 20206b45 branch otp_write 
+
+shutter_dy_shutter_1s_timer:
+6858 da60489e 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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/output/ramcode.rom	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/output/ramcode.rom	(working copy)
@@ -0,0 +1,1122 @@
+c2840018
+c0000051
+c001011d
+c0088126
+c00a0304
+c00a81b3
+c00c01c1
+c00c8180
+c00d0138
+c0128326
+c013807c
+c05180c2
+c05280fa
+c0530087
+c0538098
+c05500ea
+c05881d3
+c062001f
+c06281c8
+c06d02ed
+c06d8409
+c06e0446
+c06e8427
+2020235a
+c0120055
+c01280d3
+c01300d8
+c01c8320
+c0268324
+c17f8000
+2020235a
+20406b34
+20406b41
+20406b3b
+e8408011
+1a20a201
+18000e00
+793f8022
+a84c0000
+20208049
+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
+20208025
+c5110049
+79200022
+20200026
+6ff10044
+1fe0fe01
+67f10044
+18e08e01
+28e01e08
+24208025
+c2000022
+20206b38
+2435a002
+37d98200
+37d98200
+20202002
+204025c2
+c597805b
+783cfc00
+2000001e
+204025c2
+19699600
+7856fc00
+7826fc00
+7830fc00
+78507c00
+19623600
+37c18400
+20370064
+1b420400
+604b000f
+242c26fa
+78287c00
+6fe0c167
+d8404e20
+98408400
+6fe0c148
+984fb600
+20406877
+20372677
+20400072
+6fe08168
+c301a677
+2055a477
+20202677
+684b000f
+1b427e00
+20407d12
+1fe20400
+204026ff
+1b425600
+1d227e00
+9840fe00
+1fe25200
+20600000
+c584a489
+684a40ad
+dfe00600
+98467c00
+20610000
+18422200
+684b000f
+1d627e00
+20407d10
+1a220400
+2020247d
+18e27e00
+c000e777
+c002e765
+c0006761
+c0030090
+c0038093
+c0040096
+c0048097
+202065a2
+704fd901
+704fda01
+20600000
+704fd901
+704fda02
+20600000
+20600000
+20600000
+6fe0cec7
+c000e5cf
+20406628
+2040009e
+20740000
+202065cf
+d8e00000
+da404ac3
+dfe00002
+98effe00
+9a40a400
+efe10012
+207a0000
+684906f1
+9842fc00
+202280aa
+18e08e01
+2020009f
+67e14acf
+20404323
+da604ad1
+dfe0000a
+98effe00
+9a60a600
+20206633
+6fe14acf
+207a0000
+684906f1
+18467c00
+202280b7
+202000b6
+704ec001
+20404325
+da604b0d
+58000000
+67e14acf
+70489e32
+20406633
+6fe0c523
+1feff20a
+d8a045fd
+20207ca1
+6fe0cf9f
+243a00cc
+704c0001
+20404323
+204000cf
+20406561
+20216500
+18e27e00
+67e0cec5
+20600000
+18e27e00
+c1808000
+202000c4
+dfe0000a
+98effe00
+da6045fd
+2020652f
+2040281c
+6a20804d
+1a20a3fc
+242126fa
+2020268e
+09800018
+1fef7e00
+1ff17e00
+e7e18005
+78287c00
+2040270d
+202326f6
+c59926af
+6fe0804d
+203a26af
+1fe0fffc
+67e0804d
+204072cb
+6ff08108
+c303a6fa
+1800700c
+65e20154
+202026af
+1a220c00
+efe18006
+67e1c397
+c003e704
+c00080f0
+202066db
+18c08dfe
+efe08006
+c00300f4
+20600000
+202000f5
+704eaa01
+7049e400
+704eb200
+7049e50a
+20600000
+2040654b
+dfe0000a
+98effe00
+da6045fd
+9a60a600
+e8420013
+18467c00
+20628000
+1c427e00
+98460400
+24417806
+1a608c09
+efe08006
+243a0109
+20206547
+704ec001
+2040656b
+20406769
+18e27e00
+c0030112
+c0038116
+da604aae
+dfe00003
+2020655a
+2040011a
+2040038f
+da604fc4
+20206371
+2040011a
+204003b2
+da604fd2
+20206371
+704fd900
+704fda00
+20600000
+20407552
+20407448
+20402a45
+2040202a
+204042ad
+20402018
+2040310f
+2040248c
+2020011d
+708a0f60
+708a10aa
+708a127a
+708a2500
+708a2600
+2000003c
+708a2020
+708a23f5
+708a2412
+708a2410
+2000003c
+708a1260
+708a23dd
+20600000
+37d98200
+70813c58
+37d98200
+20600000
+7001bb00
+7001bc00
+37d98200
+7089460d
+70896f10
+708a8840
+708a13cd
+708a0610
+708a844a
+708a8540
+708a16fe
+20400188
+6fe0c436
+205a70d7
+24558134
+37d98200
+70813b5f
+6fe0c099
+c0080175
+6fe0c438
+1fe1fe04
+67f08a02
+70890f01
+708a8024
+708a8162
+58e61212
+67f18a73
+708a8660
+708a8b3b
+20400167
+70804300
+70804205
+58557474
+67f18968
+7089606e
+204002bf
+204002ea
+20400161
+7041480c
+20406f4e
+202002ec
+20758000
+37d98200
+6fe0c11c
+67f0813a
+37d98200
+20600000
+6fe0c099
+c00c016d
+6fe0c438
+1fe1fe06
+67f08a02
+708a05e0
+708a00d8
+2000003c
+708a01a0
+708a00df
+708a01fa
+20000014
+708a009f
+20600000
+6fe0c438
+1fe1fe06
+67f08a02
+70890f00
+708a8023
+708a81b0
+58e40909
+67f18a73
+708a762a
+70890204
+20200153
+6fe0c141
+c0050183
+2020220e
+708a1425
+58a93f3f
+67f18a60
+708a631f
+20600000
+203581af
+6fe2020d
+207a0000
+37d98200
+6ff08136
+1fe17ef0
+6848820d
+9841fe00
+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
+20200199
+2040686f
+204021ba
+18002a08
+18002a00
+580aaada
+67f18a0f
+708a2540
+708a2610
+2000003c
+708a01fb
+708a25ff
+708a2630
+708a16fe
+202021b4
+580aaa7e
+67f18a0f
+2000003c
+708a2500
+708a260d
+708a16f6
+20202203
+20406b3a
+20406b75
+20206b38
+6fe0cee3
+1fe27200
+67e0c523
+58004523
+67e1442c
+d8c04ee4
+d8a04526
+20207cda
+20407396
+20758000
+204042a3
+204003c5
+70409400
+204001cb
+20406459
+58000001
+67e144f6
+7040a60a
+5800024d
+67e143db
+5800022a
+67e143dd
+5800023f
+67e143df
+580062d3
+67e143d3
+580001f7
+67e143d5
+58006329
+67e143d7
+5800020c
+67e143e3
+58006505
+67e14524
+58006340
+67e1451f
+5800639a
+67e14521
+204062ca
+6fe14f87
+67e14332
+6fe4450a
+67e44502
+202062bd
+20406f35
+7044ecff
+204001fc
+2040701b
+2020739a
+6fe0c6ce
+207a0000
+6fe0cee3
+1fe27200
+da204526
+efe08011
+6848c6cf
+98467c00
+20228207
+1fe20400
+2040020a
+1a20a201
+c2000201
+20600000
+79200407
+20206edd
+204003cd
+20400212
+2040676c
+2040675a
+20400223
+202064d9
+da604fee
+da400215
+202042e0
+6fe0cfef
+704fef00
+c000821a
+c001021c
+20600000
+da604a3f
+20206371
+2040021e
+20206371
+da604fdc
+20406730
+207a0000
+da604fe5
+20600000
+da604518
+da400226
+202042e7
+70451c02
+20404325
+2040634e
+2020639e
+1a627e00
+c0200236
+c0188234
+c00a8231
+c00a0230
+202064e0
+202064f4
+6fe14512
+67e14518
+202064ef
+704ec201
+20600000
+6fe1433c
+c1000000
+6fe4450a
+207a0000
+20406730
+243a024a
+6fe44f02
+67e442d3
+20202e93
+6fe14398
+c0120242
+20600000
+204078ad
+7044f101
+20406730
+2040432b
+243a024a
+6fe44f02
+67e442d3
+20202e93
+6fe44fb0
+67e442d3
+20202e93
+20400258
+d8e00009
+20407cef
+247a0000
+58000020
+d8e00009
+20407ce1
+78547c00
+2040701b
+20400272
+2020034f
+6fe144e9
+c284825d
+d8a045da
+df200023
+20207ca1
+20402a28
+247a0000
+204078fa
+207a0000
+684a49e6
+1c427e00
+98460400
+20628000
+24210269
+6fe0c9e5
+98467c00
+20610000
+1c427e00
+67e249e6
+20406385
+24740000
+1fe0ffff
+1feffe0d
+d8404c02
+98408c00
+202063cb
+6fe148ac
+67e1442e
+204065be
+6fe1442e
+67e148ac
+d8e00000
+6fe0c523
+1fe27200
+da6045fd
+1f227e00
+67e10678
+1a627e00
+67e1068c
+18e27e00
+67e1067a
+2040028f
+6fe1068c
+1fe22600
+6fe1067a
+1fe20e00
+2040658b
+6fe1067a
+1fe08e01
+6fe1068c
+1fe0a60a
+6fe10678
+1fe27200
+c200027b
+20600000
+1a60a405
+efe20012
+207a0000
+1fe20400
+1c427e00
+98460400
+24417806
+580003e8
+98467c00
+20200299
+1a608c04
+efe08006
+2020029c
+2040656b
+20406561
+20216500
+204002b7
+18e27e00
+c00302a6
+c00382a8
+c00402aa
+c00082b1
+20206558
+da604fb8
+20206371
+da604fc6
+20206371
+204002ac
+20206371
+da604fdc
+20406730
+207a0000
+da604fe5
+20600000
+704fee05
+6fe0cfef
+c1010000
+1fe0fe01
+67e0cfef
+20600000
+da604a30
+7049e55a
+20406730
+207a0000
+da604b57
+18e27e00
+7049e514
+20600000
+20758000
+20402160
+d8400027
+2040216f
+204021a6
+708a257f
+708a301a
+708a3178
+708a8fb2
+708ac200
+708ac300
+d8e00006
+204002dc
+2a2ffe0d
+2040211d
+2a4ffe0d
+2040211e
+d8e00005
+2040211c
+2040211e
+204002dc
+d8a08ac2
+1a31fe00
+20402117
+1a51fe00
+20402117
+18e08fff
+202102d1
+2020214f
+2000003c
+58000f00
+67f10982
+58000ff0
+67f10984
+70898109
+70898103
+70898006
+2000003c
+da200000
+da400000
+df200010
+d8c00f00
+2020212d
+20758000
+20202272
+20600000
+20758000
+708a0777
+708a08c9
+708a0b01
+6fe0c409
+67f080cd
+20000bb8
+204002fd
+708a08c1
+6a40c419
+df200008
+20406f58
+6fe0c419
+67e0c433
+6240c419
+20600000
+7080cc03
+6ff08129
+c30282fe
+68590164
+6049440a
+7080cc00
+20600000
+708a8211
+708a8d12
+708a8e0a
+6fe0c099
+c008031d
+58005762
+67f10907
+70890103
+70893003
+c6168000
+70890101
+708a8207
+708a8d44
+708a8e0a
+6fe0c099
+c008031a
+58002bb1
+67f10907
+c6978000
+70893024
+70890105
+20600000
+58004189
+67f10907
+20200316
+58008312
+67f10907
+2020030b
+6fe0c334
+c1000000
+c001b04a
+202028e1
+793f8030
+20202af6
+6fe143e9
+20407d79
+6fe240ad
+9840fe00
+67e240ad
+20400337
+6fe0c0cb
+79207e04
+204023e1
+2455a3cb
+37d98200
+1b227e00
+67e340b1
+6fe1c0c6
+6a20c0c9
+df200003
+2020242e
+600440e7
+d8c08070
+d8a040cc
+20407c8f
+d8c080d4
+20407c89
+6ff08080
+67e0c0ef
+18422400
+df20000c
+da200016
+da60814d
+37d98200
+efe08011
+e8408013
+98467c00
+2022834a
+e7e08013
+37d98200
+1a20a201
+1a60a601
+c2000344
+1a420400
+20600000
+da200000
+684a4fd5
+1c422400
+1a427e00
+98467c00
+24417806
+1a427e00
+18408440
+98467c00
+24210361
+1a20a201
+1a217e0f
+243a0355
+da200000
+20400366
+1c427e00
+67e24fd5
+20600000
+1a227e00
+207a0000
+184085c0
+793f841c
+604a4fd5
+67e0cfd4
+6fe0cfd4
+207a0000
+1fe0ffff
+67e0cfd4
+2040036d
+20200367
+da604fd9
+da400370
+202042e0
+6fe0cfda
+c0008374
+c0010397
+20600000
+20406730
+243a0383
+7049e508
+704fd901
+6fe0cfdb
+1fe0fe02
+67e0cfdb
+1fe67c5a
+2042838f
+da604fc2
+204003ba
+efe1003f
+1fe0fe0a
+e7e10011
+20206371
+204003c2
+6fe0cfdb
+1fe0fe01
+67e0cfdb
+1fe67c5a
+2042838f
+da604fc2
+204003ba
+efe1003f
+1fe0fe12
+e7e10011
+20206371
+704fdb00
+da604fc4
+20406371
+da604fc2
+204003ba
+58000650
+e7e10011
+20600000
+20406730
+243a03a6
+7049e508
+704fd901
+6fe0cfdb
+1fe0fe02
+67e0cfdb
+1fe67c5a
+204283b2
+da604fd0
+204003ba
+efe1003f
+1fe0fff6
+e7e10011
+20206371
+204003c2
+6fe0cfdb
+1fe0fe01
+67e0cfdb
+1fe67c5a
+204283b2
+da604fd0
+204003ba
+efe1003f
+1fe0ffee
+e7e10011
+20206371
+704fdb00
+da604fd2
+20406371
+da604fd0
+204003ba
+58000a00
+e7e10011
+20600000
+d8404c02
+efe08013
+1fe0ffff
+1feffe0d
+9840fe00
+1fe0fe06
+1fe22200
+20600000
+7049e501
+704fd903
+20600000
+704ff801
+20600000
+6fe0cff9
+1fe0fe01
+67e0cff9
+6848cffd
+98467c00
+20600000
+6fe0cff8
+207a0000
+204003c7
+24610000
+704ff900
+70440701
+20406ff3
+20406feb
+20400446
+20400427
+67e14ff6
+da204ff0
+204003df
+6fe0c40c
+c28083ff
+c3000403
+704ffb01
+20200401
+efe40011
+67e40670
+20406ff3
+20406feb
+6fe10676
+68490672
+98467c00
+24416fef
+68490674
+98467c00
+24416fe7
+6fe10676
+68490670
+98467c00
+202103fb
+68490672
+98467e00
+242103fd
+203a03fd
+1fefa264
+6fe10670
+68490672
+98460400
+1a227e00
+9846fc00
+20407d5f
+67e0cffc
+20600000
+704ffc64
+20600000
+704ffc00
+20600000
+20404325
+20204327
+704ffa01
+20600000
+704ffa00
+6fe0cffb
+207a0000
+20404325
+704ffb00
+20600000
+6fe401fd
+203a6f79
+67e443fd
+20406b3a
+20406aad
+dfe00fc0
+9a40a400
+df20000a
+da2001fd
+20406b74
+20406b37
+6fe401fd
+207a0000
+67e4414e
+efe10006
+e7e10005
+20600000
+6ff080cc
+79207e01
+67f080cc
+6a40c419
+6fe0c433
+67e0c419
+df200008
+20406f67
+6240c419
+6ff08a0a
+793ffe04
+67f08a0a
+20600000
+6fe0c407
+c000842b
+c0010432
+20600000
+580003e8
+67e14405
+68494152
+6fe14154
+da600e10
+20406fc0
+20200438
+580003e8
+67e14405
+6849414e
+6fe14150
+da6003e8
+20406fc0
+68494156
+984ffe00
+68494158
+9846fc00
+20207d5f
+2040041a
+6ff08a09
+793ffe07
+67f08a09
+708a0777
+708a08c1
+708a0d61
+708a0b00
+20600000
+2040043d
+20406f90
+6fe0c409
+67f080cd
+20406f97
+708a0d60
+7080cd00
+2040043d
+6fe0c409
+67f080cd
+708a0b50
+708a0ec0
+df00000b
+6de1440a
+7080cc03
+2040045f
+68590164
+60494158
+20406f9c
+df00000b
+65e1440a
+708a0d60
+7080cd00
+7080cc00
+20600000
+6ff08129
+c302845f
+20600000
Index: output/romcode.rom
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/output/romcode.rom	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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
+20407d74
+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
+6fe34ee4
+67e34526
+70452306
+58004523
+67e1442c
+20600000
+6fe3cee4
+67e3c526
+70452307
+58004523
+67e1442c
+20600000
+6fe44ee4
+67e44526
+70452308
+58004523
+67e1442c
+20600000
+6fe0cee3
+c0036442
+c003e448
+c004644e
+20600000
+44d0c014
+6fe44f0a
+67e44512
+58000096
+67e144f6
+6fe3cf5a
+67e3c6a7
+6fe3cf61
+67e3c6b2
+6fe24f68
+67e244fa
+6fe24f6c
+67e244fe
+5800000e
+67e144f2
+58000140
+67e144f4
+67e14389
+6fe44f02
+67e4450a
+20600000
+20407396
+20758000
+20406454
+20406459
+58006484
+67e143db
+580064df
+67e143dd
+580066c5
+67e143df
+580064b5
+67e143e3
+58006505
+67e14524
+204062c2
+6fe14f87
+67e14332
+6fe4450a
+67e44502
+2040648e
+44d14014
+202062bd
+2040649b
+d8e00009
+20407cef
+247a0000
+58000020
+d8e00009
+20407ce1
+78547c00
+2040701b
+2020656e
+5800001f
+1feffe0a
+d8404c02
+9840a200
+1a20a203
+d8400072
+e0408011
+1a20a20b
+dfe00fff
+98467e00
+1ff27e00
+e7e10011
+20600000
+6fe144e9
+c284e4a0
+d8a045da
+df200023
+20207ca1
+20402a28
+247a0000
+204078fa
+207a0000
+684a49e6
+1c427e00
+98460400
+20628000
+242164ac
+6fe0c9e5
+98467c00
+20610000
+1c427e00
+67e249e6
+20406385
+24740000
+1fe0ffff
+1feffe0a
+d8404c02
+98408c00
+202063cb
+20406858
+2040676c
+2040675a
+204064bc
+204064d3
+20406311
+202064d9
+da604ec1
+da4064bf
+202042e0
+204078fa
+247a0000
+6fe148ac
+247a0000
+20406730
+203a64cd
+18e27e00
+2fe00e04
+2020e4cf
+18e27e00
+2fe00e01
+2020e4d1
+da604eb6
+20206371
+da604eca
+20206371
+da604ecf
+20206371
+da604ed9
+20206371
+da604bff
+da4064d6
+202042e0
+df20000a
+d8a049f4
+20207ca1
+da6046ca
+da4064dc
+202042e0
+6fe144e9
+c284e39e
+20204327
+1a627e00
+c00a64f4
+c00ae4ef
+c018e4e6
+c1200000
+c01966c8
+202062d9
+704ec201
+20406783
+6fe14f74
+67e14eae
+68494f76
+58000fff
+98467e00
+67e14eb0
+20600000
+704eab00
+704ec200
+204065ad
+20406500
+202062e6
+1c427e00
+67e249e6
+20406729
+202062e2
+78567c00
+6fe14516
+67e14518
+20406358
+2034635c
+20406351
+24740000
+20207dbe
+704ec500
+20600000
+18e27e00
+c1808000
+2020650c
+204064f8
+24760000
+1a227e00
+203a6537
+44d1c014
+6fe0cf9f
+243a6502
+704c0001
+20404323
+2040652c
+20406561
+20216500
+18e27e00
+6848cec5
+98467c00
+2442e526
+18e27e00
+67e0cec5
+6848cec8
+98467c00
+2022e524
+6fe0cec9
+243a651f
+20406732
+dfe0000a
+2020655a
+2040677f
+18e27e00
+c000e51c
+20406642
+202065f4
+704ec601
+202065f4
+44d24014
+6fe0cec9
+203a64c3
+18e27e00
+c000e4c3
+20600000
+dfe0000a
+98effe00
+da6049ea
+9a60a600
+1c427e00
+e7e20013
+1a60a604
+efe08013
+1fe0fe01
+e7e08013
+20600000
+44d2c014
+6fe0cec9
+205a654b
+dfe0000a
+98effe00
+da6049ea
+9a60a600
+e8420013
+18467c00
+20628000
+1c427e00
+98460400
+24417806
+1a608c09
+efe08006
+243a6566
+1a60a605
+1c427e00
+e7e20013
+20600000
+6fe0cf9f
+243a4323
+20204325
+1a608c04
+efe08006
+20206551
+2040656b
+6fe0cec9
+243a655d
+20406561
+20216500
+20406738
+18e27e00
+c001e740
+dfe0000f
+98effe00
+9a60a600
+20206371
+18e27e00
+c000e554
+c001e554
+20600000
+20407902
+e8408006
+98467e00
+1fe67c0a
+20600000
+704ec001
+2040656b
+da604aae
+dfe00003
+2020655a
+df20000a
+1a620a00
+20207ca1
+6fe148ac
+67e1442e
+204065be
+6fe1442e
+67e148ac
+d8e00000
+6fe0c523
+1fe27200
+da6049ea
+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
+6fe0cec0
+207a0000
+704ec000
+44d34014
+20406755
+6fe0cec7
+c00065a2
+c000e5a5
+20600000
+204065af
+dfe00003
+2020655a
+18e27e00
+6848cec8
+98467c00
+2422e5a2
+6fe0cec9
+79407e00
+67e0cec9
+247a0000
+704ec900
+20204325
+da604a99
+20406730
+207a0000
+da604bc0
+20600000
+1a60a405
+efe20012
+207a0000
+1fe20400
+1c427e00
+98460400
+24417806
+580003e8
+98467c00
+2020654e
+6fe1442c
+efe0803f
+207a0000
+58000000
+67e106f1
+20407003
+243477a5
+204077a3
+78547c00
+6fe0c388
+247a0000
+44d3c014
+6fe0cec7
+c000e5cf
+20406628
+204065dc
+20740000
+204065d5
+6fe106f1
+67e106f8
+7006fa00
+18000e00
+2020703b
+6fe0cec5
+6848cec8
+98467c00
+2022c323
+6fe0cec9
+243a4325
+20600000
+d8e00000
+da404ac3
+dfe00002
+98effe00
+9a40a400
+efe10012
+207a0000
+684906f1
+9842fc00
+2022e5e8
+18e08e01
+202065dd
+67e14acf
+20404323
+da604ad1
+dfe0000a
+98effe00
+9a60a600
+204065f0
+20206633
+2040677f
+efe08013
+207a0000
+20406642
+2040677f
+20406609
+20406614
+2040661e
+dfe00005
+20406382
+20406730
+207a0000
+7049e578
+dfe00006
+20206382
+6848ceaa
+20406730
+207a0000
+6848cead
+18408401
+6fe0cec6
+207a0000
+6848ceaa
+704ec600
+20600000
+204065ff
+18427e00
+207a0000
+67e0ceb3
+dfe00013
+20406382
+6fe0ceb3
+1fe0ffff
+67e0ceb3
+207a0000
+2020660d
+6fe0ceac
+207a0000
+67e0ceb4
+dfe00020
+20406382
+6fe0ceb4
+1fe0ffff
+67e0ceb4
+207a0000
+20206617
+6fe0cead
+207a0000
+67e0ceb5
+dfe00021
+20406382
+6fe0ceb5
+1fe0ffff
+67e0ceb5
+207a0000
+20206621
+6fe14acf
+207a0000
+684906f1
+18467c00
+2022e636
+98467c00
+20628000
+60494acf
+6fe14ec3
+98467c00
+2042c325
+6fe106f1
+67e1442e
+20207dba
+704ec001
+20404325
+da604b0d
+204065f0
+58000000
+67e14acf
+70489e32
+20406633
+6fe0c523
+1feff20a
+d8a049ea
+20207ca1
+44d44015
+6fe0cec7
+c000e647
+c000664d
+20600000
+18e27e00
+c002e676
+c0006693
+c002669b
+c00166be
+20600000
+efe08013
+c000e676
+c0016693
+c001e69b
+c00266be
+c002e654
+20600000
+20406730
+243a665e
+58000004
+1feffe0a
+d8404c02
+98408a00
+18a08a03
+6fe1cb17
+e7e18005
+20600000
+58000004
+1feffe0a
+d8404c02
+98408a00
+18a08a03
+6fe14eae
+e7e18005
+18a08a07
+6fe14eb0
+1ff27e00
+1fed7e00
+e7e18005
+20600000
+6fe0ceac
+207a0000
+1fe0ffff
+67e0ceac
+dfe00072
+20600000
+d840002a
+20406730
+207a0000
+d8400005
+20600000
+20406671
+6fe14eae
+98467c00
+2441666b
+24610000
+98467e00
+67e14eae
+44d4c015
+6fe14eae
+68494eb0
+184d0400
+18520400
+9840fe00
+67e1cb17
+20206654
+6fe14eae
+d8400072
+98460400
+24610000
+18427e00
+6848ceac
+18467c03
+2022e690
+18408401
+6048ceac
+2020667c
+704eac00
+dfe00000
+2020667c
+20406730
+245a6685
+20406671
+6fe14eae
+9840fe00
+d8400fff
+20407d6c
+2020667c
+20406671
+6fe14eb0
+98467e00
+67e14eb0
+68494eb0
+20406730
+203a667d
+58000fff
+98467e00
+d8400072
+98460400
+2421667d
+58000fff
+98467e00
+6848cead
+18467c05
+2022e6af
+18408401
+6048cead
+202066bc
+704ead00
+58000fff
+202066bc
+20406730
+203a66b0
+6fe0cead
+203a66b0
+1fe0ffff
+67e0cead
+58000fff
+d8400072
+98467e00
+9a20fe00
+67e14eb0
+2020667d
+20406671
+6fe14eb0
+9840fe00
+d8400fff
+98462200
+202166b2
+202066bc
+6fe14398
+c01262e9
+20600000
+da200017
+da400004
+204029fb
+58000006
+e7e08005
+58000001
+e7e10005
+5800ffff
+e7e10005
+58002800
+e7e10005
+d8c049d4
+20207c8f
+44d54015
+1a220c00
+efe18006
+67e1c397
+c003e704
+c000e725
+c00566f4
+c00666de
+20202b96
+efe10006
+67e106b5
+98002200
+68494398
+6fe14332
+98467c00
+2422ad50
+20406730
+243a66e9
+684949d0
+202066ea
+684949d2
+d8c048ae
+20407c6d
+18427e00
+9a267e00
+24212e03
+1fe0fe01
+1fe67c17
+20212d59
+18007e17
+20202d59
+68494398
+6fe0c321
+c281e6f8
+20202d1d
+6fe14332
+98467c00
+2422ad1d
+20402dc7
+243466fe
+20202d46
+6fe14332
+98467c00
+2422ad1d
+d8c048ae
+18007e17
+20202d2d
+44d5c015
+704eaa05
+7049e401
+704eb201
+7049e5f0
+704ec10a
+704ec601
+204067bf
+6fe0cec2
+207a0000
+20406783
+d8400072
+6fe14f78
+da204eae
+da404eac
+2040671e
+d8400072
+6fe14f7a
+da204eb0
+da404ead
+2040671e
+58000fff
+68494eb0
+98467e00
+67e14eb0
+20600000
+9846fc00
+20407d62
+1807fe00
+18070400
+e7e08012
+e0410011
+20600000
+18c08dfe
+efe08006
+c003672e
+20600000
+704eaa01
+7049e400
+704eb200
+7049e50a
+20600000
+20406729
+202067bf
+6fe0c9e4
+20600000
+da604f14
+20406730
+207a0000
+7049e578
+da604b1b
+20600000
+da604a30
+20406730
+207a0000
+da604b57
+7049e50c
+18e27e00
+c1008000
+20600000
+44d64015
+6fe0cbfe
+79407e00
+67e0cbfe
+c0006749
+c000e747
+20600000
+20406750
+20206371
+2040674b
+20206371
+da604a5d
+20406730
+207a0000
+da604b84
+20600000
+da604bea
+20406730
+207a0000
+da604bf4
+20600000
+18e27e00
+c000e777
+c0016765
+c0026761
+20600000
+da604f8d
+da40675d
+202042e0
+704f8d04
+6fe0cbfe
+203a6761
+20206765
+704bfe00
+704f8d04
+da604aa5
+20206371
+704bfe01
+704f8d04
+da604a9f
+20206371
+704bfe00
+704f8d00
+20600000
+da604f8e
+da40676f
+202042e0
+704f8e02
+20406772
+20206371
+da604f8f
+20406730
+207a0000
+da604f97
+20600000
+6fe0cf9f
+243a677c
+704f9f01
+704f8e02
+20600000
+704f9f00
+704f8e00
+20600000
+6fe0ceab
+247a0000
+704eab01
+2020667d
+58000000
+67e3ceac
+20600000
+20406730
+c000e78e
+c00067a0
+20600000
+6fe0cf80
+c000e7a7
+c00067b9
+20600000
+6fe0ceac
+1feffe72
+1fe20400
+6fe14eae
+9840fe00
+67e14f7c
+6fe0cead
+1feffe72
+1fe20400
+6fe14eb0
+1fe22200
+58000fff
+9a267e00
+9840fe00
+67e14f7e
+20406730
+67e0cf80
+20600000
+6fe14eae
+67e14f7c
+6fe14eb0
+67e14f7e
+20406730
+67e0cf80
+20600000
+6fe14f7c
+1fe6fc72
+20407d62
+1807fe00
+18070400
+67e0ceac
+18427e00
+67e14eae
+6fe14f7e
+1fe6fc72
+20407d62
+1807fe00
+18070400
+67e0cead
+58000fff
+98467e00
+67e14eb0
+20600000
+6fe14f7c
+67e14eae
+6fe14f7e
+67e14eb0
+20600000
+2020683c
+20206823
+204067e2
+6fe14f83
+2040684f
+704f8b00
+6fe2cf7c
+704f8c00
+704f8900
+204067e6
+6fe0cf89
+c1000000
+202067c0
+6fe14f70
+1fe0fffb
+67e14f83
+20600000
+6fe14f83
+1fe0fffb
+67e14f83
+20600000
+6fe14f83
+1fe0fe05
+67e14f83
+20600000
+6fe14f85
+1fe0fe05
+67e14f85
+6fe14f85
+1fe20400
+6fe14f70
+98467e00
+d8400005
+98467c00
+24216806
+20600000
+6fe0cf8b
+c000e7cb
+c00067cf
+20600000
+da400000
+1a420400
+6fe14f7c
+a843fe00
+2440e7f6
+da400000
+1a420400
+6fe14f7e
+a843fe00
+2440e7f6
+da400000
+1a420400
+6fe0cf80
+a841fe00
+2440e7f6
+20600000
+6fe0cf89
+1fe0fe01
+67e0cf89
+20600000
+704f8901
+204067d7
+6fe14f85
+2040684f
+20406730
+1fe20400
+6fe0cf80
+a841fe00
+2040e821
+6fe0cf89
+c1000000
+202067fa
+44d6c015
+20406821
+20406730
+203a680b
+20206812
+6fe14f74
+67e14eae
+68494f76
+58000fff
+98467e00
+67e14eb0
+202067be
+d8400072
+6fe14f78
+da204eae
+da404eac
+2040671e
+d8400072
+6fe14f7a
+da204eb0
+da404ead
+2040671e
+58000fff
+68494eb0
+98467e00
+67e14eb0
+202067be
+704f8900
+20600000
+44d74015
+704f8b01
+204067c0
+6fe14f72
+1fe20400
+6fe14f83
+98467e00
+d8400000
+98467c00
+24610000
+6fe14f83
+1fe20400
+6fe14f70
+1fe0fffb
+98467e00
+6fe14f83
+67e14f85
+204067fa
+6fe14f85
+2442e84f
+704f8900
+204067e6
+6fe0cf89
+c1000000
+2020678a
+44d7c015
+704f8b01
+204067c0
+68494f72
+6fe14f83
+98467e00
+d8400000
+98467c00
+24610000
+68494f83
+6fe14f70
+98467e00
+d8400000
+98467c00
+24610000
+6fe14f83
+67e14f81
+20406786
+20206854
+44d84016
+1fe22400
+df200005
+da204f7c
+20206b74
+df200005
+da204f7c
+6a414f81
+20206b45
+da60489e
+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
+00020001
+18000228
+03020002
+030a0128
+2a000200
+00000014
+00000000
+00000000
+00000000
+00000000
+02000400
+02012803
+01020005
+03c2022a
+03020006
+07020128
+2a040200
+06000608
+2c006400
+02000801
+01022800
+02000918
+20012803
+0502000a
+000b002a
+02290202
+000c0000
+02280002
+000d180a
+01280302
+02000e02
+59062a29
+69684369
+02000f70
+02012803
+50020010
+3502072a
+01aa2212
+02001100
+12022800
+02001218
+06012803
+4e020013
+1401012a
+28030200
+00151201
+082a4d02
+00000000
+00000000
+02020016
+00000229
+08020017
+01020229
+03020018
+191a0128
+2a4d0200
+00000007
+00000000
+0202001a
+00000229
+0802001b
+01010229
+0302001c
+1d120128
+2a4d0200
+1e000002
+29020200
+1f000002
+29080200
+20010302
+28030200
+00211201
+022a4d02
+00220000
+02290202
+00230000
+02290802
+00240104
+01280302
+0200250e
+00022a4d
+02002600
+02022908
+02002702
+02012803
+4b020028
+0105bd2a
+01a10209
+01090185
+090500a1
+08290119
+01250015
+08950175
+01050281
+31093009
+26f80116
+107507ff
+06810295
+81153809
+08757f25
+06810195
+380a0c05
+81019502
+05c0c006
+a1060901
+75028501
+05089501
+29e01907
+250015e7
+95028101
+81087501
+75059503
+19080501
+91052901
+75019502
+95039103
+15087506
+00ff2600
+00190705
+0081ff29
+090c05c0
+8501a101
+2a001903
+001503ff
+9503ff26
+81107501
+0105c000
+01A18009
+00150485
+01750125
+81190395
+02818329
+05750195
+29C00381
+28030200
+002a1a01
+082a3302
+00000000
+00000000
+0202002b
+00010229
+0302002c
+2d020128
+2a4a0200
+00010104
+02002e03
+0f022800
+02002f18
+12012803
+19020030
+3164012a
+29020200
+32000002
+28030200
+00330401
+002a4c02
+061a0000
+8809ffbc
+048501a1
+ff2a0019
+26001500
+087500ff
+00810195
+01053fc0
+01a10609
+08950175
+e0190705
+0015e729
+02810125
+08750195
+05950381
+08050175
+05290119
+01950291
+03910375
+08750695
+ff250015
+00190705
+0081ff29
+0105a3c0
+01a10209
+01090185
+090500a1
+05290119
+01250015
+01750595
+01950281
+01810375
+30090105
+01163109
+07FF26F8
+02951075
+38090681
+7f258115
+01950875
+0c050681
+9502380a
+c0068101
+090105c0
+8501a180
+19010502
+15882981
+95012500
+81017508
+0c05c006
+01a10109
+00150385
+19038026
+03802a00
+01951075
+06c00081
+0e09ff00
+BA8501a1
+08751f95
+1500ff26
+91010900
+95BA8502
+2608751f
+001500ff
+02810109
+011212C0
+00000200
+31514000
+00021020
+01000201
+3b02093b
+00010200
+040932a0
+03010000
+09000101
+00020021
+001a2201
+03810507
+09020040
+01000104
+00020103
+02002109
+a3220100
+82050700
+02004003
+00020001
+18010228
+03020002
+03200128
+2a050200
+00040001
+02290202
+00050000
+02280002
+00061800
+01280302
+02000702
+43132a00
+73706968
+422d6165
+2020454c
+20202020
+00082020
+01280302
+02000902
+c1022a01
+02000a03
+02012803
+0402000b
+0006082a
+00640006
+000c012c
+02280002
+000d180a
+01280302
+02000e02
+02072a50
+8266248a
+000f0001
+02280002
+00101812
+01280302
+02001106
+01012a4e
+03020012
+13120128
+2a4d0200
+14000002
+29020200
+15000002
+29080200
+16010202
+28030200
+00171201
+022a4d02
+00180000
+02290202
+00190000
+02290802
+001a0103
+01280302
+02001b02
+051b2a4b
+a101090c
+09028501
+09ea09e9
+153009e2
+750c2501
+81019510
+001cc000
+01280302
+02001d02
+11042a4a
+1e010001
+28030200
+001f0401
+012a4c02
+02002000
+0f022800
+02002118
+12012803
+19020022
+0063012a
+00130200
+13020002
+02000100
+00040013
+06001302
+00130200
+13020005
+02000000
+28000017
+00001702
+02000100
+01022800
+02000218
+20012803
+05020003
+0400012a
+29020200
+05000002
+28000200
+06180002
+28030200
+00070201
+112a0002
+4f484355
+3130204e
+20202020
+20202020
+02000820
+02012803
+01020009
+00c8022a
+0302000a
+0b020128
+2a040200
+06000608
+2c006400
+02000c01
+0a022800
+02000d18
+02012803
+5002000e
+8a02072a
+01826624
+02000f00
+f0022800
+020010ff
+12012803
+f1020011
+00000eff
+00000000
+00000000
+00000000
+02020012
+00000229
+03020013
+14080128
+fff20200
+0000000e
+00000000
+00000000
+00000000
+8a2f9800
+37449142
+c0fbcf71
+b5dba5b5
+56c25be9
+f111f139
+3f82a459
+1c5ed592
+07aa98ab
+835b01d8
+3185be12
+0c7dc324
+be5d7455
+deb1fe72
+dc06a780
+9bf1749b
+9b69c1c1
+be4786e4
+c19dc6ef
+0ca1cc0f
+e92c6f24
+7484aa2d
+b0a9dc4a
+f988da5c
+3e515276
+31c66d98
+0327c8a8
+597fc7b0
+e00bf3bf
+a79147c6
+ca6351d5
+29296706
+b70a8514
+1b213827
+2c6dfc2e
+380d134d
+0a735453
+6a0abb65
+c2c92e76
+722c8581
+bfe8a192
+1a664ba2
+4b8b70a8
+6c51a3c2
+92e819c7
+990624d1
+0e3585d6
+6aa070f4
+a4c11610
+376c0819
+48774c1e
+b0bcb527
+1c0cb334
+d8aa4a39
+9cca4f4e
+2e6ff35b
+8f82ee68
+a5636f74
+c8781478
+c7020884
+befffa8c
+506ceb90
+f9a3f7a4
+7178f2be
+000000c6
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+0000212d
\ No newline at end of file
Index: output/sched.rom
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/output/sched.rom	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/output/sched.rom	(working copy)
@@ -0,0 +1,754 @@
+mem_patch00:
+05   #mem_patch00
+00   #mem_patch01
+32   #mem_patch02
+07   #mem_patch03
+a0   #mem_patch04
+00   #mem_patch05
+00   #mem_patch06
+00   #mem_patch07
+00   #mem_patch08
+00   #mem_patch09
+00   #mem_patch0a
+00   #mem_patch0b
+00   #mem_patch0c
+00   #mem_patch0d
+00   #mem_patch0e
+00   #mem_patch0f
+00   #mem_patch10
+00   #mem_patch11
+00   #mem_patch12
+00   #mem_patch13
+e8   #mem_patch14
+04   #mem_patch15
+02   #mem_patch16
+00   #mem_patch17
+30   #mem_patch18
+00   #mem_patch19
+00   #mem_patch1a
+3c   #mem_patch1b
+00   #mem_patch1c
+00   #mem_patch1d
+00   #mem_patch1e
+00   #mem_patch1f
+00   #mem_patch20
+00   #mem_patch21
+00   #mem_patch22
+00   #mem_patch23
+70   #mem_patch24
+00   #mem_patch25
+00   #mem_patch26
+02   #mem_patch27
+00   #mem_patch28
+20   #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
+
+
+#device option
+mem_device_option:06
+#power on config
+mem_ui_button_gpio:ff
+
+mem_le_lap:0d 21 21 98 07 2a
+mem_le_name_len:
+'Selfie
+
+mem_tx_power:06
+
+//save otp addr
+mem_shutter_efuse_start_offset: b0 1f
+mem_shutter_efuse_end_offset: 70 1a
+
+mem_shutter_le_pairing_handle:2b 00
+
+#榛樿鐩告満鍦
+#mem_initial_move_conf:aa 00 78 00 69 00 38 00
+#宸︿笅瑙
+#mem_initial_move_conf:0a 00 1e 00 07 00 06 00
+#瀹夊崜涓棿锛孖OS宸︿笅瑙
+mem_initial_move_conf:ef 03 a0 06 07 00 06 00
+
+mem_shutter_dy_conf:01
+#soft switch first power on
+mem_shutter_soft_switch_first_power_on:01
+
+#led config
+mem_shutter_led_on_light_dark_led_conf:
+00		#type:stop blink
+00		#blink count:no blink
+93
+#0c		#led gpio number:GPIO01
+46 00	#led blink light time
+96 00	#led blink dark time
+mem_shutter_led_off_light_dark_led_conf:
+01		#type:start blink
+03		#blink count:no blink
+93
+#0c		#led gpio number:GPIO01
+46 00	#led blink light time
+96 00	#led blink dark time
+
+mem_shutter_reconn_blink_on_time_conf:
+20 01
+20 03
+mem_shutter_discovery_blink_on_time_conf:
+20 01
+20 03
+
+#hard_soft_switch config
+mem_shutter_hard_soft_switch_case_temp:00
+mem_shutter_soft_switch_button_gpio_temp:ff
+#mem_shutter_soft_switch_button_gpio_temp:12
+
+#100ms timer
+mem_shutter_ble_discovery_time_conf:
+70 17 #discovery_timeout
+70 17 #connect_timeout
+70 17 #sleep_timeout
+70 17 #sleep_timer
+
+mem_shutter_adc_read_time_init:05
+mem_shutter_vdd_calculate_set:
+e4 0c	#mem_shutter_vdd_full_vol 3.3v*1000
+00 00	#mem_shutter_vdd_empty_vol 2.3v*1000
+bf 09	#mem_shutter_vdd_low_vol 2.5v*1000
+
+
+#key config
+mem_shutter_key_num_conf:0a
+mem_shutter_dy_key_conf:
+#test 9key
+# ff   #right
+# 15   #like
+# 08   #down
+# 0a   #photo
+# 14   #up
+# ff   #left
+# 06   #fouse up
+# 07   #fouse down
+# 0d   #mode step
+# ff   #photo2
+
+#JM199
+# 14   #right  k6
+# 02   #like   k1
+# 06   #down   k4
+# 01   #photo  k3
+# 0c   #up     k7
+# 13   #left   k5
+# ff   #fouse up
+# ff   #fouse down
+# 00   #mode step
+# ff   #photo2
+
+#JM140
+ff   #right
+12   #like
+ff   #down
+01   #photo
+ff   #up
+ff   #left
+06   #fouse up
+0f   #fouse down
+ff   #mode step
+ff   #photo2
+
+#dy 10key
+# 08   #right
+# 07   #like
+# 0f   #down
+# 12   #photo
+# 02   #up
+# 06   #left
+# 03   #fouse up
+# 00   #fouse down
+# 01  #mode step
+# 0e   #photo2
+
+#JM118 10key
+# 0e   #right
+# 13   #like
+# 0f   #down
+# 00   #photo
+# 12   #up
+# 14   #left
+# 01   #fouse up
+# 08   #fouse down
+# 07   #mode step
+# 06  #photo2
+
+#otp io
+# 08   #right
+# 07   #like
+# 0f   #down
+# 12   #photo
+# 02   #up
+# 06   #left
+# 03   #fouse up
+# 00   #fouse down
+# 01   #mode step
+# 0e  #photo2
+
+mem_combine_key0:
+#6key
+#28 00 #left 2
+#09 00 #right 2
+#18 00 #up 2
+#0c 00 #down 2
+
+#6key -key mirror
+#09 00 #left 2
+#28 00 #right 2
+#0c 00 #up 2
+#18 00 #down 2
+
+#7key
+60 00 #left 2
+41 00 #right 2
+50 00 #up 2
+44 00 #down 2
+00 00
+
+#7key -key mirror
+#41 00 #left 2
+#60 00 #right 2
+#44 00 #up 2
+#50 00 #down 2
+#00 00
+
+mem_combine_key_release_value:40 00
+mem_shutter_iphone_move_mid:00
+mem_shutter_iphone_up_mid:00
+mem_shutter_iphone_like_mid:00
+mem_shutter_android_move_mid:00
+
+################################### ios config ######################################
+#right
+mem_key0_release_new_i:
+19 18 17 16 15 14 13 00
+mem_key0_long_press_i:
+00
+#like
+mem_key1_release_new_i:
+1b 1c 00
+mem_shutter_link_data_i:
+1b 1c 1c 1b 1c 00
+#down
+mem_key2_release_new_i:
+11 10 0f 0e 0d 0c 0b 0a 00
+#photo
+mem_key3_release_new_i:#volume increment
+03 01 00
+#33 34 00
+#03 01 33 34 00
+mem_key3_release_new_i_t:#volume decrement
+04 01 00
+#33 34 00
+#04 01 33 34 00
+#up
+mem_key4_release_new_i:
+0b 0c 0d 0e 0f 10 11 12 00
+#left
+mem_key5_release_new_i:
+14 15 16 17 18 19 1a 00
+mem_key5_long_press_i: #lock
+00
+#move
+mem_key6_release_new_i:
+00
+################################### ios config end ######################################
+
+################################### android config ######################################
+#move
+mem_key6_release_new:
+00
+#right
+mem_key0_release_new:
+19 18 17 16 15 14 13 00
+mem_key0_long_press:
+00
+#like
+mem_key1_release_new:
+1b 1c 00
+mem_shutter_link_data:
+1b 1c 1c 1b 1c 00
+#down
+mem_key2_release_new:
+11 10 0f 0e 0d 0c 0b 0a 00
+mem_key2_long_press:#volume decrement
+04 01 00
+#photo
+mem_key3_release_new:#volume increment
+03 01 33 34 00
+#03 01 00
+#33 34 00
+mem_key3_release_new_t:#volume decrement
+04 01 33 34 00
+#04 01 00
+#33 34 00
+#up
+mem_key4_release_new:
+0b 0c 0d 0e 0f 10 11 12 00
+mem_key4_long_press:#volume increment
+03 01 00
+#left
+mem_key5_release_new:
+14 15 16 17 18 19 1a 00
+mem_key5_long_press:
+00
+################################### android config  end ######################################
+
+################################### fouse config ######################################
+mem_fouse_up_press:1e 1f 20 21 22 23 24 25 26 00
+mem_fouse_up_long_press:27
+mem_fouse_up_long_release:28
+
+mem_fouse_down_press:25 24 23 22 21 20 1f 1e 1d 00
+#mem_fouse_down_press:32 31 25 24 23 22 1d 00
+mem_fouse_down_long_press:29
+mem_fouse_down_long_release:2a
+
+mem_shutter_mode_step_android:02 01 1b 1c 1b 1c 00
+
+mem_shutter_mode_step_ios:
+2d 2e 2f 30 1b 1c 1b 1c 00
+################################### fouse config  end ######################################
+
+mem_combine_key0_press:01
+mem_combine_key1_press:02
+mem_combine_key2_press:03
+mem_combine_key3_press:04
+mem_combine_key_release:00
+mem_move_mode_set:00 #00 combine key, 01 single key when another key has already triggered
+mem_move_mode_key_index:ff #move key index,SHUTTER_MOVE_KEY_NUM,SHUTTER_PHOTO_KEY_NUM
+mem_move_mode_trigger_enable:00
+
+mem_shutter_long_key_released_flag:01
+
+################ble kb val list#######################
+mem_shutter_mousekey_value_list:
+#media value
+02 1b 00 00 00 00 00 00 00 00 00 00 00 #1  release
+02 1b 00 01 00 00 00 00 00 00 00 00 00 #2  android Mode Step
+02 1b 00 02 00 00 00 00 00 00 00 00 00 #3  volume up
+02 1b 00 04 00 00 00 00 00 00 00 00 00 #4  volume down
+02 1b 00 08 00 00 00 00 00 00 00 00 00 #5  lock
+02 1b 00 10 00 00 00 00 00 00 00 00 00 #6  ios home
+02 1b 00 20 00 00 00 00 00 00 00 00 00 #7  android home
+02 1b 00 40 00 00 00 00 00 00 00 00 00 #8  zoom in
+02 1b 00 80 00 00 00 00 00 00 00 00 00 #9  zoom out
+#up and down
+0a 23 00 00 f4 07 80 02 04 f4 07 80 02 #a
+0a 23 00 83 f4 07 80 03 04 f4 07 80 03 #b
+0a 23 00 83 f4 07 40 04 04 f4 07 40 04 #c
+0a 23 00 83 f4 07 80 05 04 f4 07 80 05 #d
+0a 23 00 83 f4 07 40 06 04 f4 07 40 06 #e
+0a 23 00 83 f4 07 80 07 04 f4 07 80 07 #f
+0a 23 00 83 f4 07 40 08 04 f4 07 40 08 #10
+0a 23 00 83 f4 07 80 09 04 f4 07 80 09 #11
+0a 23 00 00 f4 07 40 0a 04 f4 07 40 0a #12
+#right and left
+0a 23 00 00 40 00 80 08 04 40 00 40 04 #13
+0a 23 00 83 80 02 80 08 04 80 02 40 04 #14
+0a 23 00 83 40 04 80 08 04 40 05 40 04 #15
+0a 23 00 83 80 06 80 08 04 80 07 40 04 #16
+0a 23 00 83 40 08 80 08 04 40 09 40 04 #17
+0a 23 00 83 80 0a 80 08 04 80 0b 40 04 #18
+0a 23 00 83 40 0c 80 08 04 40 0d 40 04 #19
+0a 23 00 00 80 0d 80 08 04 80 0e 40 04 #1a
+#like
+0a 23 00 83 f0 07 80 07 04 f0 07 80 07 #1b
+0a 23 00 00 f0 07 80 07 04 f0 07 80 07 #1c
+#fouse
+0a 23 00 00 00 06 20 07 04 00 06 00 03 #1d
+0a 23 00 83 00 06 40 07 87 00 06 00 03 #1e
+0a 23 00 83 00 06 60 07 87 00 06 00 03 #1f
+0a 23 00 83 00 06 80 07 87 00 06 00 03 #20
+0a 23 00 83 00 06 90 07 87 00 06 00 03 #21
+0a 23 00 83 00 06 a0 07 87 00 06 00 03 #22
+0a 23 00 83 00 06 b0 07 87 00 06 00 03 #23
+0a 23 00 83 00 06 d0 07 87 00 06 00 03 #24
+0a 23 00 83 00 06 e0 07 87 00 06 00 03 #25
+0a 23 00 00 00 06 e0 07 04 00 06 00 03 #26
+
+#fouse long press
+# 0a 23 00 83 00 06 e0 07 87 00 06 00 03 #27
+# 0a 23 00 00 00 06 e0 07 00 00 06 00 03 #28
+# 0a 23 00 83 00 06 20 07 87 00 06 00 03 #29
+# 0a 23 00 00 00 06 20 07 00 00 06 00 03 #2a
+0a 23 00 83 00 04 50 06 87 00 04 00 02 #27
+0a 23 00 00 00 04 50 06 00 00 04 00 02 #28
+0a 23 00 83 00 04 00 0a 87 00 04 00 02 #29
+0a 23 00 00 00 04 00 0a 00 00 04 00 02 #2a
+
+#android mode step
+0a 23 00 83 80 0d f1 0d 87 80 0c f1 0c #2b
+0a 23 00 00 80 0d f1 0d 04 80 0c f1 0c #2c
+
+#ios mode step
+0a 23 00 83 b0 0e 10 0e 87 80 0e f0 0e #2d   澶ч儴鍒嗚嫻鏋滄墜鏈
+0a 23 00 00 b0 0e 10 0e 04 80 0e f0 0e #2e
+
+0a 23 00 83 a0 0d f0 0e 87 a0 0d a0 0e #2f  IOS26瑙︽懜浣嶇疆 绗竴涓潗鏍囦负promax锛岀浜屼釜鍧愭爣浣嶅皬灞忓箷
+0a 23 00 00 a0 0d f0 0e 04 a0 0d a0 0e #30
+
+
+#fouse - plus
+0a 23 00 83 00 06 10 07 87 00 06 00 03 #31
+0a 23 00 83 00 06 20 07 87 00 06 00 03 #32
+
+
+
+#photo touch
+0a 23 00 83 f0 07 05 0e 04 f0 07 05 0e #33
+0a 23 00 00 f0 07 05 0e 04 f0 07 05 0e #34
+# 0a 23 00 83 f0 07 80 07 04 f0 07 80 07 #33
+# 0a 23 00 00 f0 07 80 07 04 f0 07 80 07 #34
+
+mem_shutter_move_data:
+00 00 00  #defualt
+
+#mem_le_dy_adv_data:
+#02 01 05
+#03 02 12 18
+#03 19 c1 03
+#mem_le_dy_scan_data:
+#0d 09 56 30 2d 53 68 75 74 74 65 72
+
+mem_ble_shutter_dy_interval_min_new:
+06 00
+0a 00
+10 00
+2c 01
+
+mem_ble_shutter_dy_interval_min_ios:
+16 00
+16 00
+10 00
+2c 01
+
+#attribute list: handle 2bytes, uuid 2bytes, length 1bytes, attribute Nbytes
+mem_shutter_le_uuid_sup:
+#Primary service GATT ------
+01 00 02 00 28 02 01 18
+#Service changed
+02 00 02 03 28 01 20
+03 00 02 05 2a 01 00
+#Client Characteristic Configuration
+04 00 02 02 29 02 00 00
+
+#Primary service GAP ------
+05 00 02 00 28 02 00 18
+
+#Device name
+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
+
+#Appearance
+08 00 02 03 28 01 02
+09 00 02 01 2a 02 c1 03
+
+#Peripheral Preferred Connection Parameters
+0a 00 02 03 28 01 02
+0b 00 02 04 2a 08 06 00 06 00 64 00 2c 01 # interval 6ms, latency 100, timeout 300
+
+#Primary service device information ------
+0c 00 02 00 28 02 0a 18
+#PNP id
+0d 00 02 03 28 01 02
+0e 00 02 50 2a 07 01 05 0e 00 0a 02 40
+
+#Primary service hid ------
+0f 00 02 00 28 02 12 18
+
+#Protocol mode
+10 00 02 03 28 01 06
+11 00 02 4e 2a 01 01
+
+
+#Hid report
+12 00 02 03 28 01 10
+13 00 02 4d 2a 07 00 00 00 00 00 00 00
+#Client Characteristic
+14 00 02 02 29 02 00 00
+#Report reference
+15 00 02 08 29 02 01 01 # report id=1, type=1 input
+
+#Hid report id 4
+16 00 02 03 28 01 10
+17 00 02 4d 2a 03 00 00 00
+#Client Characteristic
+18 00 02 02 29 02 00 00
+#Report reference
+19 00 02 08 29 02 04 01 # report id=4, type=1 input
+
+#Hid report id 3
+1a 00 02 03 28 01 10
+1b 00 02 4d 2a 02 00 00
+#Client Characteristic
+1c 00 02 02 29 02 00 00
+#Report reference
+1d 00 02 08 29 02 03 01 # report id=3, type=1 input
+
+#Hid report id 5
+1e 00 02 03 28 01 10
+1f 00 02 4d 2a 03 00 00 00
+#Client Characteristic
+20 00 02 02 29 02 00 00
+#Report reference
+21 00 02 08 29 02 05 01 # report id=5, type=1 input
+
+#Hid report id 6
+22 00 02 03 28 01 10
+23 00 02 4d 2a 0a 00 00 00 00 00 00 00 00 00 00
+#Client Characteristic
+24 00 02 02 29 02 00 00
+#Report reference
+25 00 02 08 29 02 06 01 # report id=6, type=1 input
+
+#Hid report id 2
+26 00 02 03 28 01 12
+27 00 02 4d 2a 02 00 00
+#00 00 00 00 00
+#Client Characteristic
+28 00 02 02 29 02 00 00
+#Report reference
+29 00 02 08 29 02 02 01 # report id=2, type=1 input
+
+#Report map
+2a 00 02 03 28 01 02
+2b 00 02 4b 2a 01 00
+
+#Hid information
+2c 00 02 03 28 01 02
+2d 00 02 4a 2a 04 11 01 00 01
+
+#Hid control point
+2e 00 02 03 28 01 04
+2f 00 02 4c 2a 01 00
+30 00 02 00 28 02 0f 18
+
+00 00
+mem_shutter_le_map_len_android:f3 00
+mem_shutter_le_map_len_ios:f3 00
+mem_shutter_le_hid_map:
+05 0c # Usage Page(Consumer) #legth 30
+09 01 # Usage(Consumer Control)
+a1 01 # Collection(Application)
+85 03 # Report ID(3)
+09 82 #Mode Step 鍓/鍚庢憚鍍忓ご鍒囨崲
+09 e9 # volume up
+09 ea # volume down
+09 30 # lock
+09 40 # home
+0a 23 02  #home
+0a 2d 02 #zoom in
+0a 2e 02 #zoom out
+15 00 # Logical Minimum(0)
+25 01 # Logical Maximum(1)
+75 01 # Report Size(1)
+95 08 # Report Count(6)
+81 02 #Input (Data, Variable, Absolute)
+c0 #end
+
+05 0d	#Usage Page (Digitizer)
+09 04 	# Usage(Touch Screen)
+a1 01 	#Collection (Application)
+85 06	#Report Id (6)
+09 22   #Usage (finger)
+a1 02  	#Collection (Logical)
+09 42	#Usage (Tip Switch)
+15 00	#Logical minimum (0)
+25 01 	#Logical maximum (1)
+75 01	#Report Size (1)
+95 01	#Report Count (1)
+81 02 	#Input (Data,Value,Absolute,Bit Field)
+09 32	#Usage (In Range)
+15 00	#Logical minimum (0)
+25 01 	#Logical maximum (1)
+81 02  	#Input (Data,Value,Absolute,Bit Field)
+09 51   #Usage(Contact Identifier)
+75 05   #Report Size(5)
+95 01   #Report Count(1)
+16 00 00 #Logical Minimum(0)
+26 f0 0f #Logical Minimum(16)
+81 02   #Input (Data,Value,Absolute,Bit Field)
+09 47   #Usage(Confidence)
+75 01   #Report Size(1)
+95 01   #Report Count(1)
+81 02   #Input (Data,Value,Absolute,Bit Field)
+05 01	#Usage Page (Generic Desktop)
+26 ff 0f  #Logical maximum (1'000)
+75 10	#Report Size (16)
+55 0D #Unit Exponent (14)
+65 33 #Unit(51)
+09 30 	#Usage (X)
+35 00   #Physical Minimum (0)
+46 00 10  #Physical maximum (1'205)
+81 02	#Input (Data,Value,Absolute,Bit Field)
+09 31	#Usage (Y)
+46 8a 03  #Physical maximum (906)
+81 02	#Input (Data,Value,Absolute,Bit Field)
+c0		#End Collection
+05 0d	#Usage Page (Digitizer)
+09 05 	# Usage(Touch Screen)
+a1 01 	#Collection (Application)
+09 22   #Usage (finger)
+a1 02  	#Collection (Logical)
+09 42	#Usage (Tip Switch)
+15 00	#Logical minimum (0)
+25 01 	#Logical maximum (1)
+75 01	#Report Size (1)
+95 01	#Report Count (1)
+81 02 	#Input (Data,Value,Absolute,Bit Field)
+09 32	#Usage (In Range)
+15 00	#Logical minimum (0)
+25 01 	#Logical maximum (1)
+81 02  	#Input (Data,Value,Absolute,Bit Field)
+09 51   #Usage(Contact Identifier)
+75 05   #Report Size(5)
+95 01   #Report Count(1)
+16 00 00 #Logical Minimum(0)
+26 f0 0f #Logical Minimum(16)
+81 02   #Input (Data,Value,Absolute,Bit Field)
+09 47   #Usage(Confidence)
+75 01   #Report Size(1)
+95 01   #Report Count(1)
+81 02   #Input (Data,Value,Absolute,Bit Field)
+05 01	#Usage Page (Generic Desktop)
+26 ff 0f  #Logical maximum (1'000)
+75 10	#Report Size (16)
+55 0D #Unit Exponent (14)
+65 33 #Unit(51)
+09 30 	#Usage (X)
+35 00   #Physical Minimum (0)
+46 00 10  #Physical maximum (1'205)
+81 02	#Input (Data,Value,Absolute,Bit Field)
+09 31	#Usage (Y)
+46 8a 03  #Physical maximum (906)
+81 02	#Input (Data,Value,Absolute,Bit Field)
+c0		#End Collection
+c0
+
+05 01        #Usage Page (Generic Desktop Ctrls)
+09 06        #Usage (Keyboard)
+A1 01        #Collection (Application)
+85 05        #Report ID (5)
+05 04
+#05 07        #Usage Page (Kbrd/Keypad)
+19 E0        #Usage Minimum (0xE0)
+29 E7        #Usage Maximum (0xE7)
+15 00        #Logical Minimum (0)
+25 01        #Logical Maximum (1)
+75 01        #Report Size (1)
+95 08        #Report Count (8)
+81 02        #Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+75 08        #Report Size (8)
+95 01        #Report Count (1)
+15 00        #Logical Minimum (0)
+25 F4        #Logical Maximum (-12)
+05 04
+#05 07        #Usage Page (Kbrd/Keypad)
+19 00        #Usage Minimum (0x00)
+29 F4        #Usage Maximum (0xF4)
+81 00        #Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
+C0           #End Collection
+c0
+
+# 05 0c # Usage Page(Consumer)
+# 09 01 # Usage(Consumer Control)
+# a1 01 # Collection(Application)
+# 85 02 # Report ID(2)
+# 75 10 # Report Size (16)
+# 95 01 # Report Count (1)
+# 15 01 # Logical Minimum (1)
+# 26 ff 03 #  Logical Maximum (1023)
+# 19 01 # Usage Minimum (Consumer Control)
+# 2a ff 03 #  Usage Maximum (0x03FF)
+# 81 60 # Input (Data,Array,Abs,No Wrap,Linear,No Preferred Sta te,Null State)
+# c0 # End Collection
+
+
+
+##############BLE ATT LIST END####################
+mem_dy_le_search_service_uuid:
+D0 00 2D 12 1E 4B 0F A4 99 4E CE B5 31 F4 05 79
+
+
+
+mem_system_clk:0c
+mem_lpm_xtalcnt:70 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:3a
+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 30
+
+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
+
+
+#adc config
+mem_adc_config_flag:01
+#01 ADC_CONFIG_HVIN
+#02 ADC_CONFIG_GPIO
+mem_adc_clkdiv:0a
+mem_adc_channel:00
+#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
+
+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: output/test_yc1089s_JM140_jxy_dy_xtal3a_otp_Selfie.dat
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/output/test_yc1089s_JM140_jxy_dy_xtal3a_otp_Selfie.dat	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/output/test_yc1089s_JM140_jxy_dy_xtal3a_otp_Selfie.dat	(working copy)
@@ -0,0 +1,6811 @@
+0b
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+aa
+55
+8a
+11
+c2
+84
+00
+18
+c0
+00
+00
+51
+c0
+01
+01
+1d
+c0
+08
+81
+26
+c0
+0a
+03
+04
+c0
+0a
+81
+b3
+c0
+0c
+01
+c1
+c0
+0c
+81
+80
+c0
+0d
+01
+38
+c0
+12
+83
+26
+c0
+13
+80
+7c
+c0
+51
+80
+c2
+c0
+52
+80
+fa
+c0
+53
+00
+87
+c0
+53
+80
+98
+c0
+55
+00
+ea
+c0
+58
+81
+d3
+c0
+62
+00
+1f
+c0
+62
+81
+c8
+c0
+6d
+02
+ed
+c0
+6d
+84
+09
+c0
+6e
+04
+46
+c0
+6e
+84
+27
+20
+20
+23
+5a
+c0
+12
+00
+55
+c0
+12
+80
+d3
+c0
+13
+00
+d8
+c0
+1c
+83
+20
+c0
+26
+83
+24
+c1
+7f
+80
+00
+20
+20
+23
+5a
+20
+40
+6b
+34
+20
+40
+6b
+41
+20
+40
+6b
+3b
+e8
+40
+80
+11
+1a
+20
+a2
+01
+18
+00
+0e
+00
+79
+3f
+80
+22
+a8
+4c
+00
+00
+20
+20
+80
+49
+6f
+f0
+80
+46
+79
+20
+7e
+06
+79
+20
+7e
+07
+67
+f0
+80
+46
+70
+80
+47
+02
+70
+80
+47
+82
+79
+3f
+fe
+07
+67
+f0
+80
+46
+70
+80
+47
+8a
+20
+00
+00
+0b
+70
+80
+47
+ca
+20
+00
+00
+21
+70
+80
+47
+4a
+20
+00
+00
+2c
+70
+80
+47
+ca
+20
+00
+00
+16
+70
+80
+47
+8a
+20
+00
+00
+21
+70
+80
+47
+82
+20
+00
+00
+01
+70
+80
+47
+92
+20
+00
+00
+0a
+70
+80
+47
+b2
+6f
+f0
+80
+07
+70
+80
+47
+92
+20
+00
+00
+01
+70
+80
+47
+82
+20
+00
+00
+01
+af
+ec
+00
+00
+20
+20
+80
+25
+c5
+11
+00
+49
+79
+20
+00
+22
+20
+20
+00
+26
+6f
+f1
+00
+44
+1f
+e0
+fe
+01
+67
+f1
+00
+44
+18
+e0
+8e
+01
+28
+e0
+1e
+08
+24
+20
+80
+25
+c2
+00
+00
+22
+20
+20
+6b
+38
+24
+35
+a0
+02
+37
+d9
+82
+00
+37
+d9
+82
+00
+20
+20
+20
+02
+20
+40
+25
+c2
+c5
+97
+80
+5b
+78
+3c
+fc
+00
+20
+00
+00
+1e
+20
+40
+25
+c2
+19
+69
+96
+00
+78
+56
+fc
+00
+78
+26
+fc
+00
+78
+30
+fc
+00
+78
+50
+7c
+00
+19
+62
+36
+00
+37
+c1
+84
+00
+20
+37
+00
+64
+1b
+42
+04
+00
+60
+4b
+00
+0f
+24
+2c
+26
+fa
+78
+28
+7c
+00
+6f
+e0
+c1
+67
+d8
+40
+4e
+20
+98
+40
+84
+00
+6f
+e0
+c1
+48
+98
+4f
+b6
+00
+20
+40
+68
+77
+20
+37
+26
+77
+20
+40
+00
+72
+6f
+e0
+81
+68
+c3
+01
+a6
+77
+20
+55
+a4
+77
+20
+20
+26
+77
+68
+4b
+00
+0f
+1b
+42
+7e
+00
+20
+40
+7d
+12
+1f
+e2
+04
+00
+20
+40
+26
+ff
+1b
+42
+56
+00
+1d
+22
+7e
+00
+98
+40
+fe
+00
+1f
+e2
+52
+00
+20
+60
+00
+00
+c5
+84
+a4
+89
+68
+4a
+40
+ad
+df
+e0
+06
+00
+98
+46
+7c
+00
+20
+61
+00
+00
+18
+42
+22
+00
+68
+4b
+00
+0f
+1d
+62
+7e
+00
+20
+40
+7d
+10
+1a
+22
+04
+00
+20
+20
+24
+7d
+18
+e2
+7e
+00
+c0
+00
+e7
+77
+c0
+02
+e7
+65
+c0
+00
+67
+61
+c0
+03
+00
+90
+c0
+03
+80
+93
+c0
+04
+00
+96
+c0
+04
+80
+97
+20
+20
+65
+a2
+70
+4f
+d9
+01
+70
+4f
+da
+01
+20
+60
+00
+00
+70
+4f
+d9
+01
+70
+4f
+da
+02
+20
+60
+00
+00
+20
+60
+00
+00
+20
+60
+00
+00
+6f
+e0
+ce
+c7
+c0
+00
+e5
+cf
+20
+40
+66
+28
+20
+40
+00
+9e
+20
+74
+00
+00
+20
+20
+65
+cf
+d8
+e0
+00
+00
+da
+40
+4a
+c3
+df
+e0
+00
+02
+98
+ef
+fe
+00
+9a
+40
+a4
+00
+ef
+e1
+00
+12
+20
+7a
+00
+00
+68
+49
+06
+f1
+98
+42
+fc
+00
+20
+22
+80
+aa
+18
+e0
+8e
+01
+20
+20
+00
+9f
+67
+e1
+4a
+cf
+20
+40
+43
+23
+da
+60
+4a
+d1
+df
+e0
+00
+0a
+98
+ef
+fe
+00
+9a
+60
+a6
+00
+20
+20
+66
+33
+6f
+e1
+4a
+cf
+20
+7a
+00
+00
+68
+49
+06
+f1
+18
+46
+7c
+00
+20
+22
+80
+b7
+20
+20
+00
+b6
+70
+4e
+c0
+01
+20
+40
+43
+25
+da
+60
+4b
+0d
+58
+00
+00
+00
+67
+e1
+4a
+cf
+70
+48
+9e
+32
+20
+40
+66
+33
+6f
+e0
+c5
+23
+1f
+ef
+f2
+0a
+d8
+a0
+45
+fd
+20
+20
+7c
+a1
+6f
+e0
+cf
+9f
+24
+3a
+00
+cc
+70
+4c
+00
+01
+20
+40
+43
+23
+20
+40
+00
+cf
+20
+40
+65
+61
+20
+21
+65
+00
+18
+e2
+7e
+00
+67
+e0
+ce
+c5
+20
+60
+00
+00
+18
+e2
+7e
+00
+c1
+80
+80
+00
+20
+20
+00
+c4
+df
+e0
+00
+0a
+98
+ef
+fe
+00
+da
+60
+45
+fd
+20
+20
+65
+2f
+20
+40
+28
+1c
+6a
+20
+80
+4d
+1a
+20
+a3
+fc
+24
+21
+26
+fa
+20
+20
+26
+8e
+09
+80
+00
+18
+1f
+ef
+7e
+00
+1f
+f1
+7e
+00
+e7
+e1
+80
+05
+78
+28
+7c
+00
+20
+40
+27
+0d
+20
+23
+26
+f6
+c5
+99
+26
+af
+6f
+e0
+80
+4d
+20
+3a
+26
+af
+1f
+e0
+ff
+fc
+67
+e0
+80
+4d
+20
+40
+72
+cb
+6f
+f0
+81
+08
+c3
+03
+a6
+fa
+18
+00
+70
+0c
+65
+e2
+01
+54
+20
+20
+26
+af
+1a
+22
+0c
+00
+ef
+e1
+80
+06
+67
+e1
+c3
+97
+c0
+03
+e7
+04
+c0
+00
+80
+f0
+20
+20
+66
+db
+18
+c0
+8d
+fe
+ef
+e0
+80
+06
+c0
+03
+00
+f4
+20
+60
+00
+00
+20
+20
+00
+f5
+70
+4e
+aa
+01
+70
+49
+e4
+00
+70
+4e
+b2
+00
+70
+49
+e5
+0a
+20
+60
+00
+00
+20
+40
+65
+4b
+df
+e0
+00
+0a
+98
+ef
+fe
+00
+da
+60
+45
+fd
+9a
+60
+a6
+00
+e8
+42
+00
+13
+18
+46
+7c
+00
+20
+62
+80
+00
+1c
+42
+7e
+00
+98
+46
+04
+00
+24
+41
+78
+06
+1a
+60
+8c
+09
+ef
+e0
+80
+06
+24
+3a
+01
+09
+20
+20
+65
+47
+70
+4e
+c0
+01
+20
+40
+65
+6b
+20
+40
+67
+69
+18
+e2
+7e
+00
+c0
+03
+01
+12
+c0
+03
+81
+16
+da
+60
+4a
+ae
+df
+e0
+00
+03
+20
+20
+65
+5a
+20
+40
+01
+1a
+20
+40
+03
+8f
+da
+60
+4f
+c4
+20
+20
+63
+71
+20
+40
+01
+1a
+20
+40
+03
+b2
+da
+60
+4f
+d2
+20
+20
+63
+71
+70
+4f
+d9
+00
+70
+4f
+da
+00
+20
+60
+00
+00
+20
+40
+75
+52
+20
+40
+74
+48
+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
+01
+1d
+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
+37
+d9
+82
+00
+70
+81
+3c
+58
+37
+d9
+82
+00
+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
+88
+40
+70
+8a
+13
+cd
+70
+8a
+06
+10
+70
+8a
+84
+4a
+70
+8a
+85
+40
+70
+8a
+16
+fe
+20
+40
+01
+88
+6f
+e0
+c4
+36
+20
+5a
+70
+d7
+24
+55
+81
+34
+37
+d9
+82
+00
+70
+81
+3b
+5f
+6f
+e0
+c0
+99
+c0
+08
+01
+75
+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
+01
+67
+70
+80
+43
+00
+70
+80
+42
+05
+58
+55
+74
+74
+67
+f1
+89
+68
+70
+89
+60
+6e
+20
+40
+02
+bf
+20
+40
+02
+ea
+20
+40
+01
+61
+70
+41
+48
+0c
+20
+40
+6f
+4e
+20
+20
+02
+ec
+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
+01
+6d
+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
+01
+53
+6f
+e0
+c1
+41
+c0
+05
+01
+83
+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
+35
+81
+af
+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
+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
+01
+99
+20
+40
+68
+6f
+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
+20
+40
+6b
+3a
+20
+40
+6b
+75
+20
+20
+6b
+38
+6f
+e0
+ce
+e3
+1f
+e2
+72
+00
+67
+e0
+c5
+23
+58
+00
+45
+23
+67
+e1
+44
+2c
+d8
+c0
+4e
+e4
+d8
+a0
+45
+26
+20
+20
+7c
+da
+20
+40
+73
+96
+20
+75
+80
+00
+20
+40
+42
+a3
+20
+40
+03
+c5
+70
+40
+94
+00
+20
+40
+01
+cb
+20
+40
+64
+59
+58
+00
+00
+01
+67
+e1
+44
+f6
+70
+40
+a6
+0a
+58
+00
+02
+4d
+67
+e1
+43
+db
+58
+00
+02
+2a
+67
+e1
+43
+dd
+58
+00
+02
+3f
+67
+e1
+43
+df
+58
+00
+62
+d3
+67
+e1
+43
+d3
+58
+00
+01
+f7
+67
+e1
+43
+d5
+58
+00
+63
+29
+67
+e1
+43
+d7
+58
+00
+02
+0c
+67
+e1
+43
+e3
+58
+00
+65
+05
+67
+e1
+45
+24
+58
+00
+63
+40
+67
+e1
+45
+1f
+58
+00
+63
+9a
+67
+e1
+45
+21
+20
+40
+62
+ca
+6f
+e1
+4f
+87
+67
+e1
+43
+32
+6f
+e4
+45
+0a
+67
+e4
+45
+02
+20
+20
+62
+bd
+20
+40
+6f
+35
+70
+44
+ec
+ff
+20
+40
+01
+fc
+20
+40
+70
+1b
+20
+20
+73
+9a
+6f
+e0
+c6
+ce
+20
+7a
+00
+00
+6f
+e0
+ce
+e3
+1f
+e2
+72
+00
+da
+20
+45
+26
+ef
+e0
+80
+11
+68
+48
+c6
+cf
+98
+46
+7c
+00
+20
+22
+82
+07
+1f
+e2
+04
+00
+20
+40
+02
+0a
+1a
+20
+a2
+01
+c2
+00
+02
+01
+20
+60
+00
+00
+79
+20
+04
+07
+20
+20
+6e
+dd
+20
+40
+03
+cd
+20
+40
+02
+12
+20
+40
+67
+6c
+20
+40
+67
+5a
+20
+40
+02
+23
+20
+20
+64
+d9
+da
+60
+4f
+ee
+da
+40
+02
+15
+20
+20
+42
+e0
+6f
+e0
+cf
+ef
+70
+4f
+ef
+00
+c0
+00
+82
+1a
+c0
+01
+02
+1c
+20
+60
+00
+00
+da
+60
+4a
+3f
+20
+20
+63
+71
+20
+40
+02
+1e
+20
+20
+63
+71
+da
+60
+4f
+dc
+20
+40
+67
+30
+20
+7a
+00
+00
+da
+60
+4f
+e5
+20
+60
+00
+00
+da
+60
+45
+18
+da
+40
+02
+26
+20
+20
+42
+e7
+70
+45
+1c
+02
+20
+40
+43
+25
+20
+40
+63
+4e
+20
+20
+63
+9e
+1a
+62
+7e
+00
+c0
+20
+02
+36
+c0
+18
+82
+34
+c0
+0a
+82
+31
+c0
+0a
+02
+30
+20
+20
+64
+e0
+20
+20
+64
+f4
+6f
+e1
+45
+12
+67
+e1
+45
+18
+20
+20
+64
+ef
+70
+4e
+c2
+01
+20
+60
+00
+00
+6f
+e1
+43
+3c
+c1
+00
+00
+00
+6f
+e4
+45
+0a
+20
+7a
+00
+00
+20
+40
+67
+30
+24
+3a
+02
+4a
+6f
+e4
+4f
+02
+67
+e4
+42
+d3
+20
+20
+2e
+93
+6f
+e1
+43
+98
+c0
+12
+02
+42
+20
+60
+00
+00
+20
+40
+78
+ad
+70
+44
+f1
+01
+20
+40
+67
+30
+20
+40
+43
+2b
+24
+3a
+02
+4a
+6f
+e4
+4f
+02
+67
+e4
+42
+d3
+20
+20
+2e
+93
+6f
+e4
+4f
+b0
+67
+e4
+42
+d3
+20
+20
+2e
+93
+20
+40
+02
+58
+d8
+e0
+00
+09
+20
+40
+7c
+ef
+24
+7a
+00
+00
+58
+00
+00
+20
+d8
+e0
+00
+09
+20
+40
+7c
+e1
+78
+54
+7c
+00
+20
+40
+70
+1b
+20
+40
+02
+72
+20
+20
+03
+4f
+6f
+e1
+44
+e9
+c2
+84
+82
+5d
+d8
+a0
+45
+da
+df
+20
+00
+23
+20
+20
+7c
+a1
+20
+40
+2a
+28
+24
+7a
+00
+00
+20
+40
+78
+fa
+20
+7a
+00
+00
+68
+4a
+49
+e6
+1c
+42
+7e
+00
+98
+46
+04
+00
+20
+62
+80
+00
+24
+21
+02
+69
+6f
+e0
+c9
+e5
+98
+46
+7c
+00
+20
+61
+00
+00
+1c
+42
+7e
+00
+67
+e2
+49
+e6
+20
+40
+63
+85
+24
+74
+00
+00
+1f
+e0
+ff
+ff
+1f
+ef
+fe
+0d
+d8
+40
+4c
+02
+98
+40
+8c
+00
+20
+20
+63
+cb
+6f
+e1
+48
+ac
+67
+e1
+44
+2e
+20
+40
+65
+be
+6f
+e1
+44
+2e
+67
+e1
+48
+ac
+d8
+e0
+00
+00
+6f
+e0
+c5
+23
+1f
+e2
+72
+00
+da
+60
+45
+fd
+1f
+22
+7e
+00
+67
+e1
+06
+78
+1a
+62
+7e
+00
+67
+e1
+06
+8c
+18
+e2
+7e
+00
+67
+e1
+06
+7a
+20
+40
+02
+8f
+6f
+e1
+06
+8c
+1f
+e2
+26
+00
+6f
+e1
+06
+7a
+1f
+e2
+0e
+00
+20
+40
+65
+8b
+6f
+e1
+06
+7a
+1f
+e0
+8e
+01
+6f
+e1
+06
+8c
+1f
+e0
+a6
+0a
+6f
+e1
+06
+78
+1f
+e2
+72
+00
+c2
+00
+02
+7b
+20
+60
+00
+00
+1a
+60
+a4
+05
+ef
+e2
+00
+12
+20
+7a
+00
+00
+1f
+e2
+04
+00
+1c
+42
+7e
+00
+98
+46
+04
+00
+24
+41
+78
+06
+58
+00
+03
+e8
+98
+46
+7c
+00
+20
+20
+02
+99
+1a
+60
+8c
+04
+ef
+e0
+80
+06
+20
+20
+02
+9c
+20
+40
+65
+6b
+20
+40
+65
+61
+20
+21
+65
+00
+20
+40
+02
+b7
+18
+e2
+7e
+00
+c0
+03
+02
+a6
+c0
+03
+82
+a8
+c0
+04
+02
+aa
+c0
+00
+82
+b1
+20
+20
+65
+58
+da
+60
+4f
+b8
+20
+20
+63
+71
+da
+60
+4f
+c6
+20
+20
+63
+71
+20
+40
+02
+ac
+20
+20
+63
+71
+da
+60
+4f
+dc
+20
+40
+67
+30
+20
+7a
+00
+00
+da
+60
+4f
+e5
+20
+60
+00
+00
+70
+4f
+ee
+05
+6f
+e0
+cf
+ef
+c1
+01
+00
+00
+1f
+e0
+fe
+01
+67
+e0
+cf
+ef
+20
+60
+00
+00
+da
+60
+4a
+30
+70
+49
+e5
+5a
+20
+40
+67
+30
+20
+7a
+00
+00
+da
+60
+4b
+57
+18
+e2
+7e
+00
+70
+49
+e5
+14
+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
+02
+dc
+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
+02
+dc
+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
+02
+d1
+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
+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
+02
+fd
+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
+82
+fe
+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
+03
+1d
+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
+03
+1a
+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
+03
+16
+58
+00
+83
+12
+67
+f1
+09
+07
+20
+20
+03
+0b
+6f
+e0
+c3
+34
+c1
+00
+00
+00
+c0
+01
+b0
+4a
+20
+20
+28
+e1
+79
+3f
+80
+30
+20
+20
+2a
+f6
+6f
+e1
+43
+e9
+20
+40
+7d
+79
+6f
+e2
+40
+ad
+98
+40
+fe
+00
+67
+e2
+40
+ad
+20
+40
+03
+37
+6f
+e0
+c0
+cb
+79
+20
+7e
+04
+20
+40
+23
+e1
+24
+55
+a3
+cb
+37
+d9
+82
+00
+1b
+22
+7e
+00
+67
+e3
+40
+b1
+6f
+e1
+c0
+c6
+6a
+20
+c0
+c9
+df
+20
+00
+03
+20
+20
+24
+2e
+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
+83
+4a
+e7
+e0
+80
+13
+37
+d9
+82
+00
+1a
+20
+a2
+01
+1a
+60
+a6
+01
+c2
+00
+03
+44
+1a
+42
+04
+00
+20
+60
+00
+00
+da
+20
+00
+00
+68
+4a
+4f
+d5
+1c
+42
+24
+00
+1a
+42
+7e
+00
+98
+46
+7c
+00
+24
+41
+78
+06
+1a
+42
+7e
+00
+18
+40
+84
+40
+98
+46
+7c
+00
+24
+21
+03
+61
+1a
+20
+a2
+01
+1a
+21
+7e
+0f
+24
+3a
+03
+55
+da
+20
+00
+00
+20
+40
+03
+66
+1c
+42
+7e
+00
+67
+e2
+4f
+d5
+20
+60
+00
+00
+1a
+22
+7e
+00
+20
+7a
+00
+00
+18
+40
+85
+c0
+79
+3f
+84
+1c
+60
+4a
+4f
+d5
+67
+e0
+cf
+d4
+6f
+e0
+cf
+d4
+20
+7a
+00
+00
+1f
+e0
+ff
+ff
+67
+e0
+cf
+d4
+20
+40
+03
+6d
+20
+20
+03
+67
+da
+60
+4f
+d9
+da
+40
+03
+70
+20
+20
+42
+e0
+6f
+e0
+cf
+da
+c0
+00
+83
+74
+c0
+01
+03
+97
+20
+60
+00
+00
+20
+40
+67
+30
+24
+3a
+03
+83
+70
+49
+e5
+08
+70
+4f
+d9
+01
+6f
+e0
+cf
+db
+1f
+e0
+fe
+02
+67
+e0
+cf
+db
+1f
+e6
+7c
+5a
+20
+42
+83
+8f
+da
+60
+4f
+c2
+20
+40
+03
+ba
+ef
+e1
+00
+3f
+1f
+e0
+fe
+0a
+e7
+e1
+00
+11
+20
+20
+63
+71
+20
+40
+03
+c2
+6f
+e0
+cf
+db
+1f
+e0
+fe
+01
+67
+e0
+cf
+db
+1f
+e6
+7c
+5a
+20
+42
+83
+8f
+da
+60
+4f
+c2
+20
+40
+03
+ba
+ef
+e1
+00
+3f
+1f
+e0
+fe
+12
+e7
+e1
+00
+11
+20
+20
+63
+71
+70
+4f
+db
+00
+da
+60
+4f
+c4
+20
+40
+63
+71
+da
+60
+4f
+c2
+20
+40
+03
+ba
+58
+00
+06
+50
+e7
+e1
+00
+11
+20
+60
+00
+00
+20
+40
+67
+30
+24
+3a
+03
+a6
+70
+49
+e5
+08
+70
+4f
+d9
+01
+6f
+e0
+cf
+db
+1f
+e0
+fe
+02
+67
+e0
+cf
+db
+1f
+e6
+7c
+5a
+20
+42
+83
+b2
+da
+60
+4f
+d0
+20
+40
+03
+ba
+ef
+e1
+00
+3f
+1f
+e0
+ff
+f6
+e7
+e1
+00
+11
+20
+20
+63
+71
+20
+40
+03
+c2
+6f
+e0
+cf
+db
+1f
+e0
+fe
+01
+67
+e0
+cf
+db
+1f
+e6
+7c
+5a
+20
+42
+83
+b2
+da
+60
+4f
+d0
+20
+40
+03
+ba
+ef
+e1
+00
+3f
+1f
+e0
+ff
+ee
+e7
+e1
+00
+11
+20
+20
+63
+71
+70
+4f
+db
+00
+da
+60
+4f
+d2
+20
+40
+63
+71
+da
+60
+4f
+d0
+20
+40
+03
+ba
+58
+00
+0a
+00
+e7
+e1
+00
+11
+20
+60
+00
+00
+d8
+40
+4c
+02
+ef
+e0
+80
+13
+1f
+e0
+ff
+ff
+1f
+ef
+fe
+0d
+98
+40
+fe
+00
+1f
+e0
+fe
+06
+1f
+e2
+22
+00
+20
+60
+00
+00
+70
+49
+e5
+01
+70
+4f
+d9
+03
+20
+60
+00
+00
+70
+4f
+f8
+01
+20
+60
+00
+00
+6f
+e0
+cf
+f9
+1f
+e0
+fe
+01
+67
+e0
+cf
+f9
+68
+48
+cf
+fd
+98
+46
+7c
+00
+20
+60
+00
+00
+6f
+e0
+cf
+f8
+20
+7a
+00
+00
+20
+40
+03
+c7
+24
+61
+00
+00
+70
+4f
+f9
+00
+70
+44
+07
+01
+20
+40
+6f
+f3
+20
+40
+6f
+eb
+20
+40
+04
+46
+20
+40
+04
+27
+67
+e1
+4f
+f6
+da
+20
+4f
+f0
+20
+40
+03
+df
+6f
+e0
+c4
+0c
+c2
+80
+83
+ff
+c3
+00
+04
+03
+70
+4f
+fb
+01
+20
+20
+04
+01
+ef
+e4
+00
+11
+67
+e4
+06
+70
+20
+40
+6f
+f3
+20
+40
+6f
+eb
+6f
+e1
+06
+76
+68
+49
+06
+72
+98
+46
+7c
+00
+24
+41
+6f
+ef
+68
+49
+06
+74
+98
+46
+7c
+00
+24
+41
+6f
+e7
+6f
+e1
+06
+76
+68
+49
+06
+70
+98
+46
+7c
+00
+20
+21
+03
+fb
+68
+49
+06
+72
+98
+46
+7e
+00
+24
+21
+03
+fd
+20
+3a
+03
+fd
+1f
+ef
+a2
+64
+6f
+e1
+06
+70
+68
+49
+06
+72
+98
+46
+04
+00
+1a
+22
+7e
+00
+98
+46
+fc
+00
+20
+40
+7d
+5f
+67
+e0
+cf
+fc
+20
+60
+00
+00
+70
+4f
+fc
+64
+20
+60
+00
+00
+70
+4f
+fc
+00
+20
+60
+00
+00
+20
+40
+43
+25
+20
+20
+43
+27
+70
+4f
+fa
+01
+20
+60
+00
+00
+70
+4f
+fa
+00
+6f
+e0
+cf
+fb
+20
+7a
+00
+00
+20
+40
+43
+25
+70
+4f
+fb
+00
+20
+60
+00
+00
+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
+41
+4e
+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
+84
+2b
+c0
+01
+04
+32
+20
+60
+00
+00
+58
+00
+03
+e8
+67
+e1
+44
+05
+68
+49
+41
+52
+6f
+e1
+41
+54
+da
+60
+0e
+10
+20
+40
+6f
+c0
+20
+20
+04
+38
+58
+00
+03
+e8
+67
+e1
+44
+05
+68
+49
+41
+4e
+6f
+e1
+41
+50
+da
+60
+03
+e8
+20
+40
+6f
+c0
+68
+49
+41
+56
+98
+4f
+fe
+00
+68
+49
+41
+58
+98
+46
+fc
+00
+20
+20
+7d
+5f
+20
+40
+04
+1a
+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
+04
+3d
+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
+04
+3d
+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
+04
+5f
+68
+59
+01
+64
+60
+49
+41
+58
+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
+84
+5f
+20
+60
+00
+00
+06
+c6
+aa
+55
+40
+00
+00
+40
+05
+00
+32
+07
+a0
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+e8
+04
+02
+00
+30
+00
+00
+3c
+00
+00
+00
+00
+00
+00
+00
+00
+70
+00
+00
+02
+00
+20
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+aa
+55
+01
+00
+cb
+43
+06
+aa
+55
+01
+00
+ec
+44
+ff
+aa
+55
+06
+00
+db
+42
+0d
+21
+21
+98
+07
+2a
+aa
+55
+07
+00
+6b
+42
+06
+53
+65
+6c
+66
+69
+65
+aa
+55
+08
+00
+41
+41
+06
+00
+0a
+0e
+00
+0a
+dd
+00
+aa
+55
+04
+00
+70
+4f
+b0
+1f
+70
+1a
+aa
+55
+02
+00
+87
+4f
+2b
+00
+aa
+55
+08
+00
+74
+4f
+ef
+03
+a0
+06
+07
+00
+06
+00
+aa
+55
+01
+00
+d1
+46
+01
+aa
+55
+01
+00
+d0
+46
+01
+aa
+55
+16
+00
+5a
+4f
+00
+00
+93
+46
+00
+96
+00
+01
+03
+93
+46
+00
+96
+00
+20
+01
+20
+03
+20
+01
+20
+03
+aa
+55
+02
+00
+ce
+46
+00
+ff
+aa
+55
+08
+00
+0a
+4f
+70
+17
+70
+17
+70
+17
+70
+17
+aa
+55
+01
+00
+fd
+4f
+05
+aa
+55
+06
+00
+f0
+4f
+e4
+0c
+00
+00
+bf
+09
+aa
+55
+0b
+00
+e3
+4e
+0a
+ff
+12
+ff
+01
+ff
+ff
+06
+0f
+ff
+ff
+aa
+55
+0a
+00
+c3
+4a
+60
+00
+41
+00
+50
+00
+44
+00
+00
+00
+aa
+55
+02
+00
+c3
+4e
+40
+00
+aa
+55
+01
+00
+b6
+4e
+00
+aa
+55
+01
+00
+cf
+4e
+00
+aa
+55
+01
+00
+d9
+4e
+00
+aa
+55
+01
+00
+ca
+4e
+00
+aa
+55
+08
+00
+57
+4b
+19
+18
+17
+16
+15
+14
+13
+00
+aa
+55
+01
+00
+c0
+4b
+00
+aa
+55
+03
+00
+66
+4b
+1b
+1c
+00
+aa
+55
+06
+00
+97
+4f
+1b
+1c
+1c
+1b
+1c
+00
+aa
+55
+09
+00
+75
+4b
+11
+10
+0f
+0e
+0d
+0c
+0b
+0a
+00
+aa
+55
+03
+00
+84
+4b
+03
+01
+00
+aa
+55
+03
+00
+f4
+4b
+04
+01
+00
+aa
+55
+09
+00
+93
+4b
+0b
+0c
+0d
+0e
+0f
+10
+11
+12
+00
+aa
+55
+08
+00
+a2
+4b
+14
+15
+16
+17
+18
+19
+1a
+00
+aa
+55
+01
+00
+cf
+4b
+00
+aa
+55
+01
+00
+b1
+4b
+00
+aa
+55
+01
+00
+8a
+4a
+00
+aa
+55
+08
+00
+30
+4a
+19
+18
+17
+16
+15
+14
+13
+00
+aa
+55
+01
+00
+99
+4a
+00
+aa
+55
+03
+00
+3f
+4a
+1b
+1c
+00
+aa
+55
+06
+00
+8f
+4f
+1b
+1c
+1c
+1b
+1c
+00
+aa
+55
+09
+00
+4e
+4a
+11
+10
+0f
+0e
+0d
+0c
+0b
+0a
+00
+aa
+55
+03
+00
+9f
+4a
+04
+01
+00
+aa
+55
+05
+00
+5d
+4a
+03
+01
+33
+34
+00
+aa
+55
+05
+00
+ea
+4b
+04
+01
+33
+34
+00
+aa
+55
+09
+00
+6c
+4a
+0b
+0c
+0d
+0e
+0f
+10
+11
+12
+00
+aa
+55
+03
+00
+a5
+4a
+03
+01
+00
+aa
+55
+08
+00
+7b
+4a
+14
+15
+16
+17
+18
+19
+1a
+00
+aa
+55
+01
+00
+a8
+4a
+00
+aa
+55
+0b
+00
+b8
+4f
+1e
+1f
+20
+21
+22
+23
+24
+25
+26
+00
+27
+aa
+55
+01
+00
+c4
+4f
+28
+aa
+55
+0b
+00
+c6
+4f
+25
+24
+23
+22
+21
+20
+1f
+1e
+1d
+00
+29
+aa
+55
+01
+00
+d2
+4f
+2a
+aa
+55
+07
+00
+dc
+4f
+02
+01
+1b
+1c
+1b
+1c
+00
+aa
+55
+09
+00
+e5
+4f
+2d
+2e
+2f
+30
+1b
+1c
+1b
+1c
+00
+aa
+55
+01
+00
+d1
+4a
+01
+aa
+55
+01
+00
+db
+4a
+02
+aa
+55
+01
+00
+e5
+4a
+03
+aa
+55
+01
+00
+ef
+4a
+04
+aa
+55
+01
+00
+0d
+4b
+00
+aa
+55
+03
+00
+c7
+4e
+00
+ff
+00
+aa
+55
+01
+00
+c0
+4e
+01
+aa
+55
+a4
+02
+02
+4c
+02
+1b
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+02
+1b
+00
+01
+00
+00
+00
+00
+00
+00
+00
+00
+00
+02
+1b
+00
+02
+00
+00
+00
+00
+00
+00
+00
+00
+00
+02
+1b
+00
+04
+00
+00
+00
+00
+00
+00
+00
+00
+00
+02
+1b
+00
+08
+00
+00
+00
+00
+00
+00
+00
+00
+00
+02
+1b
+00
+10
+00
+00
+00
+00
+00
+00
+00
+00
+00
+02
+1b
+00
+20
+00
+00
+00
+00
+00
+00
+00
+00
+00
+02
+1b
+00
+40
+00
+00
+00
+00
+00
+00
+00
+00
+00
+02
+1b
+00
+80
+00
+00
+00
+00
+00
+00
+00
+00
+00
+0a
+23
+00
+00
+f4
+07
+80
+02
+04
+f4
+07
+80
+02
+0a
+23
+00
+83
+f4
+07
+80
+03
+04
+f4
+07
+80
+03
+0a
+23
+00
+83
+f4
+07
+40
+04
+04
+f4
+07
+40
+04
+0a
+23
+00
+83
+f4
+07
+80
+05
+04
+f4
+07
+80
+05
+0a
+23
+00
+83
+f4
+07
+40
+06
+04
+f4
+07
+40
+06
+0a
+23
+00
+83
+f4
+07
+80
+07
+04
+f4
+07
+80
+07
+0a
+23
+00
+83
+f4
+07
+40
+08
+04
+f4
+07
+40
+08
+0a
+23
+00
+83
+f4
+07
+80
+09
+04
+f4
+07
+80
+09
+0a
+23
+00
+00
+f4
+07
+40
+0a
+04
+f4
+07
+40
+0a
+0a
+23
+00
+00
+40
+00
+80
+08
+04
+40
+00
+40
+04
+0a
+23
+00
+83
+80
+02
+80
+08
+04
+80
+02
+40
+04
+0a
+23
+00
+83
+40
+04
+80
+08
+04
+40
+05
+40
+04
+0a
+23
+00
+83
+80
+06
+80
+08
+04
+80
+07
+40
+04
+0a
+23
+00
+83
+40
+08
+80
+08
+04
+40
+09
+40
+04
+0a
+23
+00
+83
+80
+0a
+80
+08
+04
+80
+0b
+40
+04
+0a
+23
+00
+83
+40
+0c
+80
+08
+04
+40
+0d
+40
+04
+0a
+23
+00
+00
+80
+0d
+80
+08
+04
+80
+0e
+40
+04
+0a
+23
+00
+83
+f0
+07
+80
+07
+04
+f0
+07
+80
+07
+0a
+23
+00
+00
+f0
+07
+80
+07
+04
+f0
+07
+80
+07
+0a
+23
+00
+00
+00
+06
+20
+07
+04
+00
+06
+00
+03
+0a
+23
+00
+83
+00
+06
+40
+07
+87
+00
+06
+00
+03
+0a
+23
+00
+83
+00
+06
+60
+07
+87
+00
+06
+00
+03
+0a
+23
+00
+83
+00
+06
+80
+07
+87
+00
+06
+00
+03
+0a
+23
+00
+83
+00
+06
+90
+07
+87
+00
+06
+00
+03
+0a
+23
+00
+83
+00
+06
+a0
+07
+87
+00
+06
+00
+03
+0a
+23
+00
+83
+00
+06
+b0
+07
+87
+00
+06
+00
+03
+0a
+23
+00
+83
+00
+06
+d0
+07
+87
+00
+06
+00
+03
+0a
+23
+00
+83
+00
+06
+e0
+07
+87
+00
+06
+00
+03
+0a
+23
+00
+00
+00
+06
+e0
+07
+04
+00
+06
+00
+03
+0a
+23
+00
+83
+00
+04
+50
+06
+87
+00
+04
+00
+02
+0a
+23
+00
+00
+00
+04
+50
+06
+00
+00
+04
+00
+02
+0a
+23
+00
+83
+00
+04
+00
+0a
+87
+00
+04
+00
+02
+0a
+23
+00
+00
+00
+04
+00
+0a
+00
+00
+04
+00
+02
+0a
+23
+00
+83
+80
+0d
+f1
+0d
+87
+80
+0c
+f1
+0c
+0a
+23
+00
+00
+80
+0d
+f1
+0d
+04
+80
+0c
+f1
+0c
+0a
+23
+00
+83
+b0
+0e
+10
+0e
+87
+80
+0e
+f0
+0e
+0a
+23
+00
+00
+b0
+0e
+10
+0e
+04
+80
+0e
+f0
+0e
+0a
+23
+00
+83
+a0
+0d
+f0
+0e
+87
+a0
+0d
+a0
+0e
+0a
+23
+00
+00
+a0
+0d
+f0
+0e
+04
+a0
+0d
+a0
+0e
+0a
+23
+00
+83
+00
+06
+10
+07
+87
+00
+06
+00
+03
+0a
+23
+00
+83
+00
+06
+20
+07
+87
+00
+06
+00
+03
+0a
+23
+00
+83
+f0
+07
+05
+0e
+04
+f0
+07
+05
+0e
+0a
+23
+00
+00
+f0
+07
+05
+0e
+04
+f0
+07
+05
+0e
+aa
+55
+03
+00
+17
+4b
+00
+00
+00
+aa
+55
+08
+00
+02
+4f
+06
+00
+0a
+00
+10
+00
+2c
+01
+aa
+55
+08
+00
+b0
+4f
+16
+00
+16
+00
+10
+00
+2c
+01
+aa
+55
+9c
+01
+d2
+46
+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
+01
+05
+0e
+00
+0a
+02
+40
+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
+10
+13
+00
+02
+4d
+2a
+07
+00
+00
+00
+00
+00
+00
+00
+14
+00
+02
+02
+29
+02
+00
+00
+15
+00
+02
+08
+29
+02
+01
+01
+16
+00
+02
+03
+28
+01
+10
+17
+00
+02
+4d
+2a
+03
+00
+00
+00
+18
+00
+02
+02
+29
+02
+00
+00
+19
+00
+02
+08
+29
+02
+04
+01
+1a
+00
+02
+03
+28
+01
+10
+1b
+00
+02
+4d
+2a
+02
+00
+00
+1c
+00
+02
+02
+29
+02
+00
+00
+1d
+00
+02
+08
+29
+02
+03
+01
+1e
+00
+02
+03
+28
+01
+10
+1f
+00
+02
+4d
+2a
+03
+00
+00
+00
+20
+00
+02
+02
+29
+02
+00
+00
+21
+00
+02
+08
+29
+02
+05
+01
+22
+00
+02
+03
+28
+01
+10
+23
+00
+02
+4d
+2a
+0a
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+24
+00
+02
+02
+29
+02
+00
+00
+25
+00
+02
+08
+29
+02
+06
+01
+26
+00
+02
+03
+28
+01
+12
+27
+00
+02
+4d
+2a
+02
+00
+00
+28
+00
+02
+02
+29
+02
+00
+00
+29
+00
+02
+08
+29
+02
+02
+01
+2a
+00
+02
+03
+28
+01
+02
+2b
+00
+02
+4b
+2a
+01
+00
+2c
+00
+02
+03
+28
+01
+02
+2d
+00
+02
+4a
+2a
+04
+11
+01
+00
+01
+2e
+00
+02
+03
+28
+01
+04
+2f
+00
+02
+4c
+2a
+01
+00
+30
+00
+02
+00
+28
+02
+0f
+18
+00
+00
+aa
+55
+04
+00
+d0
+49
+f3
+00
+f3
+00
+aa
+55
+f3
+00
+ae
+48
+05
+0c
+09
+01
+a1
+01
+85
+03
+09
+82
+09
+e9
+09
+ea
+09
+30
+09
+40
+0a
+23
+02
+0a
+2d
+02
+0a
+2e
+02
+15
+00
+25
+01
+75
+01
+95
+08
+81
+02
+c0
+05
+0d
+09
+04
+a1
+01
+85
+06
+09
+22
+a1
+02
+09
+42
+15
+00
+25
+01
+75
+01
+95
+01
+81
+02
+09
+32
+15
+00
+25
+01
+81
+02
+09
+51
+75
+05
+95
+01
+16
+00
+00
+26
+f0
+0f
+81
+02
+09
+47
+75
+01
+95
+01
+81
+02
+05
+01
+26
+ff
+0f
+75
+10
+55
+0d
+65
+33
+09
+30
+35
+00
+46
+00
+10
+81
+02
+09
+31
+46
+8a
+03
+81
+02
+c0
+05
+0d
+09
+05
+a1
+01
+09
+22
+a1
+02
+09
+42
+15
+00
+25
+01
+75
+01
+95
+01
+81
+02
+09
+32
+15
+00
+25
+01
+81
+02
+09
+51
+75
+05
+95
+01
+16
+00
+00
+26
+f0
+0f
+81
+02
+09
+47
+75
+01
+95
+01
+81
+02
+05
+01
+26
+ff
+0f
+75
+10
+55
+0d
+65
+33
+09
+30
+35
+00
+46
+00
+10
+81
+02
+09
+31
+46
+8a
+03
+81
+02
+c0
+c0
+05
+01
+09
+06
+a1
+01
+85
+05
+05
+04
+19
+e0
+29
+e7
+15
+00
+25
+01
+75
+01
+95
+08
+81
+02
+75
+08
+95
+01
+15
+00
+25
+f4
+05
+04
+19
+00
+29
+f4
+81
+00
+c0
+c0
+aa
+55
+10
+00
+d4
+49
+d0
+00
+2d
+12
+1e
+4b
+0f
+a4
+99
+4e
+ce
+b5
+31
+f4
+05
+79
+aa
+55
+01
+00
+48
+41
+0c
+aa
+55
+06
+00
+c3
+40
+70
+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
+3a
+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
+30
+aa
+55
+05
+00
+43
+41
+ff
+04
+00
+00
+08
+aa
+55
+01
+00
+07
+44
+01
+aa
+55
+01
+00
+09
+44
+0a
+aa
+55
+01
+00
+08
+44
+00
+aa
+55
+01
+00
+11
+44
+00
+aa
+55
+04
+00
+0d
+44
+00
+07
+ff
+07
+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
+7a
+98
+b4
+70
Index: program/app.prog
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/app.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/app_adpcm.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/app_car.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/app_car_remote.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/app_dongle.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/app_flippen.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/app_kb.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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
+
+	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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/app_module.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/app_mouse.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/app_shutter.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/app_shutter_dy.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/ble_protocol_stack/le.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/ble_protocol_stack/le.prog	(working copy)
@@ -0,0 +1,1868 @@
+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
+	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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/ble_protocol_stack/le_advertising.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/ble_protocol_stack/le_l2cap_att.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/ble_protocol_stack/le_l2cap_att_wechat.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/ble_protocol_stack/le_l2cap_signalling.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/ble_protocol_stack/le_l2cap_smp.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/ble_protocol_stack/le_ll.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/bt.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/bt.prog	(working copy)
@@ -0,0 +1,1769 @@
+//define YC1121SB
+
+//define RAM_VERSION
+//define CLK24M
+define SECURE_CONNECTION
+//define COMPILE_KEYSCAN
+define NEC
+
+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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/ccit-false.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/debug.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/g24_protocol_stack/24g.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/g24_protocol_stack/24g_pair.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/g24_protocol_stack/24g_receiver.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/g24_protocol_stack/24g_reconn.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/g24_protocol_stack/24g_rssi.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/g24_protocol_stack/24g_transmitter.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/g24_protocol_stack/24g_txpower_ctrl.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/hci_main.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/l2cap.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/mesh_protocol_stack/mesh_access_layer.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/mesh_protocol_stack/mesh_ali_vendor_message.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/mesh_protocol_stack/mesh_bearer_layer.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/mesh_protocol_stack/mesh_ble_core_advertising.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/mesh_protocol_stack/mesh_chip_peripherals.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/mesh_protocol_stack/mesh_control_ble_advertising.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/mesh_protocol_stack/mesh_encrypt_function.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/mesh_protocol_stack/mesh_fast_pairing.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/mesh_protocol_stack/mesh_health_message.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/mesh_protocol_stack/mesh_init_function.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/mesh_protocol_stack/mesh_lower_transport_layer.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/mesh_protocol_stack/mesh_model_layer.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/mesh_protocol_stack/mesh_more_element_check.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/mesh_protocol_stack/mesh_network_layer.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/mesh_protocol_stack/mesh_proxy.prog	(added)
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/mesh_protocol_stack/mesh_proxy.prog	(revision 0)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/mesh_protocol_stack/mesh_proxy.prog	(revision 0)
Index: program/mesh_protocol_stack/mesh_proxy_layer.prog
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/mesh_protocol_stack/mesh_proxy_layer.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/mesh_protocol_stack/mesh_sha.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/mesh_protocol_stack/mesh_upper_transport_layer.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/patch.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/patch.prog	(working copy)
@@ -0,0 +1,1623 @@
+
+
+define ADC_1121SB
+ifdef ADC_1121SB
+//define ADC_1121SB_1V8_MODE
+endif
+//define AUTO_TEST
+
+	bbit1 8,pf_patch_ext
+	beq patch00_0,p_soft_reset
+	beq patch00_2,p_main_loop
+	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 patch04_7,p_lpm_adjust_clk
+	beq patch14_3,p_shutter_dy_key_press
+	beq patch14_5,p_shutter_dy_shutter_key_release
+	beq patch14_6,p_shutter_dy_keyscan_key_check_long_press
+	beq patch14_7,p_shutter_dy_keyscan_key_process_next
+	beq patch15_2,p_shutter_dy_le_parse_att
+	beq patch16_1,p_shutter_dy_init
+	beq patch18_4,p_otp_write
+	beq patch18_5,p_otp_read_data
+	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
+	branch assert
+
+pf_patch_ext:
+	beq patch24_4,p_le_receive_rxon
+	beq patch24_5,p_le_rx_dec
+	beq patch24_6,p_le_rx_nopayload
+	beq patch27_1,p_le_parse
+	beq patch29_5,p_le_init_adv
+	rtneq patch3f_7
+	branch assert
+
+/* regb = otp address, rega pointers data, loopcnt is count */
+p_otp_write:
+//	bpatch patch18_4,mem_patch18
+	call otp_enable_chgpump65
+	call otp_set_addr
+	call otp_reset
+p_otp_program:
+	ifetcht 1,rega
+	increase 1,rega
+	force 0,queue
+p_otp_program_bit:
+	set0 mark_otp_write,mark
+p_otp_program_bit2:
+	qisolate0 temp
+	branch p_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 p_otp_program_bit,true	/* program error */
+	bmark1 mark_otp_write,p_otp_skip_0
+	set1 mark_otp_write,mark
+	branch p_otp_program_bit2
+
+p_otp_skip_0:
+	fetch 2,core_otp_addr
+	increase 1,pdata
+	store 2,core_otp_addr
+	increase 1,queue
+	compare 8,queue,0xf
+	nbranch p_otp_program_bit,true
+	loop p_otp_program
+	branch otp_disable_chgpump
+
+p_soft_reset:
+	nbranch soft_reset+1,wake
+	until null,lpo_edge
+	until null,lpo_edge
+	branch soft_reset+1
+
+p_le_receive_rxon:
+//	bpatchx patch24_4,mem_patch24
+	call le_prep
+	bmark0 mark_ble_lr,p_le_receive_nolr
+	pulse dewhiten_code_calc
+	nop 30
+	call le_prep
+	lshift3 timeup,timeup
+p_le_receive_nolr:
+	disable match
+	enable decode_fec0
+	enable is_rx
+	disable is_tx
+	copy timeup,stop_watch
+	correlate null,timeout
+	branch p_le_receive_on_attempt,attempt
+	copy clke,temp
+	storet 6,mem_sync_clke
+p_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 p_calc_clke_all_modem
+	fetch 1,mem_le_state
+	bbit0 lestate_got_first_packet,le_receive_skip
+	call lpm_adjust_clk,wake
+	branch le_receive_skip
+
+p_calc_clke_all_modem:
+	fetcht  6,mem_sync_clke
+	copy clke,pdata
+	call clk_diff
+	copy pdata,temp
+
+	call calc_clke_all_modem
+	copy clke,rege
+	copy clke_rt,pdata
+	iadd temp,pdata
+//	add pdata,8,pdata
+	copy pdata,clke_rt
+	rtn
+
+p_lpm_adjust_clk:
+	//bpatch patch04_7,mem_patch04
+	bmark0 mark_context,lpm_clear_counter
+	fetcht 4,mem_sleep_counter_all
+	arg 0x600,pdata
+	isub temp,null
+	rtn positive				// interval too small
+	copy temp,rega
+	fetcht 6,mem_sync_clke
+	deposit rege
+	call clk_diff_rt
+//	sub pdata,13,null
+//	rtn positive
+	copy rega,temp
+	branch lpm_adjust_clk+6
+
+p_shutter_dy_keyscan_key_check_long_press:
+	copy queue,pdata
+	beq SHUTTER_LIKE_KEY_NUM,shutter_dy_link_key_long_press
+	beq SHUTTER_LEFT_KEY_NUM,shutter_dy_loop_send_volume_dec_page
+	beq SHUTTER_RIGHT_KEY_NUM,shutter_dy_loop_send_volume_inc_page
+	beq SHUTTER_FUN_KEY_NUM,p_shutter_key_fun_long_press
+	beq SHUTTER_FUN1_KEY_NUM,p_shutter_key_fun1_long_press
+	beq SHUTTER_FUN2_KEY_NUM,p_shutter_key_fun2_long_press
+	beq SHUTTER_FUN3_KEY_NUM,p_shutter_key_fun3_long_press
+	branch shutter_dy_key_long_press_set_key_normal
+
+p_shutter_key_fun_long_press:
+	jam 1,mem_shutter_dy_fouse_time
+	jam FOUSEUP,mem_shutter_fouse_select
+	rtn
+p_shutter_key_fun1_long_press:
+	jam 1,mem_shutter_dy_fouse_time
+	jam FOUSEDOWN,mem_shutter_fouse_select
+	rtn
+p_shutter_key_fun2_long_press:
+	rtn
+
+p_shutter_key_fun3_long_press:
+	rtn
+
+
+p_shutter_dy_keyscan_key_process_next:
+	fetch 1,mem_move_mode_set
+	beq MOVE_SINGLE_KEY,shutter_dy_skip_check_combine_key
+	call shutter_dy_check_combine_key_release
+	call p_shutter_dy_check_combine_key
+	rtn user
+	branch shutter_dy_skip_check_combine_key
+
+p_shutter_dy_check_combine_key:
+	arg 0,queue
+p_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 p_shutter_dy_check_combine_key_parse,zero
+	increase 1,queue
+	branch p_shutter_dy_check_combine_key_loop
+
+p_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
+	branch shutter_dy_combine_key_enableuser
+
+p_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 p_shutter_dy_check_combine_key_release_all,zero
+	branch p_shutter_dy_check_combine_key_release+5
+
+p_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
+	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_nv_data,contw
+	branch clear_mem
+
+p_shutter_dy_key_press:
+	fetch 1,mem_shutter_link_loop_flag
+	nbranch p_shutter_dy_key_value_filter,blank
+p_shutter_dy_key_press_next:
+	jam 1,mem_shutter_key_pressed
+	call app_led_on
+	call p_shutter_dy_key_press_clk
+	call shutter_dy_jude_queue_size
+	branch shutter_dy_over_clear,positive
+	copy queue,pdata
+	store 1,mem_last_press_key_value
+	//beq SHUTTER_FUN2_KEY_NUM,p_shutter_fun2_key_press
+	rtn
+
+p_shutter_dy_key_value_filter:
+	copy queue,pdata
+	rtnne SHUTTER_LIKE_KEY_NUM
+	branch p_shutter_dy_key_press_next
+
+p_shutter_dy_key_press_clk:
+	arg SHUTTER_KEY_CONF_SATE_BYTES,pdata
+	imul32 queue,pdata
+	arg mem_shutter_nv_data,regc
+	branch shutter_dy_key_press_clk+3
+
+p_le_rx_dec:
+	call le_check_retransmit
+	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_shutter_dy_le_parse_att:
+	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,p_shutter_dy_le_parse_error_rsp
+	branch shutter_dy_le_parse_att+6
+
+p_shutter_dy_le_parse_error_rsp:
+	increase -2,contr
+	ifetch 1,contr
+	beq ATTOP_FIND_BY_TYPE_VALUE_REQUEST,p_shutter_dy_not_iphone_read_conf
+	rtn
+
+p_shutter_dy_not_iphone_read_conf:
+	branch p_shutter_dy_remote_not_iphone
+
+p_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
+
+p_shutter_dy_shutter_key_release:
+	call shutter_dy_key_release_led
+p_shutter_dy_shutter_key_release_time:
+	arg SHUTTER_KEY_CONF_SATE_BYTES,pdata
+	imul32 queue,pdata
+	arg mem_shutter_nv_data,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 p_shutter_dy_push_queue_long_release, blank
+	branch shutter_dy_shutter_key_release_time+13
+
+p_shutter_dy_push_queue_long_release:
+	jam 1,mem_shutter_long_key_released_flag
+	call shutter_clear_dy_key_state
+	call shutter_dy_clear_volume_timer
+	copy queue,pdata
+	beq SHUTTER_FUN_KEY_NUM,p_fouse_up_long_release
+	beq SHUTTER_FUN1_KEY_NUM,p_fouse_down_long_release
+	arg mem_key0_long_release,regc
+	arg MAX_QUEUE_NUM_LONG_RELEASE,pdata
+	branch shutter_dy_push_queue_press_or_release
+
+p_fouse_up_long_release:
+	call p_shutter_fouse_release_clear
+	call p_shutter_dy_fouseup_init
+	arg mem_fouse_up_long_release,regc
+	branch push_buffer_in_queue
+
+p_fouse_down_long_release:
+	call p_shutter_fouse_release_clear
+	call p_shutter_dy_fousedown_init
+	arg mem_fouse_down_long_release,regc
+	branch push_buffer_in_queue
+
+p_shutter_fouse_release_clear:
+	jam 0,mem_shutter_dy_fouse_time
+	jam 0,mem_shutter_fouse_select
+	rtn
+
+p_main_loop:
+	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
+	branch p_main_loop
+
+
+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_set_ck2rfp11:
+	until null,lpo_edge
+	jam 0x58,0x813c
+	until null,lpo_edge
+	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 0x40,core_rx_cfg0
+	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,blank
+	ncall p_set_ck2rfp11,wake
+	until null,lpo_edge
+	jam 0x5f,0x813b
+	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
+	call 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_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_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
+	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:
+//	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 0xfe,0x8a16
+	branch rf_rx_enable+14
+
+p_txon:
+//	bpatch patch03_0,mem_patch03
+	setarg 0x0aaa7e
+	store 3,0x8a0f
+	nop 60
+	jam 0x00,0x8a25
+	jam 0x0d,0x8a26
+	jam 0xf6,0x8a16
+	branch txon+7
+
+p_otp_read_data:
+	call enable_otp_read
+	call otp_read_data+1
+	branch otp_disable_chgpump
+
+p_shutter_dy_key_conf:
+	fetch 1,mem_shutter_key_num_conf
+	copy pdata,loopcnt
+	store 1,mem_shutter_key_num
+	setarg mem_shutter_key_num
+	store 2,mem_keyscan_ptr
+	arg mem_shutter_dy_key_conf,contr
+	arg mem_shutter_key_conf0,contw
+	branch memcpy
+
+p_shutter_dy_init:
+	call enable_authrom
+	rtn wake
+	call app_param_init
+ifdef ADC_1121SB
+	call p_shutter_adc_config_init
+endif
+	jam 0,mem_lpm_mode
+	call p_shutter_dy_key_conf
+	call shutter_dy_adv_conf
+	setarg 0x0001
+	store 2,mem_ble_shutter_reconn_timeout
+	jam 0x0a,mem_lpm_overhead
+
+	setarg p_shutter_dy_process_idle
+	store 2,mem_cb_idle_process
+
+	setarg p_shutter_dy_process_bb_event
+	store 2,mem_cb_bb_event_process
+
+	setarg p_ble_shutter_receive_data
+	store 2,mem_cb_att_write
+
+	setarg shutter_le_scale_lpm_lock
+	store 2,mem_cb_check_wakelock
+
+	setarg p_shutter_le_before_hibernate
+	store 2,mem_cb_before_hibernate
+
+	setarg shutter_process_lpm_before
+	store 2,mem_cb_before_lpm
+
+	setarg p_shutter_dy_le_bb_event_timer
+	store 2,mem_cb_event_timer
+
+	setarg shutter_dy_key_change
+	store 2,mem_cb_shutter_keycan
+
+	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
+
+	call shutter_common_init+8
+
+	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
+	branch shutter_power_switch
+
+
+// p_shutter_fun2_key_press:
+// 	call p_shutter_mode_step_press_ptr
+// 	branch push_buffer_in_queue
+
+// p_shutter_mode_step_press_ptr:
+// 	arg mem_shutter_mode_step_android,regc
+// 	call shutter_dy_check_iphone
+// 	rtn blank
+// 	arg mem_shutter_mode_step_ios_press,regc
+// 	rtn
+
+p_shutter_le_before_hibernate:
+	call gpio_set_before_lpm
+	jam UI_BUTTON_GPIO_DISABLE,mem_ui_button_gpio
+	call p_set_key_gpio_before_hiernate
+	call keyscan_process_lpm_before
+	branch disable_authrom
+
+p_set_key_gpio_before_hiernate:
+	fetch 1,mem_shutter_hard_soft_switch_case_temp
+	rtn blank
+	fetch 1,mem_shutter_key_num_conf
+	copy pdata,loopcnt
+	arg mem_shutter_key_conf0,rega
+p_set_key_gpio_loop:
+	ifetch 1,rega
+	fetcht 1,mem_shutter_soft_switch_button_gpio_temp
+	isub temp,null
+	branch p_set_key_gpio_loop_end,zero
+	copy pdata,temp
+	call p_shutter_gpio_config_input_pd
+p_set_key_gpio_loop_end:
+	increase 1,rega
+	loop p_set_key_gpio_loop
+	rtn
+
+p_shutter_gpio_config_input_pd:
+	set1 gpio_active_bit,temp
+	branch gpio_config_input
+
+p_shutter_dy_le_bb_event_timer:
+ifdef ADC_1121SB
+	call p_shutter_adc_read_timer
+endif
+	call p_shutter_like_key_press_event_timer
+	call shutter_dy_link_key_loop_timer
+	call shutter_dy_long_key_volume_timer
+	call p_shutter_check_sleep_timer
+	branch shutter_dy_check_power_off_timer
+
+p_shutter_like_key_press_event_timer:
+	arg mem_shutter_like_key_press_time,regc
+	arg p_shutter_like_key_press_event_timeout,regb
+	branch timer_single_step
+
+p_shutter_like_key_press_event_timeout:
+	fetch 1,mem_shutter_photo_click_count
+	jam 0,mem_shutter_photo_click_count
+	beq 1,p_shutter_like_key_press
+	beq 2,p_shutter_like_key_press_event_double
+	rtn
+
+p_shutter_like_key_press:
+	arg mem_key1_release_new,regc
+	branch push_buffer_in_queue
+
+p_shutter_like_key_press_event_double:
+	call p_shutter_like_key_press_event_double_ptr
+	branch push_buffer_in_queue
+
+p_shutter_like_key_press_event_double_ptr:
+	arg mem_shutter_mode_step_android,regc
+	call shutter_dy_check_iphone
+	rtn blank
+	arg mem_shutter_mode_step_ios,regc
+	rtn
+
+p_shutter_check_sleep_timer:
+	arg mem_shutter_sleep_timer,regc
+	arg p_shutter_sleep_timeout,regb
+	branch timer_single_step_2B
+p_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
+
+p_shutter_dy_process_bb_event:
+	copy regc,pdata
+	beq BT_EVT_LE_PARSE_CONN_PAPA_UPDATE_RSP,p_ble_shutter_process_parse_connect_parameter_update_response
+	beq BT_EVT_LE_PAIRING_SUCCESS,p_ble_shutter_pairing_success
+	beq BT_EVT_LE_DISCONNECTED,p_ble_shutter_dy_process_baseband_disconnect
+	beq BT_EVT_LE_CONNECTED,p_ble_shutter_dy_process_baseband_connect
+	branch shutter_dy_process_bb_event+1
+
+p_ble_shutter_dy_process_baseband_connect:
+	branch ble_shutter_dy_process_baseband_connect
+
+p_ble_shutter_dy_process_baseband_disconnect:
+	fetch 2,mem_ble_shutter_discovery_timeout
+	store 2,mem_shutter_sleep_timer
+	branch ble_shutter_dy_process_baseband_disconnect
+
+p_ble_shutter_pairing_success:
+	jam 1,mem_shutter_pairing_success
+	rtn
+
+p_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
+	call shutter_dy_check_iphone
+	nbranch p_parameter_updata_response_ios,blank
+	fetch 8,mem_ble_shutter_dy_interval_min_new
+	store 8,mem_le_interval_min
+	branch le_l2cap_tx_update_req
+
+p_ble_shutter_receive_data:
+	fetch 2,mem_le_att_handle
+	beq GATT_KEYBOARD_WRITE_HANDLE_NEW,p_ble_shutter_process_reconnect_complete
+	rtn
+
+p_ble_shutter_process_reconnect_complete:
+	call queue_init
+	jam 1,mem_ble_shutter_enable_notify
+	call shutter_dy_check_iphone
+	call app_lpm_mult_enable
+	nbranch p_parameter_updata_response_ios,blank
+	fetch 8,mem_ble_shutter_dy_interval_min_new
+	store 8,mem_le_interval_min
+	branch le_l2cap_tx_update_req
+
+p_parameter_updata_response_ios:
+	fetch 8,mem_ble_shutter_dy_interval_min_ios
+	store 8,mem_le_interval_min
+	branch le_l2cap_tx_update_req
+
+p_shutter_dy_process_idle:
+	call p_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
+	call p_shutter_dy_keyscan_key_process
+	branch p_key_evt_ui_timer_check
+
+p_shutter_dy_shutter_send_data_to_master:
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_CONNECTED,p_shutter_dy_pop_queue_to_ble_data
+	arg mem_queue_curr_num,contw
+	arg 35,loopcnt
+	branch clear_mem
+
+p_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 p_shutter_dy_pop_queue_to_ble_data2, positive
+	fetch 1,mem_send_data_delay
+	isub temp,null
+	rtn positive
+p_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,13,pdata
+	arg mem_shutter_mousekey_value_list,temp
+	iadd temp,contr
+	branch le_send_notify_from_list
+
+p_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_nv_data,regc
+p_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 p_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 p_shutter_dy_keyscan_key_check_release_loop
+	rtn
+
+p_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 p_shutter_dy_push_queue_release
+p_shutter_dy_push_queue_release:
+	add regc,4,contr
+	ifetch 1,contr
+	branch p_shutter_dy_push_queue_release1
+
+p_shutter_dy_push_queue_release1:
+	call shutter_clear_dy_key_state
+p_shutter_dy_push_queue_release1_next:
+	call shutter_dy_jude_queue_size
+	branch shutter_dy_over_clear,positive
+	call p_shutter_dy_le_get_release_ptr
+	copy queue,pdata
+	beq SHUTTER_FUN_KEY_NUM,p_shutter_fun_key_release   //fouse up
+	beq SHUTTER_FUN1_KEY_NUM,p_shutter_fun1_key_release // fouse down
+	beq SHUTTER_FUN2_KEY_NUM,p_shutter_fun2_key_release // step mode
+	beq SHUTTER_LIKE_KEY_NUM,p_shutter_fun3_key_release
+	branch shutter_dy_push_queue_release1_next+4
+
+p_shutter_fun_key_release:
+	arg mem_fouse_up_press,regc
+	branch push_buffer_in_queue
+
+p_shutter_fun1_key_release:
+	arg mem_fouse_down_press,regc
+	branch push_buffer_in_queue
+
+p_shutter_fun2_key_release:
+	call p_shutter_mode_step_ptr
+	branch push_buffer_in_queue
+
+p_shutter_mode_step_ptr:
+	arg mem_shutter_mode_step_android,regc
+	call shutter_dy_check_iphone
+	rtn blank
+	arg mem_shutter_mode_step_ios,regc
+	//arg mem_key6_release_new_i,regc
+	rtn
+
+p_shutter_fun3_key_release:
+	jam 5,mem_shutter_like_key_press_time
+	fetch 1,mem_shutter_photo_click_count
+	rtneq 2
+	increase 1,pdata
+	store 1,mem_shutter_photo_click_count
+	rtn
+
+p_shutter_dy_le_get_release_ptr:
+p_shutter_dy_le_get_release_ptr_set:
+	arg mem_key0_release_new,regc
+	jam 90,mem_send_data_delay
+	call shutter_dy_check_iphone
+	rtn blank
+	arg mem_key0_release_new_i,regc
+	copy queue,pdata
+	jam 20,mem_send_data_delay
+	rtn
+
+
+p_rx_dcoc:
+//	bpatch patch01_7,mem_patch01
+	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_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_le_parse:
+	fetch 1,mem_le_packet_llid
+	rtneq LLID_RESERVED
+	beq LLID_LE_LL,le_parse_ll
+	branch le_parse_l2cap
+
+p_le_init_adv:
+	set0 mark_ble_crc_fail,mark
+	branch le_init_adv+1
+
+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
+	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
+	copy clkn,pdata
+	store 6,mem_sleep_clkn
+	// storer clkn,6,mem_sleep_clkn
+	fetch 3,mem_lpm_isogate
+	fetchr rega,1,mem_lpm_ldo_sel
+	arg 3,loopcnt
+	branch lpm_sleep_loop
+
+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
+
+////////////////////50ms//////////////////////
+p_key_evt_ui_timer_check:
+	arg 0,rega
+	fetcht 4,mem_shutter_key_evt_btclk
+	copy clkn_bt,regb
+	copy regb,pdata
+	isub temp,null
+	ncall ui_timer_timeout,positive
+p_key_evt_ui_timer_check_loop:
+	copy regb,pdata
+	increase 64,temp    //320btclk = 100ms
+	isub temp,null
+	nbranch p_key_evt_ui_timer_check_end,positive
+	increase 1,rega   //increase 1 every 100ms count
+	and rega,0x0f,pdata
+	nbranch p_key_evt_ui_timer_check_loop,blank
+	arg 0,rega  //reset timer if it's longer than 1.5s between 2 checks
+	call p_key_evt_ui_timer_check_send_evt
+p_key_evt_ui_timer_init:
+	copy clkn_bt,pdata
+	store 4,mem_shutter_key_evt_btclk
+	rtn
+p_key_evt_ui_timer_check_end:
+	copy rega,pdata
+	rtn blank
+	increase -64,temp    //160btclk = 50ms
+	set0 28,temp
+	storet 4,mem_shutter_key_evt_btclk
+p_key_evt_ui_timer_check_send_evt:
+	store 1,mem_shutter_key_evt_timer_count
+p_key_evt_50ms_loop:
+	fetch 1,mem_shutter_key_evt_timer_count
+	rtn blank
+	increase -1,pdata
+	store 1,mem_shutter_key_evt_timer_count
+	call p_shutter_long_fouse_timer
+	branch p_key_evt_50ms_loop
+
+p_shutter_long_fouse_timer:
+	arg mem_shutter_dy_fouse_time,regc
+	arg p_shutter_dy_fouse_timeout,regb
+	branch timer_single_step
+
+p_shutter_dy_fouse_timeout:
+	fetch 1,mem_shutter_fouse_select
+	beq FOUSEUP,p_shutter_dy_fouseup_event
+	beq FOUSEDOWN,p_shutter_dy_fousedown_event
+	rtn
+
+p_shutter_dy_fouseup_event:
+	call shutter_dy_check_iphone
+	nbranch p_shutter_dy_fouseup_event_ios,blank
+	jam 8,mem_send_data_delay
+	jam 1,mem_shutter_dy_fouse_time
+	fetch 1,mem_shutter_dy_fouse_count
+	increase 2,pdata
+	store 1,mem_shutter_dy_fouse_count
+	sub pdata,90,null
+	call p_shutter_dy_fouseup_init,zero
+	arg mem_fouse_up_long_press,regc
+	call p_shutter_dy_find_value_list_position
+	ifetch 2,pdata
+	add pdata,10,pdata
+	istore 2,rega
+	branch push_buffer_in_queue
+
+p_shutter_dy_fouseup_event_ios:
+	call p_shutter_dy_fouse_time_ios
+	fetch 1,mem_shutter_dy_fouse_count
+	increase 1,pdata
+	store 1,mem_shutter_dy_fouse_count
+	sub pdata,90,null
+	call p_shutter_dy_fouseup_init,zero
+	arg mem_fouse_up_long_press,regc
+	call p_shutter_dy_find_value_list_position
+	ifetch 2,pdata
+	add pdata,18,pdata
+	istore 2,rega
+	branch push_buffer_in_queue
+
+p_shutter_dy_fouseup_init:
+	jam 0,mem_shutter_dy_fouse_count
+	arg mem_fouse_up_long_release,regc
+	call push_buffer_in_queue
+	arg mem_fouse_up_long_press,regc
+	call p_shutter_dy_find_value_list_position
+	setarg 0x0650
+	istore 2,rega
+	rtn
+
+p_shutter_dy_fousedown_event:
+	call shutter_dy_check_iphone
+	nbranch p_shutter_dy_fousedown_event_ios,blank
+	jam 8,mem_send_data_delay
+	jam 1,mem_shutter_dy_fouse_time
+	fetch 1,mem_shutter_dy_fouse_count
+	increase 2,pdata
+	store 1,mem_shutter_dy_fouse_count
+	sub pdata,90,null
+	call p_shutter_dy_fousedown_init,zero
+	arg mem_fouse_down_long_press,regc
+	call p_shutter_dy_find_value_list_position
+	ifetch 2,pdata
+	increase -10,pdata
+	istore 2,rega
+	branch push_buffer_in_queue
+
+p_shutter_dy_fousedown_event_ios:
+	call p_shutter_dy_fouse_time_ios
+	fetch 1,mem_shutter_dy_fouse_count
+	increase 1,pdata
+	store 1,mem_shutter_dy_fouse_count
+	sub pdata,90,null
+	call p_shutter_dy_fousedown_init,zero
+	arg mem_fouse_down_long_press,regc
+	call p_shutter_dy_find_value_list_position
+	ifetch 2,pdata
+	increase -18,pdata
+	istore 2,rega
+	branch push_buffer_in_queue
+
+
+p_shutter_dy_fousedown_init:
+	jam 0,mem_shutter_dy_fouse_count
+	arg mem_fouse_down_long_release,regc
+	call push_buffer_in_queue
+	arg mem_fouse_down_long_press,regc
+	call p_shutter_dy_find_value_list_position
+	setarg 0x0a00
+	istore 2,rega
+	rtn
+
+p_shutter_dy_find_value_list_position:
+	arg mem_shutter_mousekey_value_list,temp
+	ifetch 1,regc
+	increase -1,pdata
+	mul32 pdata,13,pdata
+	iadd temp,pdata
+	increase 6,pdata
+	copy pdata,rega
+	rtn
+p_shutter_dy_fouse_time_ios:
+	jam 1,mem_send_data_delay
+	jam 3,mem_shutter_dy_fouse_time
+	rtn
+
+/////////////////////////////////////////////// adc ////////////////////////////////////////
+ifdef ADC_1121SB
+p_shutter_adc_config_init:
+	jam 1,mem_shutter_start_adc_flag
+	rtn
+
+p_shutter_adc_read_interval:
+	fetch 1,mem_shutter_adc_read_timer
+	increase 1,pdata
+	store 1,mem_shutter_adc_read_timer
+	fetcht 1,mem_shutter_adc_read_time_init	//1s read adc
+	isub temp,null
+	rtn
+
+p_shutter_adc_read_timer:
+p_shutter_adc_read_start:
+	fetch 1,mem_shutter_start_adc_flag
+	rtn blank
+	call p_shutter_adc_read_interval
+p_shutter_adc_read_start_next:
+	nrtn positive
+	jam 0,mem_shutter_adc_read_timer
+	jam ADC_CONFIG_HVIN,mem_adc_config_flag
+	call adc_clear_no_power_flag
+	call adc_clear_low_power_flag
+	call p_enable_adc
+	call p_vdd_calculate_by_mode
+	store 2,mem_shutter_vdd_now_vol
+p_shutter_adc_data_process:
+	arg mem_shutter_vdd_calculate_set,rega
+	call p_shutter_bat_percent_lowpower_out
+	fetch 1,mem_adc_power_flag
+	bbit1 1,p_shutter_low_voltage_power_down
+	bbit0 0,p_shutter_adc_no_low_voltage
+	jam 1,mem_shutter_adc_last_low_voltage_flag
+	branch p_shutter_adc_low_voltage
+
+p_shutter_bat_percent_lowpower_out:
+	ifetch 8,rega
+	store 8,mem_pdatatemp
+p_shutter_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
+p_shutter_adc_bat_level_set:
+	fetch 2,mem_pdatatemp+6		//now voltage
+	fetcht 2,mem_pdatatemp		//full voltage
+	isub temp,null
+	branch p_shutter_adc_bat_level_100_percent,positive		// now >= full
+	fetcht 2,mem_pdatatemp+2	        //shutdown voltage
+	isub temp,pdata
+	nbranch p_shutter_adc_bat_level_0_percent,positive		// now < shutdown
+	branch p_shutter_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_shutter_battery_level_percentage
+	rtn
+
+p_shutter_adc_bat_level_100_percent:
+	jam 100,mem_shutter_battery_level_percentage
+	rtn
+p_shutter_adc_bat_level_0_percent:
+	jam 0,mem_shutter_battery_level_percentage
+	rtn
+
+p_shutter_low_voltage_power_down:	//shutterdown
+	call app_led_off
+	branch app_enter_hibernate
+
+p_shutter_adc_low_voltage:
+	jam 1,mem_shutter_enable_low_voltage_flag
+	rtn
+
+p_shutter_adc_no_low_voltage:
+	jam 0,mem_shutter_enable_low_voltage_flag
+	fetch 1,mem_shutter_adc_last_low_voltage_flag
+	rtn blank
+	call app_led_off
+	jam 0,mem_shutter_adc_last_low_voltage_flag
+	rtn
+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
+
+/*
+p_adc_set_gpio:
+	fetch 1,mem_adc_channel
+	call p_adc_channel_set_gpio
+	copy temp,pdata
+	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
+*/
+
+endif
Index: program/peripherals.prog
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/peripherals.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/security.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/sim.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/simple_pairing.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/ui.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/usb.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/program/utility.prog	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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: sched/1305.dat
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/1305.dat	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/1305.dat	(working copy)
@@ -0,0 +1,57 @@
+
+
+mem_system_clk:0c
+mem_lpm_xtalcnt:70 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:3a
+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 30
+
+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
+
+
+#adc config
+mem_adc_config_flag:01
+#01 ADC_CONFIG_HVIN
+#02 ADC_CONFIG_GPIO
+mem_adc_clkdiv:0a
+mem_adc_channel:00
+#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
+
+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/DM_module.dat
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/DM_module.dat	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/DM_module.dat	(working copy)
@@ -0,0 +1,242 @@
+
+
+mem_device_option:0a
+
+mem_module_connect_state_gpio:FF
+mem_module_mcu_wake_pin:FF
+##############ADC CONFIG##############
+mem_module_read_vdd_count:01
+mem_module_read_vdd_flag:01
+#####################################
+
+##############NVRAM CONFIG##############
+mem_nv_data_ptr:mem_module_nv_data
+mem_nv_data_number:05
+#####################################
+
+
+#####################################
+
+##############UART CONFIG##############
+mem_module_uarta_baud_rate:D0 00
+mem_module_uart_rx_buffer:00 4d
+mem_module_uart_rx_buffer_end:7f 4e
+mem_module_uart_tx_buffer:80 4e
+mem_module_uart_tx_buffer_end:ef 4f
+#####################################
+
+
+
+##############BLUETOOTH CONFIG##############
+###commom###
+mem_soft_version_num:00 11
+mem_module_state:03
+mem_module_bluetooth_stauts_by_command:07
+
+mem_module_flag:00 00
+#bit0 MODULE_FLAG_UART_FLOW_CONTROL
+#bit1 MODULE_FLAG_BLE_SEND_MTU23
+#bit2 MODULE_FLAG_BLE_DATA_ENCRYPT
+
+mem_ui_button_gpio:ff
+mem_lpm_mode:01
+mem_lpm_interval:00 01
+mem_lpm_overhead:08
+mem_lpm_mult_timeout:02
+
+mem_module_wake_up_gpio:04
+
+
+
+###ble###
+mem_le_pairing_handle:2a 00
+mem_le_configuration:08
+
+mem_le_adv_channel_map:07
+mem_le_pairing_mode:01
+
+mem_module_ble_data_uart_max_length:f0
+
+mem_le_scan_enable:00
+mem_le_scan_type:01
+mem_le_scan_interval:00 02
+mem_le_scan_window:00 01
+#mem_le_conn_peer_addr:2a 31 00 33 02 3b
+#mem_cmd_le_create_conn:1b
+
+mem_le_adv_enable:01
+mem_le_adv_interval:f0 00
+mem_module_le_lpm_mult:05
+mem_le_lap:11 fa 0d 43 05 13
+mem_le_name_len:
+'Yichip 1121s
+
+mem_le_adv_data_len:03
+mem_le_adv_data:
+02 01 0e
+
+mem_le_scan_data_len:0e
+
+mem_le_scan_data:# 1 byte length + 1 byte type + N bytes data
+'\09Yichip 1121s
+
+mem_le_pres:02 03 00 05 10 02 03
+
+mem_le_interval_min:
+08 00 #min interval
+10 00 #max interval
+00 00 #latency
+2c 01 #timeout
+
+mem_le_conn_interval:90 00
+mem_le_local_mtu:20 00
+mem_local_rx_max_octets:fb 00 48 08 fb 00 48 08  # 1b
+mem_le_local_feature:21 09 
+mem_le_tx_phys:0707
+#####################################
+
+
+mem_ui_le_uuid_table:mem_module_le_att_list
+
+#attribute list: handle 2bytes, uuid 2bytes, length 1bytes, attribute Nbytes
+mem_module_le_att_list:
+#Primary service GAP ------
+01 00 02 00 28 02 00 18
+
+
+#Appearance
+02 00 02 03 28 01 02
+03 00 02 01 2a 02 c8 00 #3c2=hid mouse
+
+#Device name
+04 00 02 03 28 01 02
+05 00 02 00 2a 14 41 73 74 20 4c 45 20 4d 6f 75 73 65 20 20 20 20 20 20 20 20
+
+
+#Peripheral Preferred Connection Parameters
+06 00 02 03 28 01 02
+07 00 02 04 2a 08 06 00 06 00 64 00 2c 01 # interval 6ms, latency 100, timeout 300
+
+
+#privcy flag
+08 00 02 03 28 01 02
+09 00 02 02 2a 01 01
+
+#reconnecting addr 
+0a 00 02 03 28 01 08
+0b 00 02 03 2a 06 00 00 00 00 00 00
+
+#Primary service GATT ------
+0c 00 02 00 28 02 01 18
+
+#Service changed
+0d 00 02 03 28 01 20
+0e 00 02 05 2a 00
+#Client Characteristic Configuration
+0f 00 02 02 29 02 00 00
+
+#Primary service TX power ------
+10 00 02 00 28 02 04 18
+#Characteristic Tx power level
+11 00 02 03 28 01 16
+12 00 02 07 2a 01 00
+13 00 02 02 29 02 00 00
+
+#Primary service Battery ------
+14 00 02 00 28 02 0f 18
+#Characteristic Battery level
+15 00 02 03 28 01 12
+16 00 02 19 2a 01 38
+
+#Primary service device infomation
+17 00 02 00 28 02 0a 18
+#Characteristic system id
+18 00 02 03 28 01 02
+19 00 02 23 2a 03 00 00 00
+
+#Characteristic manufactor name
+1a 00 02 03 28 01 02
+1b 00 02 29 2a 06 79 69 63 68 69 70
+
+#Characteristic module number
+1c 00 02 03 28 01 02
+1d 00 02 24 2a 06 79 69 63 68 69 70
+
+#Characteristic serial number
+1e 00 02 03 28 01 02
+1f 00 02 25 2a 04 63 6f 6d 33
+
+#Characteristic firmware version
+20 00 02 03 28 01 02
+21 00 02 26 2a 03 31 2e 30
+
+#Characteristic software version
+22 00 02 03 28 01 02
+23 00 02 28 2a 03 31 2e 30
+
+#Characteristic hardware version
+24 00 02 03 28 01 02
+25 00 02 2a 2a 03 31 2e 30
+
+#Characteristic regulatory version
+26 00 02 03 28 01 02
+27 00 02 25 2a 04 63 6f 6d 33
+
+#Primary service yichip transmit ------
+28 00 02 00 28 10 55 e4 05 d2 af 9f a9 8f e5 4a 7d fe 43 53 53 49
+#Characteristic tx--notify read
+29 00 02 03 28 01 12
+2a 00 10 16 96 24 47 C6 23 61 BA D9 4B 4D 1E 43 53 53 49 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+#Client Characteristic Configuration
+2b 00 02 02 29 02 00 00
+
+#Characteristic rx--write
+2c 00 02 03 28 01 08
+2d 00 10 b3 9b 72 34 be ec d4 a8 f4 43 41 88 43 53 53 49 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+#Characteristic rx-- write without Response
+2e 00 02 03 28 01 04
+2f 00 10 fe 69 ca 9a 56 19 f6 ab 02 4d aa 6d 43 53 53 49 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+#Characteristic rx tx --read write notify
+30 00 02 03 28 01 2a
+31 0010 18 03 A6 28 5E D8 EC 91 1C 48 A3 AC 43 53 53 49 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+#Client Characteristic Configuration
+32 00 02 02 29 02 00 00
+
+
+#End of Attribute list
+00 00
+
+#mem_le_wechat_air_sync_ptr:mem_module_wechat_indication_handle
+#mem_module_wechat_indication_handle:35 38 
+
+#mem_module_wechat_tx_buffer_ptr:mem_wechat_tx_buffer
+#mem_module_wechat_rx_buffer_ptr:mem_wechat_rx_buffer
+
+#mem_le_adv_data_len:03
+#mem_le_adv_data:
+#02 
+#01 #GAP_ADTYPE_FLAGS
+#06 #GAP_ADTYPE_FLAGS_GENERAL |GAP_ADTYPE_FLAGS_BREDR_NOT_SUPPORTED
+
+#05 
+#02 #GAP_ADTYPE_16BIT_MORE
+#E7 FE 00 18
+
+#09 
+#FF #GAP_ADTYPE_MANUFACTURER_SPECIFIC
+#0e 05 #Yichip Microelectronics (Hangzhou) Co.,Ltd.
+#81 E8 2F 96 FD 64
+
+#mem_le_scan_data_len:0e
+
+#mem_le_scan_data:# 1 byte length + 1 byte type + N bytes data
+#'\09Yichip 1305 le
+
+
+
+#eeprom gpio config
+
+
+
Index: sched/adpcm.dat
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/adpcm.dat	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/adpcm.dat	(working copy)
@@ -0,0 +1,95 @@
+
+mem_ad_indexTable:ff ff ff ff 02 04 06 08 ff ff ff ff 02 04 06 08
+
+mem_ad_stepsizeTable:
+07 00 00 00
+08 00 00 00
+09 00 00 00
+0a 00 00 00
+0b 00 00 00
+0c 00 00 00
+0d 00 00 00
+0e 00 00 00
+10 00 00 00
+11 00 00 00
+13 00 00 00
+15 00 00 00
+17 00 00 00
+19 00 00 00
+1c 00 00 00
+1f 00 00 00
+22 00 00 00
+25 00 00 00
+29 00 00 00
+2d 00 00 00
+32 00 00 00
+37 00 00 00
+3c 00 00 00
+42 00 00 00
+49 00 00 00
+50 00 00 00
+58 00 00 00
+61 00 00 00
+6b 00 00 00
+76 00 00 00
+82 00 00 00
+8f 00 00 00
+9d 00 00 00
+ad 00 00 00
+be 00 00 00
+d1 00 00 00
+e6 00 00 00
+fd 00 00 00
+17 01 00 00
+33 01 00 00
+51 01 00 00
+73 01 00 00
+98 01 00 00
+c1 01 00 00
+ee 01 00 00
+20 02 00 00
+56 02 00 00
+92 02 00 00
+d4 02 00 00
+1c 03 00 00
+6c 03 00 00
+c3 03 00 00
+24 04 00 00
+8e 04 00 00
+02 05 00 00
+83 05 00 00
+10 06 00 00
+ab 06 00 00
+56 07 00 00
+12 08 00 00
+e0 08 00 00
+c3 09 00 00
+bd 0a 00 00
+d0 0b 00 00
+ff 0c 00 00
+4c 0e 00 00
+ba 0f 00 00
+4c 11 00 00
+07 13 00 00
+ee 14 00 00
+06 17 00 00
+54 19 00 00
+dc 1b 00 00
+a5 1e 00 00
+b6 21 00 00
+15 25 00 00
+ca 28 00 00
+df 2c 00 00
+5b 31 00 00
+4b 36 00 00
+b9 3b 00 00
+b2 41 00 00
+44 48 00 00
+7e 4f 00 00
+71 57 00 00
+2f 60 00 00
+ce 69 00 00
+62 74 00 00
+ff 7f 00 00
+
+
Index: sched/ble_car_att_list.dat
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/ble_car_att_list.dat	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/ble_car_att_list.dat	(working copy)
@@ -0,0 +1,204 @@
+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
\ No newline at end of file
Index: sched/ble_shutter_gatt_list.dat
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/ble_shutter_gatt_list.dat	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/ble_shutter_gatt_list.dat	(working copy)
@@ -0,0 +1,313 @@
+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
\ No newline at end of file
Index: sched/ble_shutter_key_value_list.dat
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/ble_shutter_key_value_list.dat	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/ble_shutter_key_value_list.dat	(working copy)
@@ -0,0 +1,40 @@
+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
Index: sched/car.dat
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/car.dat	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/car.dat	(working copy)
@@ -0,0 +1,235 @@
+mem_device_option:0e
+mem_le_adv_channel_map:07 
+mem_le_adv_enable:00
+
+
+mem_spi_ncs_gpio:ff
+
+mem_le_pres_auth:01
+mem_le_local_mtu:17
+mem_le_adv_interval:60 01 
+mem_local_rx_max_octets:fb 00 48 08 fb 00 48 08  # 1b
+
+
+mem_le_lap:34 75 07 99 07 2b
+mem_le_name_len:
+'YC-CAR-34
+
+mem_le_adv_data_len:1f
+mem_le_adv_data:
+17 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 02 01 05 03 02 ff f0
+
+mem_le_scan_data_len:1f
+mem_le_scan_data:
+1e 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
+
+
+mem_le_interval_min:
+18 00 #min interval
+20 00 #max interval
+10 00 #latency
+2c 01 #timeout
+
+
+#mem_ui_le_uuid_table:21 95  #0x9E62 BLE_CAR_ATT_LIST
+mem_ui_le_uuid_table:mem_ble_att_list
+
+
+mem_ble_att_list:
+#Primary service GAP ------
+01 00 02 00 28 02 00 18
+#Device name
+02 00 02 03 28 01 0a
+03 00 02 00 2a
+'CAR-BLE-OTA
+
+#Appearance
+04 00 02 03 28 01 02
+05 00 02 01 2a 02 40 14
+#Peripheral Preferred Connection Parameters
+06 00 02 03 28 01 02
+07 00 02 04 2a 08 08 00 20 00 10 00 58 02 # interval 6ms, latency 100, timeout 600
+
+#Primary service device information ------
+08 00 02 00 28 02 0a 18
+
+#Manufacturer Name
+09 00 02 03 28 01 02
+0a 00 02 29 2a 06 59 69 43 68 69 70
+
+#Model Number
+0b 00 02 03 28 01 02
+0c 00 02 24 2a 04 4c 52 32 31
+
+#Software Revision
+0d 00 02 03 28 01 02
+0e 00 02 28 2a 04 56 2e 30 31
+
+#Hardware Revision
+0f 00 02 03 28 01 02
+10 00 02 27 2a 04 56 2e 30 31
+
+#PNP id
+11 00 02 03 28 01 02
+12 00 02 50 2a 07 02 35 12 22 aa 51 31
+
+#Client Characteristic
+13 00 02 02 29 02 00 00
+
+#Primary service yichip transmit ------
+14 00 02 00 28 02 f0 ff
+
+15 00 02 03 28 01 12
+16 00 02 f1 ff 08 00 00 00 00 00 00 00 00
+17 00 02 02 29 02 00 00
+
+18 00 02 03 28 01 08
+19 00 02 f2 ff 08 00 00 00 00 00 00 00 00
+00 00    
+
+##############BLE ATT LIST END####################
+
+mem_lpm_mode:00
+mem_lpm_overhead:06
+mem_lpm_mult_timeout:02
+mem_car_hard_soft_switch:00
+
+mem_power_param_ptr:mem_car_soft_power
+mem_car_power_off_timeout:0c 0c
+
+mem_ui_button_gpio:ff
+mem_ui_button_timeout:14
+mem_ui_button_last_state:01
+
+
+mem_ui_led_struct_ptr:mem_car_style1_led_type
+mem_ui_led_struct_num:01
+
+#style:01
+mem_car_style1_blink_count:ff
+mem_car_style1_struct_led_gpio:05
+mem_car_style1_on_time:20 03
+mem_car_style1_off_time:20 03
+
+#style:02
+mem_car_style2_blink_count:ff
+mem_car_style2_struct_led_gpio:ff
+mem_car_style2_on_time:20 03
+mem_car_style2_off_time:20 03
+
+mem_car_led_num:01
+mem_car_led_map:
+05
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+
+mem_car_config_blood_led1_gpio:ff
+mem_car_config_pairing_led_gpio:ff
+mem_car_config_low_voltage_led_gpio:ff
+
+mem_keyscan_ptr:mem_car_keyscan
+mem_car_key_num:00
+
+
+mem_car_queue_each_size:14 06
+
+mem_queue_ptr:mem_car_queue_each_size
+
+mem_car_config_pairing_led_conn_status:00
+mem_car_config_soft_switch_enable:00
+mem_car_config_pairing_led_gpio:ff
+mem_car_config_low_voltage_led_gpio:ff
+mem_car_config_soft_switch_gpio:ff
+mem_car_config_low_voltage_percent:14
+mem_car_config_bat_notify_enable:01
+mem_car_config_device_select:03
+mem_car_config_ir_enable:00
+mem_car_config_motor_layout:03
+mem_car_config_ir_rx_gpio:ff
+mem_car_config_led_num:ff
+mem_car_config_blood_led_gpio:ff 09 0a 0b 0c 0d 0e 0f
+
+
+mem_motor1_speed:04
+mem_motor2_speed:04
+mem_motor3_speed:09
+mem_motor1_pwm_set:ff ff 00 05 e8 03 00 00
+mem_motor2_pwm_set:ff ff 00 04 e8 03 00 00
+mem_motor3_pwm_set:ff ff 00 03 e8 03 00 00
+mem_motor_pwm_pin1_set:ff ff 00 02 e8 03 00 00
+
+
+mem_car_notify_vdd_count:14
+mem_notify_bat_packet:07 11 00 5a 6b 01 00 01 00 00
+
+mem_vdd_calculate_set:e0 01 90 01 9a 01 00 00	#full_vol;	empty_vol;	low_vol;	now_vol
+
+mem_ir_notify_data:08 11 00 5a 6b 06 00 02 00 00 00
+
+mem_adc_config_flag:01
+
+mem_car_info_request:0e 11 00 5a 6b 08 00 08 00 00 00 00 00 00 00 00 00
+
+mem_car_led_control_timer:05
+
+
+#mem_car_led_control:01 01 01 01 01 01 01 01
+
+mem_car_motor_gpio_num:04
+mem_car_motor_gpio_map:
+00		#left	INC
+01		#right	IND
+02 		#front	INA
+09		#back	INB
+
+#eeprom config
+mem_eeprom_base:80 1f
+mem_eeprom_wp_gpio:06
+mem_eeprom_scl_gpio:07
+mem_eeprom_sda_gpio:08
+
+
+
+
+#rf config
+mem_24g_data_type:01        #mouse 1,kb 2
+mem_24g_lap:38 74 2f 74 07 2b#low 4B used for 24g rxaddr
+mem_tx_power:03	#3dBm
+mem_24g_tx_phy:84#0x01:1M/0x02:2M/0x04:S2/0x84:S8
+mem_24g_rx_phy:84#0x01:1M/0x02:2M/0x04:S2/0x84:S8
+mem_24g_no_ack:00#no ack
+mem_24g_rx_window:60 ea#rx
+mem_24g_hop_interval:1e
+mem_24g_ackpayload_enable:00#ack payload enable
+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
+mem_24g_pair_switch:01
+mem_24g_pair_mode:00
+mem_24g_pair_ch:4e
+mem_24g_pair_tx_power:85 #-5dBm
+mem_24g_pair_addr:56 34 02 01
+mem_24g_enter_hibernate:00 48 60#200ms
+mem_rssi_buff_index:07
+mem_rssi_noise_buffer_ptr:mem_car_rssi_noise_buffer
+mem_rssi_noise_self_buffer_ptr:mem_car_rssi_noise_car_buffer
+mem_rssi_noise_device1_buffer_ptr:mem_car_rssi_noise_remote_buffer
+
+#24g rx init end
+
+mem_car_24g_bind_enable_delay_count:0a#500ms
+mem_car_24g_no_data_timeout_count:64 00#10s
+mem_car_enter_lpm_timer_count:b8 0b#5min
+
+mem_car_save_addr_flag:00
+mem_car_24g_go_die_flag:00
+
+
Index: sched/dongle.dat
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/dongle.dat	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/dongle.dat	(working copy)
@@ -0,0 +1,69 @@
+
+mem_device_option:04
+mem_ui_button_gpio:ff
+
+
+#efuse size:28 bytes
+
+#sys config
+#bit7:enable 16M xtal#0:24M#1:16M
+#bit6:enable new channel map
+#bit5:enable eeprom
+#bit4:enable kb icon
+#bit3:enable 24g 2M
+#bit2-0:retention
+mem_dg_sys_config:00  #24M
+
+#24g new process #default value 00,if need new process set value 01
+mem_24g_disable_fec1:00
+mem_dg_24g_tx_power_default:06	#6dBm
+
+#usb config
+#mem_dg_usb_vid_pid:
+#00 #disable
+#mouse only#auto pair
+#51 31#VID
+#20 10#PID
+#mouse & keyboard
+#51 31#VID
+#20 30#PID
+#mem_dg_usb_tx_interval:00
+#mem_dg_usb_device_name:
+#'123456
+
+
+#rf config
+mem_24g_lap:36 26 10 30 12 23#low 4B used for 24g rxaddr
+#mem_24g_tx_phy:01#0x01:1M/0x02:2M/0x04:S2/0x84:S8
+#mem_24g_rx_phy:01#0x01:1M/0x02:2M/0x04:S2/0x84:S8
+#mem_24g_no_ack:00#no ack
+mem_24g_rx_window:78 69#rx
+mem_24g_hop_interval:1e
+#mem_24g_ackpayload_enable:00#ack payload enable
+#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
+#mem_24g_pair_switch:00
+mem_24g_pair_mode:00
+#mem_24g_pair_ch:4e
+#mem_24g_pair_tx_power:85
+#mem_24g_pair_addr:20 15 10 05
+#mem_24g_ch_map_update:00
+#mem_24g_ch_update_map1
+#mem_24g_ch_update_map2
+#mem_24g_ch_update_map3
+#mem_24g_ch_update_map4
+
+#mem_rssi_buff_index:ff
+#mem_rssi_noise_buffer_ptr:mem_dg_rssi_noise_buffer
+#mem_rssi_noise_self_buffer_ptr:mem_dg_rssi_noise_dg_buffer
+#mem_rssi_noise_device1_buffer_ptr:mem_dg_rssi_noise_ms_buffer
+#mem_rssi_noise_device2_buffer_ptr:mem_dg_rssi_noise_kb_buffer
+
+
+
+#mem_rf_debug_rx_gpio:8c
+#mem_rf_debug_tx_gpio:8b
+
+
Index: sched/ff.dat
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/ff.dat	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/ff.dat	(working copy)
@@ -0,0 +1,88 @@
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
Index: sched/flippen.dat
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/flippen.dat	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/flippen.dat	(working copy)
@@ -0,0 +1,31 @@
+
+
+mem_flippen_no_data_timeout:14 00 #2s
+mem_flippen_start_pair_no_data_timeout:36 01 #31s
+mem_key_longpress_timer_init:08 07	#3min
+
+
+mem_key_press_data:
+00 00 00 4B 00 00 00 00 00	#Page Up
+00 00 00 4E 00 00 00 00 00	#Page Down	
+00 02 00 3E 00 00 00 00 00	#Shift+F5
+00 00 00 29 00 00 00 00 00	#Esc
+00 00 00 05 00 00 00 00 00	#B
+00 00 00 2B 00 00 00 00 00	#tab
+00 00 00 28 00 00 00 00 00	#enter
+00 04 00 2B 00 00 00 00 00	#alt tab
+00 04 00 3D 00 00 00 00 00	#alt f4
+03 CD 00 00 00 00 00 00 00	#play/pause
+03 E9 00 00 00 00 00 00 00	#vol up
+03 EA 00 00 00 00 00 00 00	#vol down
+
+
+mem_standard_key_release:
+00 00 00 00 00 00 00 00 00
+mem_system_ctrl_key_release:
+02 00 00 00 00 00 00 00 00
+mem_media_key_release:
+03 00 00 00 00 00 00 00 00
+
+
+
Index: sched/fpga.dat
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/fpga.dat	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/fpga.dat	(working copy)
@@ -0,0 +1,28 @@
+mem_xtal_freq:18
+mem_le_adv_enable:01
+
+mem_rx_window_sniff:00 0e
+
+mem_version:08 0e 05 03 00
+
+mem_le_lap:11 22 35
+mem_le_adv_data_len:03
+mem_le_adv_data:
+02 01 0e
+
+mem_le_scan_data_len:0b
+mem_le_scan_data:
+'\09FPGA1121S
+
+mem_le_adv_interval:20 00
+mem_le_scan_window:20 00
+mem_le_scan_type:01
+mem_le_adv_own_addr_type:01
+mem_le_adv_channel_map:07
+
+mem_device_option:05
+
+mem_rf_init_data:
+ff
+mem_rf_init_ptr:mem_rf_init_data
+
Index: sched/gatt.dat
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/gatt.dat	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/gatt.dat	(working copy)
@@ -0,0 +1,85 @@
+
+#attribute list: handle 2bytes, uuid 2bytes, length 1bytes, attribute Nbytes
+mem_le_att_list:
+
+#Primary service GAP ------
+01 00 00 28 02 00 18
+
+#Device name
+02 00 03 28 01 0a
+03 00 00 2a 0c 41 73 74 20 4c 45 20 4d 6f 75 73 65
+
+#Appearance
+04 00 03 28 01 02
+05 00 01 2a 02 c2 03 #3c2=hid mouse
+
+#Peripheral Preferred Connection Parameters
+06 00 03 28 01 02
+07 00 04 2a 08 06 00 06 00 64 00 2c 01 # interval 6ms, latency 100, timeout 300
+
+#Primary service GATT ------
+08 00 00 28 02 01 18
+
+#Service changed
+09 00 03 28 01 20
+0a 00 05 2a 00
+
+#Client Characteristic Configuration
+0b 00 02 29 02 00 00
+
+#Primary service TX power ------
+0c 00 00 28 02 04 18
+#Characteristic Tx power level
+0d 00 03 28 01 06
+0e 00 07 2a 01 00
+
+
+#Primary service Battery ------
+0f 00 00 28 02 0f 18
+#Characteristic Battery level
+10 00 03 28 01 12
+11 00 19 2a 01 38
+
+#Primary service yichip transmit ------
+12 00 00 28 02 f0 18
+#Characteristic tx--notify
+13 00 03 28 01 12
+14 00 f1 2a 14	# for Android device, ATT MTU is just 23 bytes, so payload is 20 bytes max
+'Test read initial va
+#Client Characteristic Configuration
+15 00 02 29 02 00 00
+#Characteristic rx--write
+16 00 03 28 01 0c
+17 00 f0 2a 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+#End of Attribute list
+00 00
+
+mem_le_adv_enable:01
+mem_le_adv_data_len:03
+
+mem_le_adv_data:02 01 05
+#flags NOTE: should be included here, or Android will not do connectgatt()
+
+
+mem_le_scan_data_len:17
+
+mem_le_scan_data:	# 1 byte length + 1 byte type + N bytes data
+
+#complete local name
+0e 09 
+#'Ast LE2Serial
+'YiChip BLE2IR
+
+#16bit uuid
+03 03 00 f0
+
+#Apperance
+03 19 40 02
+
+
+mem_le_adv_interval:00 08 
+mem_le_adv_channel_map:07 
+
+mem_24g_lap:77 11 00 33 00 00
+
Index: sched/hci_boot.dat
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/hci_boot.dat	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/hci_boot.dat	(working copy)
@@ -0,0 +1,7 @@
+
+mem_device_option:0c
+
+mem_rf_init_data:
+ff
+mem_rf_init_ptr:mem_rf_init_data
+
Index: sched/keyboard.dat
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/keyboard.dat	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/keyboard.dat	(working copy)
@@ -0,0 +1,378 @@
+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
+50
+
+#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
+00
+
+#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
+1c
+
+
+mem_device_option:0f
+mem_device_number:01
+mem_power_on_flag:01
+
+#ui
+
+mem_ui_button_gpio:ff
+mem_ui_button_timeout:1e
+mem_ui_led_struct_num:00
+
+
+
+#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_offline_check_gpio:ff
+
+
+
+
+#2.4g
+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_power_on_fast_conn_timer:02 00	#1s
+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:00
+mem_lpm_mult:20
+mem_lpm_mult_init:20
+
+#rf_debug
+mem_rf_debug_rx_gpio:97
+mem_rf_debug_tx_gpio:97
+
+
+
+
+
+#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
+
+
+
+
+
+#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
+
+mem_adc_channel_gpio:04
+#04
+#02
+#01
+#03
+#00
+#05
+#06
+#07
+
+#led
+
+
+#system
+mem_mouse_24g_pair_timeout_init:58 02  #1min
+mem_mouse_discovery_timeout:58 02  #1min
+mem_mouse_no_data_timeout:70 17   #10mins
+mem_mouse_24g_reconn_timeout_init:64 #10s
+mem_mouse_direct_timeout:64  #10s
+mem_mouse_fast_direct_timeout:64 #10s
+mem_mouse_page_to:00 40		# 16384*0.625ms=10s
+mem_mouse_fast_page_to:00 40		# 16384*0.625ms=10s
+
+mem_same_keyvalue_timer_init:B8 0B		#5min
+mem_keyboard_caps_led_on_timer:58 02	#1min
+
+
+mem_device_flag:00	#00--24g 01--bt/ble
+mem_device1_type:34
+mem_device1_addr:00 00 00 00 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
+
+##												bt button connct gnd          bt button in matrix        two button commbination
+mem_keyboard_pairing_type:00					#                 00                                    00                                 01
+mem_config_select_device_button_gpio:05#              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_keyboard_bt_button_flag:01
+
+
+mem_keyboard_caps_led_gpio:ff
+mem_keyboard_num_led_gpio:ff
+mem_keyboard_power_led_gpio:ff
+
+mem_keyboard_led_r_gpio:ff
+mem_keyboard_led_g_gpio:ff
+mem_keyboard_led_b_gpio:ff
+
+mem_keybord_appearance:c1 03
+
+
+mem_mcu_stb_gpio:15
+mem_mcu_clk_gpio:14
+mem_mcu_rstb_gpio:12
+
+mem_mouse_param_config:
+ff #mem_lbutton_gpio
+ff #mem_mbutton_gpio
+ff #mem_rbutton_gpio
+ff #mem_bk_button_gpio
+ff #mem_fw_button_gpio
+ff #mem_dpi_button_gpio
+ff #mem_whee_a_data_gpio
+ff #mem_whee_b_data_gpio
+ff #mem_mouse_sensor_sclk_gpio
+ff #mem_mouse_sensor_sdio_gpio
+ff #mem_select_sensor_angle_gpio
+ff #mem_sensor_angle_default
+ff #mem_sensor_angle_switch
+ff #mem_config_sensor_dpi	#power on default dpi 00--1200  01--1600
+ff #mem_whee_ta_data_gpio
+ff #mem_whee_tb_data_gpio
+ff #mem_matrix_public_gpio
+ff #mem_config_select_device_button_gpio
+ff #mem_customer_key_gpio
+ff #mem_firebutton_gpio
+ff #mem_dpi_another_button_gpio
+ff #mem_sensor_motion_gpio
+ff #mem_device_switch_gpio
+ff #mem_mouse_reuse_2ice_gpio
+ff #mem_mouse_logo_led_gpio
+ff #mem_mouse_1io2led_multi_24gled
+ff #mem_mouse_1io2led_multi_bt1led
+ff #mem_mouse_1io2led_multi_bt2led
+ff #mem_mouse_low_voltage_alarm_gpio
+ff #mem_mouse_dpi_gpio
+mem_key_excol_gpio:c2 c1 85 84 83 82 81 80 c7 c6 c4
+
+#gpio00~16
+mem_key_row_gpio:
+09 		#r0
+0a 		#r1
+0b 		#r2
+0c 		#r3
+0d 		#r4
+0e 		#r5
+03 		#r6
+07		#r7
+
+#gpio00~16   portA:8x,portB:cx
+mem_key_col_gpio:
+0f		#c0
+10		#c1
+11		#c2
+08		#c14
+16		#c15
+c2		#c3
+c1		#c4
+c4		#c5
+c6		#c6
+c7		#c7
+85		#c8
+84		#c9
+83		#c10
+82		#c11
+80		#c12
+81		#c13
+ff		#c16
+ff		#c17
+ff		#c18
+ff		#c19
+
+mem_keyboard_keyvalue_map:
+#r0 ~ r7
+4c 00 00 00 44 00 2c 51 			#c0
+00 00 00 00 00 00 00 4f 				#c1
+00 e1 00 00 00 e5 00 00 			#c2
+42 2a 43 00 28 31 00 00 			#c3
+00 00 00 00 00 00 52 50 			#c4
+00 00 45 00 00 e0 e3 E7 			#c5
+00 e2 00 00 00 00 00 00 			#c6
+2e 30 25 0c 36 0e 3f 00 				#c7
+2d 2f 27 13 00 33 34 38 				#c8
+41 40 26 12 37 0f 00 00 				#c9
+23 1c 24 18 10 0d 0b 11 			#c10
+7f 00 3e 00 E6 00 00 00 			#c11
+22 17 21 15 19 09 0a 05 			#c12
+3a 39 1f 1a 1b 16 00 00 				#c13
+3b 3c 20 08 06 07 3d 00 			#c14
+35 2b 1e 14 1d 04 29 00 			#c15
+
+mem_keyboard_fn_first:	00			#fn first  00:press f1~f12=f1~f12      01:press fn+f1~f12=f1~f12
+mem_keyboard_fn_esc:	fb			#esc
+mem_keyboard_fn_f1:	f7			#f1
+mem_keyboard_fn_f2:	fa			#f2
+mem_keyboard_fn_f3:	a5			#f3
+mem_keyboard_fn_f4:	a6			#f4
+mem_keyboard_fn_f5:	a7			#f5
+mem_keyboard_fn_f6:	a8			#f6
+mem_keyboard_fn_f7:	eb			#f7
+mem_keyboard_fn_f8:	e9			#f8
+mem_keyboard_fn_f9:	ec			#f9
+mem_keyboard_fn_f10:	ed			#f10
+mem_keyboard_fn_f11:	ee			#f11
+mem_keyboard_fn_f12:	a9			#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:01
+mem_keyboard_fn_space_enable_flag:01
+mem_keyboard_fn_system_switch_enable_flag:00
+
+
+mem_keyboard_commbination_fast_conn_bt:2a 10	# bs+M
+
Index: sched/le_prcp.dat
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/le_prcp.dat	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/le_prcp.dat	(working copy)
@@ -0,0 +1,77 @@
+#attribute list: handle 2bytes, uuid 2bytes, length 1bytes, attribute Nbytes
+mem_le_att_list:
+
+#Primary service GAP ------
+01 00 00 28 02 00 18
+
+#Device name
+02 00 03 28 01 0a
+03 00 00 2a 0c 41 73 74 20 4c 45 20 4d 6f 75 73 65
+
+#Appearance
+04 00 03 28 01 02
+05 00 01 2a 02 c2 03 #3c2=hid mouse
+
+#Peripheral Preferred Connection Parameters
+06 00 03 28 01 02
+07 00 04 2a 08 06 00 06 00 64 00 2c 01 # interval 6ms, latency 100, timeout 300
+
+#Primary service GATT ------
+08 00 00 28 02 01 18
+
+#Service changed
+09 00 03 28 01 20
+0a 00 05 2a 00
+
+#Client Characteristic Configuration
+0b 00 02 29 02 00 00
+
+#Primary service TX power ------
+0c 00 00 28 02 04 18
+#Characteristic Tx power level
+0d 00 03 28 01 06
+0e 00 07 2a 01 00
+
+
+#Primary service Battery ------
+0f 00 00 28 02 0f 18
+#Characteristic Battery level
+10 00 03 28 01 12
+11 00 19 2a 01 38
+
+#Primary service yichip PRCP ------
+12 00 00 28 02 f1 18
+#Characteristic device tx
+13 00 03 28 01 12
+14 00 f3 2a 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+#Client Characteristic Configuration
+15 00 02 29 02 00 00
+#Characteristic device rx
+16 00 03 28 01 0e
+17 00 f2 2a 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+#End of Attribute list
+00 00
+
+mem_le_adv_data_len:1b
+mem_le_adv_data:0c 09
+'Yichip Temp
+ 03 19 40 02 02 01 05 02 0a 00 03 03 f1 18
+mem_le_scan_data_len:00
+#mem_le_adv_param:00 08 00 08 00 01 00 00 00 00 00 00 00 07 00
+mem_le_adv_enable:01
+
+
+mem_le_adv_interval:20 00 
+mem_le_adv_type:00 
+mem_le_adv_own_addr_type:01 
+mem_le_adv_direct_addr:00 00 00 00 00 00 
+mem_le_adv_channel_map:07 
+
+mem_le_notify_handle:14
+
+mem_lpm_mode:00
+#mem_lpm_ctrl:0f 0f 10 06
+mem_lpm_xtalcnt:0c 10 ca 1f
+mem_device_option:0d
+mem_le_lap:45 67 78 89 90 56
+
Index: sched/le_transmit_uuid.dat
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/le_transmit_uuid.dat	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/le_transmit_uuid.dat	(working copy)
@@ -0,0 +1,62 @@
+mem_device_option: 01
+
+#attribute list: handle 2bytes, uuid 2bytes, length 1bytes, attribute Nbytes
+mem_le_att_list:
+
+#Primary service GAP ------
+01 00 00 28 02 00 18
+
+#Device name
+02 00 03 28 01 0a
+03 00 00 2a 0c 41 73 74 20 4c 45 20 4d 6f 75 73 65
+
+#Appearance
+04 00 03 28 01 02
+05 00 01 2a 02 c2 03 #3c2=hid mouse
+
+#Peripheral Preferred Connection Parameters
+06 00 03 28 01 02
+07 00 04 2a 08 06 00 06 00 64 00 2c 01 # interval 6ms, latency 100, timeout 300
+
+#Primary service GATT ------
+08 00 00 28 02 01 18
+
+#Service changed
+09 00 03 28 01 20
+0a 00 05 2a 00
+
+#Client Characteristic Configuration
+0b 00 02 29 02 00 00
+
+#Primary service TX power ------
+0c 00 00 28 02 04 18
+#Characteristic Tx power level
+0d 00 03 28 01 06
+0e 00 07 2a 01 00
+
+
+#Primary service Battery ------
+0f 00 00 28 02 0f 18
+#Characteristic Battery level
+10 00 03 28 01 12
+11 00 19 2a 01 38
+
+#Primary service yichip transmit ------
+12 00 00 28 02 f0 18
+#Characteristic tx--notify
+13 00 03 28 01 12
+14 00 f1 2a 17 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+#Client Characteristic Configuration
+15 00 02 29 02 00 00
+#Characteristic rx--write
+16 00 03 28 01 0c
+17 00 f0 2a 17 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+#End of Attribute list
+00 00
+
+mem_le_adv_data_len:1b
+mem_le_adv_data:0c 09 52 74 72 69 76 72 5f 52 36 32 31 03 19 40 02 02 01 05 02 0a 00 03 03 00 f0
+mem_le_scan_data_len:00
+mem_le_adv_param:00 08 00 08 00 01 00 00 00 00 00 00 00 07 00
+mem_le_adv_enable:01
Index: sched/mesh.dat
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/mesh.dat	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/mesh.dat	(working copy)
@@ -0,0 +1,211 @@
+
+
+mem_le_adv_enable: 01
+
+#mem_mesh_three_tuple_ProductID:
+#灯
+#00 5F 74 FC
+#18 14 6c 11 eb f1
+#33 42 99 b0 e7 0b f6 5e 68 67 bd 9a a7 42 b9 b9
+
+#风扇灯
+#00 5F 7A D1
+#486e703cafa8
+#55c742493aac4fba2d9aae6c5b6cc061
+
+#00 5F 7A D1
+#486e703cafa9
+#c435c7f0e6e2b4c6a9dc4f6f3eaf9fa3
+
+#四键开关
+#00 5F 7C 48
+#486e703efaff
+#f5816553a881fbc734b6562ebdeb6d58
+
+mem_le_scan_interval:0a 00	#6.25ms
+mem_le_scan_window:03 00	#40ms
+
+mem_le_adv_type:00
+#ADV_NONCONN_IND
+
+
+#########mesh fast pairing setting#############
+mem_mesh_Device_PID:51 
+# Bit0,1,2,3:  BLE ADV VERSION   
+#bit4:1 (defult) 
+#bit5:suport OTA 1(defult) 
+#bit 6,7:
+#00	(BLE 4.0)
+#01 (defult BLE 4.2) 
+#10 (BLE 5.0) 
+#11 (BLE above 5.0 )
+
+mem_mesh_UUID_FeatureFlag:02 #bit 1-7:UUID VERSION bit0:ADV STATE
+mem_mesh_UUID_FeatureFlag1:83
+mem_mesh_PDU_RFU: 20
+#Bit0: 支锟街硷拷锟斤拷锟斤拷锟斤拷锟斤拷志位
+#Bit1: 锟斤拷展AuthValue锟斤拷志位
+#Bit2: 支锟斤拷Tiny Mesh app 锟斤拷锟斤拷锟斤拷志位
+#Bit3: RFU
+#Bit7~4: Genie Bt Mesh Stack锟斤拷志锟斤拷未使锟斤拷锟斤拷0
+#Bit7~4:1锟斤拷示锟斤拷锟斤拷TG7111B (YC1059)锟斤拷锟斤拷锟
+
+mem_mesh_OOB_information:00 00
+
+#################
+
+
+mem_device_option:0b
+
+mem_mesh_send_message_TTL:05
+
+
+mem_mesh_sha256_ConfirmationKey_ascii:
+43 6f 6e 66 69 72 6d 61 74 69 6f 6e
+4b 65 79
+
+mem_mesh_sha256_SessionKey_ascii:
+53 65 73 73 69 6f 6e
+4b 65 79
+
+mem_mesh_sha256_DeviceKey_ascii:
+44 65 76 69 63 65
+4b 65 79
+
+
+mem_k2_P_len:
+01 00
+mem_k2_SALT:
+4f 90 48 0c 18 71 bf bf fd 16 97 1f 4d 8d 10 b1
+
+mem_k3_SALT:
+00 36 44 35 03 f1 95 cc 8a 71 6e 13 62 91 c3 02
+mem_k3_id64_01:
+69 64 36 34 01
+
+mem_k4_SALT:
+0e 9a c1 b7 ce fa 66 87 4c 97 ee 54 ac 5f 49 be
+mem_k4_id6_01:
+69 64 36 01
+
+
+mem_mesh_element_number:
+01
+mem_mesh_element_device_ptr:mem_mesh_element_device
+
+mem_mesh_element_device_length:
+1B 00
+
+mem_mesh_element_device:
+#c1 03     #锟斤拷锟斤拷毯锟介播锟斤拷址
+c0 00	#锟斤拷锟介播锟斤拷址
+#c0 01	#锟斤拷锟斤拷锟介播锟斤拷址
+
+
+mem_mesh_network_relay_queue_each_size:
+22 04 
+
+mem_mesh_element_device1:
+c0 01	#锟斤拷锟斤拷锟介播锟斤拷址
+
+mem_mesh_element_device2:
+c0 01	#锟斤拷锟斤拷锟介播锟斤拷址
+#00 00
+
+
+mem_mesh_core_feature:
+00
+#bit0 MESH_FEATURE_LOG
+#bit1 
+
+
+#proxy adv init
+mem_le_adv_interval:f0 00
+mem_le_adv_channel_map:07
+
+mem_le_local_mtu:28
+
+mem_le_scan_data_len:0e
+02 01 06
+'\09Tiny Mesh
+
+
+mem_ui_le_uuid_table:mem_mesh_le_att_list
+mem_mesh_le_att_list:
+#Primary service yichip transmit ------
+01 00 02 00 28 02 01 18
+#Service Changed
+02 00 02 03 28 01 20
+03 00 02 05 2a 01 00
+#Client Characteristic Configuration
+04 00 02 02 29 02 01 00
+
+#Primary service GAP ------
+05 00 02 00 28 02 00 18
+
+#Device name
+06 00 02 03 28 01 4e
+07 00 02 00 2a 13 41 73 74 20 4c 45 20 4d 6f 75 73 65 20 20 20 20 20 20 20
+
+#Apperance
+08 00 02 03 28 01 4e
+09 00 02 01 2a 02 00 00
+
+#Perpheral Preferred Connection Parameters
+0a 00 02 03 28 01 02
+0b 00 02 04 2a 08 10 00 20 00 05 00 2c 01
+
+#Mesh Proxy Service Declaration
+0c 00 02 00 28 02 28 18
+#Mesh Proxy Data In Characteristic Declaration
+#Mesh Proxy Data In Characteristic Value
+#Characteristic --write without response
+0d 00 02 03 28 01 04
+0e 00 02 DD 2A 01 00
+#Mesh Proxy Data Out Characteristic Declaration
+#Mesh Proxy Data Out Characteristic Value
+#Mesh Proxy Data Out Client Characteristic Configuration
+#Characteristic --notify
+0f 00 02 03 28 01 10
+10 00 02 DE 2A 01 00
+#Client Characteristic Configuration
+11 00 02 02 29 02 00 00
+
+#Mesh Provisioning Service Declaration
+12 00 02 00 28 02 27 18
+#Mesh Provisioning Data In Characteristic Declaration
+#Mesh Provisioning Data In Characteristic Value
+#Characteristic --write without response
+13 00 02 03 28 01 04
+14 00 02 DB 2A 01 00
+#Mesh Provisioning Data Out Characteristic Declaration
+#Mesh Provisioning Data Out Characteristic Value
+#Mesh Provisioning Data Out Client Characteristic Configuration
+#Characteristic --notify
+15 00 02 03 28 01 10
+16 00 02 DC 2A 01 00
+#Client Characteristic Configuration
+17 00 02 02 29 02 00 00
+
+
+00 00
+
+
+
+
+
+
+
+
+mem_rf_init_data:
+# xtal 16M
+ff
+mem_rf_init_ptr:mem_rf_init_data
+
+mem_mesh_segmented_access_message_SegN_upper_limit:01
+mem_mesh_segmented_access_message_Segment_ptr:mem_mesh_segmented_access_message_Segment
+
+mem_mesh_vendor_mesh_receive_tid: ff
+
+mem_mesh_chip_select: 02
+
Index: sched/mouse.dat
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/mouse.dat	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/mouse.dat	(working copy)
@@ -0,0 +1,438 @@
+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
+49
+
+#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
+0a
+
+#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
+00
+
+#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_DPI_KEY_CONNECT_GND
+#bit4 MOUSE_ENABLE_ANOTHER_DPI_KEY_CONNECT_GND
+#bit5 MOUSE_ENABLE_PB_BUTTON_CONNECT_GND
+#bit6 MOUSE_ENABLE_FIRE_KEY_CONNECT_GND
+#bit7 MOUSE_ENABLE_CUSTOMER_KEY_CONNECT_VIN_OR_MATRIX
+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
+01
+
+#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
+1b
+
+mem_mouse_param_config:
+08 #mem_lbutton_gpio
+09 #mem_mbutton_gpio
+0a #mem_rbutton_gpio
+0a #mem_bk_button_gpio
+08 #mem_fw_button_gpio
+09 #mem_dpi_button_gpio
+ff #mem_whee_a_data_gpio
+ff #mem_whee_b_data_gpio
+0b #mem_mouse_sensor_sclk_gpio
+0c #mem_mouse_sensor_sdio_gpio
+ff #mem_select_sensor_angle_gpio
+00 #mem_sensor_angle_default
+00 #mem_sensor_angle_switch
+00 #mem_config_sensor_dpi	#power on default dpi 00--1200  01--1600
+ff #mem_whee_ta_data_gpio
+ff #mem_whee_tb_data_gpio
+ff #mem_matrix_public_gpio
+ff #mem_config_select_device_button_gpio
+ff #mem_customer_key_gpio
+ff #mem_firebutton_gpio
+ff #mem_dpi_another_button_gpio
+ff #mem_sensor_motion_gpio
+ff #mem_device_switch_gpio
+05 #mem_mouse_reuse_2ice_gpio
+ff #mem_mouse_logo_led_gpio
+ff #mem_mouse_1io2led_multi_24gled
+ff #mem_mouse_1io2led_multi_bt1led
+ff #mem_mouse_1io2led_multi_bt2led
+ff #mem_mouse_low_voltage_alarm_gpio
+ff #mem_mouse_dpi_gpio
+
+#mouse sensor angle
+#0x00 MOUSE_6CLK_ANGLE
+#0X01 MOUSE_9CLK_ANGLE
+#0X02 MOUSE_12CLK_ANGLE
+#0X03 MOUSE_3CLK_ANGLE
+
+mem_mouse_customer_function:01  #01--win+d     02--ctrl+alt+a    03--ie home    04--play
+
+#1io2led multi start
+#time parm
+mem_mouse_le_reconn_blink_limit:00		#00:disable 	01:enable
+mem_mouse_multi_led_powon_timer_init:14	#2s
+mem_mouse_multi_24gled_blink_timer_init:05			#24gled blink time		500ms on,500ms off
+mem_mouse_multi_le_discovery_blink_timer_init:02		#le discovery blink time	500ms on,500ms off
+mem_mouse_multi_le_reconn_blink_timer_init:05			#le reconn blink time		500ms on,500ms off
+mem_mouse_low_led_blink_timer:14				#low blink time			1000ms on,1000ms off
+mem_mouse_dpi_led_blink_timer_init:02			#dpi blink time			200ms on,200ms off
+#blink count=count/2
+mem_mouse_multi_24gled_blink_count_init:02		#24g count
+mem_mouse_multi_le_reconn_blink_count_init:06	#le reconn count
+mem_mouse_multi_lowled_blink_count_init:0a		#low count=count
+mem_mouse_dpi_led_delay_count_init:0a		#1s
+#1io2led multi end
+
+#time parm
+mem_mouse_logo_led_on_time_init:58 02	#1min
+mem_mouse_24g_pair_timeout_init:2c 01  #30s	    24g reconn timer&pair timer
+mem_mouse_24g_reconn_timeout_init:64 #10s
+mem_mouse_24g_power_on_fast_conn_timer:05 00	#500ms
+mem_mouse_direct_timeout:32  #05s
+mem_mouse_discovery_timeout:b0 04	#2min
+mem_mouse_fast_direct_timeout:0a #1s
+mem_mouse_no_data_timeout:70 17   #10mins
+
+#device parm
+mem_device_option:08
+mem_device_number:01   #01--only 2.4g   02--2.4g+ble
+
+mem_lpm_mode:01
+mem_lpm_mult:20
+mem_lpm_mult_init:20
+
+mem_device_flag:
+00		#00--24g 01--bt
+34
+ff ff ff ff ff ff
+mem_device2_type:
+34
+ff ff ff ff ff ff
+mem_device3_type:
+33
+ff ff ff ff ff ff
+
+#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
+
+mem_adc_channel_gpio:04
+#04
+#02
+#01
+#03
+#00
+#05
+#06
+#07
+
+#bit0:mouse_key_l    bit1:mouse_key_r  bit2:mouse_key_m
+mem_mouse_commbination_key_24g:03
+mem_mouse_commbination_key_bt:07
+
+mem_mouse_compare_addr:ff ff ff ff ff ff#00 00 00 00 00 00		#otp/flash=0	eeprom=ff
+
+#2.4g
+mem_24g_lap: 12 31 31 41 51 61
+mem_24g_data_type:01	#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_mouse_sleep_deal_type:00	#00:old version	01 new version	
+mem_24g_rx_window:c0 12     #400us  ## e0 2e#1ms #transmitter long range min:520us
+
+mem_mouse_24g_short_sleep_set_4ms:ee 4d 00	#1662us
+mem_mouse_24g_long_sleep_set_4ms:80 bb 00
+mem_mouse_24g_fast_hop_count_4ms:05
+mem_mouse_24g_tsniff_4ms:80 bb 00 00
+
+mem_mouse_24g_short_sleep_set_8ms:e8 fd 00#ac 07 01	#5625us	40 19 01:72000:6ms
+mem_mouse_24g_long_sleep_set_8ms:00 77 01
+mem_mouse_24g_fast_hop_count_8ms:0b
+mem_mouse_24g_tsniff_8ms:00 77 01 00
+
+mem_24g_enter_hibernate:00 48 60
+mem_24g_long_sleep_param_update_timer_init:2c 01	#30s
+mem_24g_transmit_by_interrupt_exit_count_init:50 00
+mem_mouse_24g_search_dongle_time_init:64 00	#10s
+mem_store_information_delay_timer_init:05
+
+
+#ble
+mem_le_lap:71 81 91 a1 b1 c1
+mem_le_adv_channel_map:07
+mem_local_rx_max_octets:fb 00 48 08 fb 00 48 08  # 1b
+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:2d 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 c2 03
+
+mem_le_adv_swift_pair:
+#microsoft swift pair
+06 ff 06 00 03 00 80	
+#name
+'\09BT5.2 Mouse
+
+mem_le_scan_data_len:1f
+mem_le_scan_data:
+#name
+'\09BT5.2 Mouse
+
+
+mem_le_name_len:
+'BT5.2 Mouse
+
+mem_le_name_patch_len:	#max 18bytes
+'BT5.2 Mouse
+
+mem_le_interval_min:
+06 00 #min interval
+09 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_flash_base:00 50 00
+mem_eeprom_base:80 1f
+mem_eeprom_block_size:80
+
+#otp write info offset
+mem_otp_offset_dpi:5d 1c										#7261 begin		60count----------info begin	
+mem_otp_offset_dpi_end:7a 1c								#7290 end
+
+mem_otp_offset_device_flag:7b 1c							#7291 begin		80count
+mem_otp_offset_device_flag_end:a2 1c						#7330 end
+
+mem_otp_offset_24g_addr:a3 1c								#7331 begin		25 count
+mem_otp_offset_24g_addr_end:06 1d						#7430 end
+
+mem_otp_offset_le_addr1:07 1d								#7431 begin		25 count
+mem_otp_offset_le_addr1_end:9c 1d						#7580 end
+
+mem_otp_offset_le_locall_addr1:9d 1d						#7581 begin		25 count
+mem_otp_offset_le_locall_addr1_end:32 1e				#7730 end
+
+mem_otp_offset_le_addr2:33 1e								#7731 begin		25 count
+mem_otp_offset_le_addr2_end:c8 1e						#7880 end
+
+mem_otp_offset_le_locall_addr2:c9 1e						#7881 begin		25 count
+mem_otp_offset_le_locall_addr2_end:5e 1f				#8030  end
+
+mem_otp_offset_le_addr_increase_count:5f 1f			#8031 begin		100 count
+mem_otp_offset_le_addr_increase_count_end:c2 1f		#8130 end				----------info over	
+
+mem_otp_offset_app_initflag:c4 1f		#8132 end
+
+#ui
+mem_ui_button_gpio:ff
+mem_ui_button_timeout:1e
+mem_ui_led_struct_num:00
+
+#rf
+mem_tx_power:00	#00--0db 01--3db  02--5db  03--f3db  04--f5db
+mem_mouse_24g_pair_tx_power:94 #94: -20dBm
+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
+mem_power_ctrl_disable:00	#01,disable   00,enable
+mem_tx_power_factory_param:5b 01		#f17dbm
+
+#usb
+mem_usb_offline_check_gpio:ff
+
+#sensor
+mem_mouse_dpi_seting:
+03	#mem_320x_dpi_0
+04	#mem_320x_dpi_1
+01	#mem_320x_dpi_2
+02	#mem_320x_dpi_3
+
+20	#mem_3212_dpi_0
+2a	#mem_3212_dpi_1
+3f	#mem_3212_dpi_2
+15	#mem_3212_dpi_3
+
+14	#mem_ka8g2_dpi_0
+1b	#mem_ka8g2_dpi_1
+11	#mem_ka8g2_dpi_2
+0e	#mem_ka8g2_dpi_3
+
+mem_sensor_s201_dpi:
+8a  #mem_sensor_s201_dpi_0	1200
+8b  #mem_sensor_s201_dpi_1	1600
+83  #mem_sensor_s201_dpi_2	2400
+84  #mem_sensor_s201_dpi_3	3200
+88  #mem_sensor_s201_dpi_4	800
+
+mem_sensor_ka8g2_poweron_init:
+09 a5
+0b f3
+09 00
+ff ff
+
+mem_sensor_poweron_init:
+09 5a
+0b f3
+09 00
+ff ff
+
+mem_sensor_3212_init:
+09 5a
+26 34
+19 04
+09 00
+ff ff
+
+mem_sensor_3205_init:
+09 5a
+0d 10
+1d ed
+7d 80
+ff ff
+
+mem_sensor_ka8g2_init:
+09 a5
+46 34
+60 07
+69 04
+7d 20
+7e 00
+09 00
+ff ff
+
+mem_sensor_8650_init:
+09 5a
+ff 27
+ab 40
+b3 56
+9b e6
+a8 12
+a9 c0
+be e6
+a5 af
+a0 21
+a1 02
+b8 10
+b9 0b
+a7 ff
+b5 d0
+b6 00
+ff 00
+09 00
+ff ff
+
+mem_sensor_ka8ul_init:
+09 5a
+0d 10
+0e c5
+5b 9a
+10 38
+11 42
+28 28
+41 23
+49 39
+4a b0
+4b a0
+4c 90
+4d 70
+09 00
+ff ff
+
+mem_sensor_8009_init:
+09 5a
+06 02
+09 69
+0d 48
+0e 9f
+0f ba
+09 00
+ff ff
+
+# rf debug
+#bit7:0 means disable rf debug function
+#mem_rf_debug_rx_gpio:86
+#mem_rf_debug_tx_gpio:86
+
Index: sched/mouse_ble_att_list.dat
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/mouse_ble_att_list.dat	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/mouse_ble_att_list.dat	(working copy)
@@ -0,0 +1,626 @@
+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
Index: sched/otp_set.dat
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/otp_set.dat	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/otp_set.dat	(working copy)
@@ -0,0 +1,11 @@
+0b
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
Index: sched/remote_car.dat
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/remote_car.dat	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/remote_car.dat	(working copy)
@@ -0,0 +1,46 @@
+
+mem_device_option:0d
+mem_ui_button_gpio:ff
+
+mem_remote_style_struct_led_gpio:06
+mem_remote_car_led_num:01
+mem_remote_car_led_map:
+06
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+
+
+mem_remote_car_key_num:04
+mem_remote_car_key_conf0:
+#0
+03
+#1
+04
+#2
+05
+#3
+07
+#4
+02
+#5
+0a
+#6
+17
+
+mem_24g_tx_phy:84#0x01:1M/0x02:2M/0x04:S2/0x84:S8
+mem_24g_rx_phy:84#0x01:1M/0x02:2M/0x04:S2/0x84:S8
+mem_24g_pair_tx_power:85 #-5dBm
+
+
+mem_24g_lap:01 02 03 04 05 06
+mem_24g_pair_addr:56 34 02 01
+mem_eeprom_base:80 1f		//2keeprom:f0 00
+mem_24g_pair_ch:4e
+
+mem_remote_save_addr_flag: 01
+
Index: sched/rtrivr_uuid.dat
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/rtrivr_uuid.dat	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/rtrivr_uuid.dat	(working copy)
@@ -0,0 +1,75 @@
+#attribute list: handle 2bytes, uuid 2bytes, length 1bytes, attribute Nbytes
+mem_le_att_list:
+
+#Primary service GAP ------
+01 00 00 28 02 00 18
+
+#Device name
+02 00 03 28 01 0a
+03 00 00 2a 0c 41 73 74 20 4c 45 20 4d 6f 75 73 65
+
+#Appearance
+04 00 03 28 01 02
+05 00 01 2a 02 c2 03 #3c2=hid mouse
+
+#Peripheral Preferred Connection Parameters
+06 00 03 28 01 02
+07 00 04 2a 08 06 00 06 00 64 00 2c 01 # interval 6ms, latency 100, timeout 300
+
+#Primary service GATT ------
+08 00 00 28 02 01 18
+
+#Service changed
+09 00 03 28 01 20
+0a 00 05 2a 00
+
+#Client Characteristic Configuration
+0b 00 02 29 02 00 00
+
+#Primary service TX power ------
+0c 00 00 28 02 04 18
+#Characteristic Tx power level
+0d 00 03 28 01 06
+0e 00 07 2a 01 00
+
+#Primary service Immediate alert ------
+0f 00 00 28 02 02 18
+#Characteristic Alert level
+10 00 03 28 01 04
+11 00 06 2a 01 00
+
+#Primary service UUID:f003 ------
+12 00 00 28 02 03 f0
+#Characteristic UUID:f803
+13 00 03 28 01 04
+14 00 03 f8 01 00
+
+
+#Primary service Link loss alert ------
+15 00 00 28 02 03 f0
+#Characteristic Alert level
+16 00 03 28 01 0a
+17 00 06 2a 01 00
+
+#Primary service UUID:f002 ------
+18 00 00 28 02 02 f0
+#Characteristic UUID:f802
+19 00 03 28 01 12
+1a 00 02 f8 01 28
+1b 00 02 29 02 00 00
+
+#Primary service Battery ------
+1c 00 00 28 02 0f 18
+#Characteristic Battery level
+1d 00 03 28 01 12
+1e 00 19 2a 01 38
+
+
+#End of Attribute list
+00 00
+
+mem_le_adv_data_len:1b
+mem_le_adv_data:0c 09 52 74 72 69 76 72 5f 52 36 32 31 03 19 40 02 02 01 05 02 0a 00 03 03 00 f0
+mem_le_scan_data_len:00
+mem_le_adv_param:00 08 00 08 00 01 00 00 00 00 00 00 00 07 00
+mem_le_adv_enable:01
Index: sched/sha256.dat
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/sha256.dat	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/sha256.dat	(working copy)
@@ -0,0 +1,256 @@
+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
\ No newline at end of file
Index: sched/shutter.dat
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/shutter.dat	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/shutter.dat	(working copy)
@@ -0,0 +1,28 @@
+mem_device_option:09
+mem_ui_button_gpio:ff
+mem_otp_load_check_sum:5a
+
+mem_le_lap:27 31 12 98 07 2a
+mem_le_name_len:
+'AB Shutter3
+
+#mem_shutter_key_conf0_temp:11 ff 90 01 11 #pcb2022-277
+mem_shutter_key_conf0_temp:11 05 90 00 ff #pcb2021-028
+
+mem_shutter_soft_switch_first_power_on:00
+
+mem_tx_power:07
+
+mem_shutter_dy_conf:00
+mem_shutter_discovery_time_conf:
+b8 0b #discovery_timeout
+70 17 #connect_timeout
+70 17 #sleep_timeout
+70 17 #sleep_timer
+
+mem_shutter_reconn_or_discovery_blink_time_conf:
+96 00 #mem_ble_shutter_reconn_blink_on_time
+96 00 #mem_ble_shutter_reconn_blink_off_time
+96 02 #mem_ble_shutter_discovery_blink_on_time
+96 02 #mem_ble_shutter_discovery_blink_off_time
+
Index: sched/shutter_dy.dat
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/shutter_dy.dat	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/shutter_dy.dat	(working copy)
@@ -0,0 +1,630 @@
+#device option
+mem_device_option:06
+#power on config
+mem_ui_button_gpio:ff
+
+mem_le_lap:0d 21 21 98 07 2a
+mem_le_name_len:
+'Selfie
+
+mem_tx_power:06
+
+//save otp addr
+mem_shutter_efuse_start_offset: b0 1f
+mem_shutter_efuse_end_offset: 70 1a
+
+mem_shutter_le_pairing_handle:2b 00
+
+#榛樿鐩告満鍦
+#mem_initial_move_conf:aa 00 78 00 69 00 38 00
+#宸︿笅瑙
+#mem_initial_move_conf:0a 00 1e 00 07 00 06 00
+#瀹夊崜涓棿锛孖OS宸︿笅瑙
+mem_initial_move_conf:ef 03 a0 06 07 00 06 00
+
+mem_shutter_dy_conf:01
+#soft switch first power on
+mem_shutter_soft_switch_first_power_on:01
+
+#led config
+mem_shutter_led_on_light_dark_led_conf:
+00		#type:stop blink
+00		#blink count:no blink
+93
+#0c		#led gpio number:GPIO01
+46 00	#led blink light time
+96 00	#led blink dark time
+mem_shutter_led_off_light_dark_led_conf:
+01		#type:start blink
+03		#blink count:no blink
+93
+#0c		#led gpio number:GPIO01
+46 00	#led blink light time
+96 00	#led blink dark time
+
+mem_shutter_reconn_blink_on_time_conf:
+20 01
+20 03
+mem_shutter_discovery_blink_on_time_conf:
+20 01
+20 03
+
+#hard_soft_switch config
+mem_shutter_hard_soft_switch_case_temp:00
+mem_shutter_soft_switch_button_gpio_temp:ff
+#mem_shutter_soft_switch_button_gpio_temp:12
+
+#100ms timer
+mem_shutter_ble_discovery_time_conf:
+70 17 #discovery_timeout
+70 17 #connect_timeout
+70 17 #sleep_timeout
+70 17 #sleep_timer
+
+mem_shutter_adc_read_time_init:05
+mem_shutter_vdd_calculate_set:
+e4 0c	#mem_shutter_vdd_full_vol 3.3v*1000
+00 00	#mem_shutter_vdd_empty_vol 2.3v*1000
+bf 09	#mem_shutter_vdd_low_vol 2.5v*1000
+
+
+#key config
+mem_shutter_key_num_conf:0a
+mem_shutter_dy_key_conf:
+#test 9key
+# ff   #right
+# 15   #like
+# 08   #down
+# 0a   #photo
+# 14   #up
+# ff   #left
+# 06   #fouse up
+# 07   #fouse down
+# 0d   #mode step
+# ff   #photo2
+
+#JM199
+# 14   #right  k6
+# 02   #like   k1
+# 06   #down   k4
+# 01   #photo  k3
+# 0c   #up     k7
+# 13   #left   k5
+# ff   #fouse up
+# ff   #fouse down
+# 00   #mode step
+# ff   #photo2
+
+#JM140
+ff   #right
+12   #like
+ff   #down
+01   #photo
+ff   #up
+ff   #left
+06   #fouse up
+0f   #fouse down
+ff   #mode step
+ff   #photo2
+
+#dy 10key
+# 08   #right
+# 07   #like
+# 0f   #down
+# 12   #photo
+# 02   #up
+# 06   #left
+# 03   #fouse up
+# 00   #fouse down
+# 01  #mode step
+# 0e   #photo2
+
+#JM118 10key
+# 0e   #right
+# 13   #like
+# 0f   #down
+# 00   #photo
+# 12   #up
+# 14   #left
+# 01   #fouse up
+# 08   #fouse down
+# 07   #mode step
+# 06  #photo2
+
+#otp io
+# 08   #right
+# 07   #like
+# 0f   #down
+# 12   #photo
+# 02   #up
+# 06   #left
+# 03   #fouse up
+# 00   #fouse down
+# 01   #mode step
+# 0e  #photo2
+
+mem_combine_key0:
+#6key
+#28 00 #left 2
+#09 00 #right 2
+#18 00 #up 2
+#0c 00 #down 2
+
+#6key -key mirror
+#09 00 #left 2
+#28 00 #right 2
+#0c 00 #up 2
+#18 00 #down 2
+
+#7key
+60 00 #left 2
+41 00 #right 2
+50 00 #up 2
+44 00 #down 2
+00 00
+
+#7key -key mirror
+#41 00 #left 2
+#60 00 #right 2
+#44 00 #up 2
+#50 00 #down 2
+#00 00
+
+mem_combine_key_release_value:40 00
+mem_shutter_iphone_move_mid:00
+mem_shutter_iphone_up_mid:00
+mem_shutter_iphone_like_mid:00
+mem_shutter_android_move_mid:00
+
+################################### ios config ######################################
+#right
+mem_key0_release_new_i:
+19 18 17 16 15 14 13 00
+mem_key0_long_press_i:
+00
+#like
+mem_key1_release_new_i:
+1b 1c 00
+mem_shutter_link_data_i:
+1b 1c 1c 1b 1c 00
+#down
+mem_key2_release_new_i:
+11 10 0f 0e 0d 0c 0b 0a 00
+#photo
+mem_key3_release_new_i:#volume increment
+03 01 00
+#33 34 00
+#03 01 33 34 00
+mem_key3_release_new_i_t:#volume decrement
+04 01 00
+#33 34 00
+#04 01 33 34 00
+#up
+mem_key4_release_new_i:
+0b 0c 0d 0e 0f 10 11 12 00
+#left
+mem_key5_release_new_i:
+14 15 16 17 18 19 1a 00
+mem_key5_long_press_i: #lock
+00
+#move
+mem_key6_release_new_i:
+00
+################################### ios config end ######################################
+
+################################### android config ######################################
+#move
+mem_key6_release_new:
+00
+#right
+mem_key0_release_new:
+19 18 17 16 15 14 13 00
+mem_key0_long_press:
+00
+#like
+mem_key1_release_new:
+1b 1c 00
+mem_shutter_link_data:
+1b 1c 1c 1b 1c 00
+#down
+mem_key2_release_new:
+11 10 0f 0e 0d 0c 0b 0a 00
+mem_key2_long_press:#volume decrement
+04 01 00
+#photo
+mem_key3_release_new:#volume increment
+03 01 33 34 00
+#03 01 00
+#33 34 00
+mem_key3_release_new_t:#volume decrement
+04 01 33 34 00
+#04 01 00
+#33 34 00
+#up
+mem_key4_release_new:
+0b 0c 0d 0e 0f 10 11 12 00
+mem_key4_long_press:#volume increment
+03 01 00
+#left
+mem_key5_release_new:
+14 15 16 17 18 19 1a 00
+mem_key5_long_press:
+00
+################################### android config  end ######################################
+
+################################### fouse config ######################################
+mem_fouse_up_press:1e 1f 20 21 22 23 24 25 26 00
+mem_fouse_up_long_press:27
+mem_fouse_up_long_release:28
+
+mem_fouse_down_press:25 24 23 22 21 20 1f 1e 1d 00
+#mem_fouse_down_press:32 31 25 24 23 22 1d 00
+mem_fouse_down_long_press:29
+mem_fouse_down_long_release:2a
+
+mem_shutter_mode_step_android:02 01 1b 1c 1b 1c 00
+
+mem_shutter_mode_step_ios:
+2d 2e 2f 30 1b 1c 1b 1c 00
+################################### fouse config  end ######################################
+
+mem_combine_key0_press:01
+mem_combine_key1_press:02
+mem_combine_key2_press:03
+mem_combine_key3_press:04
+mem_combine_key_release:00
+mem_move_mode_set:00 #00 combine key, 01 single key when another key has already triggered
+mem_move_mode_key_index:ff #move key index,SHUTTER_MOVE_KEY_NUM,SHUTTER_PHOTO_KEY_NUM
+mem_move_mode_trigger_enable:00
+
+mem_shutter_long_key_released_flag:01
+
+################ble kb val list#######################
+mem_shutter_mousekey_value_list:
+#media value
+02 1b 00 00 00 00 00 00 00 00 00 00 00 #1  release
+02 1b 00 01 00 00 00 00 00 00 00 00 00 #2  android Mode Step
+02 1b 00 02 00 00 00 00 00 00 00 00 00 #3  volume up
+02 1b 00 04 00 00 00 00 00 00 00 00 00 #4  volume down
+02 1b 00 08 00 00 00 00 00 00 00 00 00 #5  lock
+02 1b 00 10 00 00 00 00 00 00 00 00 00 #6  ios home
+02 1b 00 20 00 00 00 00 00 00 00 00 00 #7  android home
+02 1b 00 40 00 00 00 00 00 00 00 00 00 #8  zoom in
+02 1b 00 80 00 00 00 00 00 00 00 00 00 #9  zoom out
+#up and down
+0a 23 00 00 f4 07 80 02 04 f4 07 80 02 #a
+0a 23 00 83 f4 07 80 03 04 f4 07 80 03 #b
+0a 23 00 83 f4 07 40 04 04 f4 07 40 04 #c
+0a 23 00 83 f4 07 80 05 04 f4 07 80 05 #d
+0a 23 00 83 f4 07 40 06 04 f4 07 40 06 #e
+0a 23 00 83 f4 07 80 07 04 f4 07 80 07 #f
+0a 23 00 83 f4 07 40 08 04 f4 07 40 08 #10
+0a 23 00 83 f4 07 80 09 04 f4 07 80 09 #11
+0a 23 00 00 f4 07 40 0a 04 f4 07 40 0a #12
+#right and left
+0a 23 00 00 40 00 80 08 04 40 00 40 04 #13
+0a 23 00 83 80 02 80 08 04 80 02 40 04 #14
+0a 23 00 83 40 04 80 08 04 40 05 40 04 #15
+0a 23 00 83 80 06 80 08 04 80 07 40 04 #16
+0a 23 00 83 40 08 80 08 04 40 09 40 04 #17
+0a 23 00 83 80 0a 80 08 04 80 0b 40 04 #18
+0a 23 00 83 40 0c 80 08 04 40 0d 40 04 #19
+0a 23 00 00 80 0d 80 08 04 80 0e 40 04 #1a
+#like
+0a 23 00 83 f0 07 80 07 04 f0 07 80 07 #1b
+0a 23 00 00 f0 07 80 07 04 f0 07 80 07 #1c
+#fouse
+0a 23 00 00 00 06 20 07 04 00 06 00 03 #1d
+0a 23 00 83 00 06 40 07 87 00 06 00 03 #1e
+0a 23 00 83 00 06 60 07 87 00 06 00 03 #1f
+0a 23 00 83 00 06 80 07 87 00 06 00 03 #20
+0a 23 00 83 00 06 90 07 87 00 06 00 03 #21
+0a 23 00 83 00 06 a0 07 87 00 06 00 03 #22
+0a 23 00 83 00 06 b0 07 87 00 06 00 03 #23
+0a 23 00 83 00 06 d0 07 87 00 06 00 03 #24
+0a 23 00 83 00 06 e0 07 87 00 06 00 03 #25
+0a 23 00 00 00 06 e0 07 04 00 06 00 03 #26
+
+#fouse long press
+# 0a 23 00 83 00 06 e0 07 87 00 06 00 03 #27
+# 0a 23 00 00 00 06 e0 07 00 00 06 00 03 #28
+# 0a 23 00 83 00 06 20 07 87 00 06 00 03 #29
+# 0a 23 00 00 00 06 20 07 00 00 06 00 03 #2a
+0a 23 00 83 00 04 50 06 87 00 04 00 02 #27
+0a 23 00 00 00 04 50 06 00 00 04 00 02 #28
+0a 23 00 83 00 04 00 0a 87 00 04 00 02 #29
+0a 23 00 00 00 04 00 0a 00 00 04 00 02 #2a
+
+#android mode step
+0a 23 00 83 80 0d f1 0d 87 80 0c f1 0c #2b
+0a 23 00 00 80 0d f1 0d 04 80 0c f1 0c #2c
+
+#ios mode step
+0a 23 00 83 b0 0e 10 0e 87 80 0e f0 0e #2d   澶ч儴鍒嗚嫻鏋滄墜鏈
+0a 23 00 00 b0 0e 10 0e 04 80 0e f0 0e #2e
+
+0a 23 00 83 a0 0d f0 0e 87 a0 0d a0 0e #2f  IOS26瑙︽懜浣嶇疆 绗竴涓潗鏍囦负promax锛岀浜屼釜鍧愭爣浣嶅皬灞忓箷
+0a 23 00 00 a0 0d f0 0e 04 a0 0d a0 0e #30
+
+
+#fouse - plus
+0a 23 00 83 00 06 10 07 87 00 06 00 03 #31
+0a 23 00 83 00 06 20 07 87 00 06 00 03 #32
+
+
+
+#photo touch
+0a 23 00 83 f0 07 05 0e 04 f0 07 05 0e #33
+0a 23 00 00 f0 07 05 0e 04 f0 07 05 0e #34
+# 0a 23 00 83 f0 07 80 07 04 f0 07 80 07 #33
+# 0a 23 00 00 f0 07 80 07 04 f0 07 80 07 #34
+
+mem_shutter_move_data:
+00 00 00  #defualt
+
+#mem_le_dy_adv_data:
+#02 01 05
+#03 02 12 18
+#03 19 c1 03
+#mem_le_dy_scan_data:
+#0d 09 56 30 2d 53 68 75 74 74 65 72
+
+mem_ble_shutter_dy_interval_min_new:
+06 00
+0a 00
+10 00
+2c 01
+
+mem_ble_shutter_dy_interval_min_ios:
+16 00
+16 00
+10 00
+2c 01
+
+#attribute list: handle 2bytes, uuid 2bytes, length 1bytes, attribute Nbytes
+mem_shutter_le_uuid_sup:
+#Primary service GATT ------
+01 00 02 00 28 02 01 18
+#Service changed
+02 00 02 03 28 01 20
+03 00 02 05 2a 01 00
+#Client Characteristic Configuration
+04 00 02 02 29 02 00 00
+
+#Primary service GAP ------
+05 00 02 00 28 02 00 18
+
+#Device name
+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
+
+#Appearance
+08 00 02 03 28 01 02
+09 00 02 01 2a 02 c1 03
+
+#Peripheral Preferred Connection Parameters
+0a 00 02 03 28 01 02
+0b 00 02 04 2a 08 06 00 06 00 64 00 2c 01 # interval 6ms, latency 100, timeout 300
+
+#Primary service device information ------
+0c 00 02 00 28 02 0a 18
+#PNP id
+0d 00 02 03 28 01 02
+0e 00 02 50 2a 07 01 05 0e 00 0a 02 40
+
+#Primary service hid ------
+0f 00 02 00 28 02 12 18
+
+#Protocol mode
+10 00 02 03 28 01 06
+11 00 02 4e 2a 01 01
+
+
+#Hid report
+12 00 02 03 28 01 10
+13 00 02 4d 2a 07 00 00 00 00 00 00 00
+#Client Characteristic
+14 00 02 02 29 02 00 00
+#Report reference
+15 00 02 08 29 02 01 01 # report id=1, type=1 input
+
+#Hid report id 4
+16 00 02 03 28 01 10
+17 00 02 4d 2a 03 00 00 00
+#Client Characteristic
+18 00 02 02 29 02 00 00
+#Report reference
+19 00 02 08 29 02 04 01 # report id=4, type=1 input
+
+#Hid report id 3
+1a 00 02 03 28 01 10
+1b 00 02 4d 2a 02 00 00
+#Client Characteristic
+1c 00 02 02 29 02 00 00
+#Report reference
+1d 00 02 08 29 02 03 01 # report id=3, type=1 input
+
+#Hid report id 5
+1e 00 02 03 28 01 10
+1f 00 02 4d 2a 03 00 00 00
+#Client Characteristic
+20 00 02 02 29 02 00 00
+#Report reference
+21 00 02 08 29 02 05 01 # report id=5, type=1 input
+
+#Hid report id 6
+22 00 02 03 28 01 10
+23 00 02 4d 2a 0a 00 00 00 00 00 00 00 00 00 00
+#Client Characteristic
+24 00 02 02 29 02 00 00
+#Report reference
+25 00 02 08 29 02 06 01 # report id=6, type=1 input
+
+#Hid report id 2
+26 00 02 03 28 01 12
+27 00 02 4d 2a 02 00 00
+#00 00 00 00 00
+#Client Characteristic
+28 00 02 02 29 02 00 00
+#Report reference
+29 00 02 08 29 02 02 01 # report id=2, type=1 input
+
+#Report map
+2a 00 02 03 28 01 02
+2b 00 02 4b 2a 01 00
+
+#Hid information
+2c 00 02 03 28 01 02
+2d 00 02 4a 2a 04 11 01 00 01
+
+#Hid control point
+2e 00 02 03 28 01 04
+2f 00 02 4c 2a 01 00
+30 00 02 00 28 02 0f 18
+
+00 00
+mem_shutter_le_map_len_android:f3 00
+mem_shutter_le_map_len_ios:f3 00
+mem_shutter_le_hid_map:
+05 0c # Usage Page(Consumer) #legth 30
+09 01 # Usage(Consumer Control)
+a1 01 # Collection(Application)
+85 03 # Report ID(3)
+09 82 #Mode Step 鍓/鍚庢憚鍍忓ご鍒囨崲
+09 e9 # volume up
+09 ea # volume down
+09 30 # lock
+09 40 # home
+0a 23 02  #home
+0a 2d 02 #zoom in
+0a 2e 02 #zoom out
+15 00 # Logical Minimum(0)
+25 01 # Logical Maximum(1)
+75 01 # Report Size(1)
+95 08 # Report Count(6)
+81 02 #Input (Data, Variable, Absolute)
+c0 #end
+
+05 0d	#Usage Page (Digitizer)
+09 04 	# Usage(Touch Screen)
+a1 01 	#Collection (Application)
+85 06	#Report Id (6)
+09 22   #Usage (finger)
+a1 02  	#Collection (Logical)
+09 42	#Usage (Tip Switch)
+15 00	#Logical minimum (0)
+25 01 	#Logical maximum (1)
+75 01	#Report Size (1)
+95 01	#Report Count (1)
+81 02 	#Input (Data,Value,Absolute,Bit Field)
+09 32	#Usage (In Range)
+15 00	#Logical minimum (0)
+25 01 	#Logical maximum (1)
+81 02  	#Input (Data,Value,Absolute,Bit Field)
+09 51   #Usage(Contact Identifier)
+75 05   #Report Size(5)
+95 01   #Report Count(1)
+16 00 00 #Logical Minimum(0)
+26 f0 0f #Logical Minimum(16)
+81 02   #Input (Data,Value,Absolute,Bit Field)
+09 47   #Usage(Confidence)
+75 01   #Report Size(1)
+95 01   #Report Count(1)
+81 02   #Input (Data,Value,Absolute,Bit Field)
+05 01	#Usage Page (Generic Desktop)
+26 ff 0f  #Logical maximum (1'000)
+75 10	#Report Size (16)
+55 0D #Unit Exponent (14)
+65 33 #Unit(51)
+09 30 	#Usage (X)
+35 00   #Physical Minimum (0)
+46 00 10  #Physical maximum (1'205)
+81 02	#Input (Data,Value,Absolute,Bit Field)
+09 31	#Usage (Y)
+46 8a 03  #Physical maximum (906)
+81 02	#Input (Data,Value,Absolute,Bit Field)
+c0		#End Collection
+05 0d	#Usage Page (Digitizer)
+09 05 	# Usage(Touch Screen)
+a1 01 	#Collection (Application)
+09 22   #Usage (finger)
+a1 02  	#Collection (Logical)
+09 42	#Usage (Tip Switch)
+15 00	#Logical minimum (0)
+25 01 	#Logical maximum (1)
+75 01	#Report Size (1)
+95 01	#Report Count (1)
+81 02 	#Input (Data,Value,Absolute,Bit Field)
+09 32	#Usage (In Range)
+15 00	#Logical minimum (0)
+25 01 	#Logical maximum (1)
+81 02  	#Input (Data,Value,Absolute,Bit Field)
+09 51   #Usage(Contact Identifier)
+75 05   #Report Size(5)
+95 01   #Report Count(1)
+16 00 00 #Logical Minimum(0)
+26 f0 0f #Logical Minimum(16)
+81 02   #Input (Data,Value,Absolute,Bit Field)
+09 47   #Usage(Confidence)
+75 01   #Report Size(1)
+95 01   #Report Count(1)
+81 02   #Input (Data,Value,Absolute,Bit Field)
+05 01	#Usage Page (Generic Desktop)
+26 ff 0f  #Logical maximum (1'000)
+75 10	#Report Size (16)
+55 0D #Unit Exponent (14)
+65 33 #Unit(51)
+09 30 	#Usage (X)
+35 00   #Physical Minimum (0)
+46 00 10  #Physical maximum (1'205)
+81 02	#Input (Data,Value,Absolute,Bit Field)
+09 31	#Usage (Y)
+46 8a 03  #Physical maximum (906)
+81 02	#Input (Data,Value,Absolute,Bit Field)
+c0		#End Collection
+c0
+
+05 01        #Usage Page (Generic Desktop Ctrls)
+09 06        #Usage (Keyboard)
+A1 01        #Collection (Application)
+85 05        #Report ID (5)
+05 04
+#05 07        #Usage Page (Kbrd/Keypad)
+19 E0        #Usage Minimum (0xE0)
+29 E7        #Usage Maximum (0xE7)
+15 00        #Logical Minimum (0)
+25 01        #Logical Maximum (1)
+75 01        #Report Size (1)
+95 08        #Report Count (8)
+81 02        #Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+75 08        #Report Size (8)
+95 01        #Report Count (1)
+15 00        #Logical Minimum (0)
+25 F4        #Logical Maximum (-12)
+05 04
+#05 07        #Usage Page (Kbrd/Keypad)
+19 00        #Usage Minimum (0x00)
+29 F4        #Usage Maximum (0xF4)
+81 00        #Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
+C0           #End Collection
+c0
+
+# 05 0c # Usage Page(Consumer)
+# 09 01 # Usage(Consumer Control)
+# a1 01 # Collection(Application)
+# 85 02 # Report ID(2)
+# 75 10 # Report Size (16)
+# 95 01 # Report Count (1)
+# 15 01 # Logical Minimum (1)
+# 26 ff 03 #  Logical Maximum (1023)
+# 19 01 # Usage Minimum (Consumer Control)
+# 2a ff 03 #  Usage Maximum (0x03FF)
+# 81 60 # Input (Data,Array,Abs,No Wrap,Linear,No Preferred Sta te,Null State)
+# c0 # End Collection
+
+
+
+##############BLE ATT LIST END####################
+mem_dy_le_search_service_uuid:
+D0 00 2D 12 1E 4B 0F A4 99 4E CE B5 31 F4 05 79
+
Index: sched/sim.dat
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/sim.dat	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/sim.dat	(working copy)
@@ -0,0 +1,54 @@
+
+mem_lpm_xtalcnt:10 20 64
+mem_lpm_isogate:8f 2f 3b
+mem_lpm_hibernate_switch:20
+mem_lpm_ldo_sel:19
+mem_fcomp_div:24
+
+mem_xtal_freq:18	#24MHz
+mem_set_cdb_on:00
+mem_syn_cal_ctrl:00
+
+mem_le_lap:11 22 33
+mem_le_adv_data_len:1b
+mem_le_adv_data:0c 09
+'Yichip Temp
+ 03 19 40 02 02 01 05 02 0a 00 03 03 f1 18
+mem_le_ch_mapped:24
+mem_le_adv_interval:20 00
+mem_le_scan_window:20 00
+mem_le_scan_type:01
+mem_le_adv_own_addr_type:01
+
+
+mem_patch00:01
+
+
+4580:ff
+mem_rf_init_ptr:80 45		
+
+
+
+
+
+
+#ecb enc data
+4f00:
+0a94 0bb5 416e f045 f1c3 9458 c653 ea5a 
+
+
+#cbc xor data
+4e00:
+5a5a 5a5a 5a5a 5a5a 6363 6363 6363 6363
+
+#cbc enc data1
+4e20:
+7033 eafa b089 698f 43cb 1050 1e73 1109 
+
+#cbc enc data2
+4e30:
+3cfd e1a1 eb69 42b0 2593 3009 5238 53f9 
+
+
+
+
Index: sched/spp.dat
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/spp.dat	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/spp.dat	(working copy)
@@ -0,0 +1,206 @@
+#device option
+mem_device_option:04
+
+#spp uuid
+mem_uuid_list:
+04
+10
+02
+12
+00
+01
+00
+00
+01
+00
+01
+00
+01
+36
+00
+5a
+09
+00
+00
+0a
+00
+01
+00
+01
+09
+00
+01
+35
+03
+19
+12
+00
+09
+00
+04
+35
+0d
+35
+06
+19
+01
+00
+09
+00
+01
+35
+03
+19
+00
+01
+09
+00
+05
+35
+03
+19
+10
+02
+09
+00
+09
+35
+08
+35
+06
+19
+12
+00
+09
+01
+00
+09
+02
+00
+09
+01
+03
+09
+02
+01
+09
+05
+ac
+09
+02
+02
+09
+02
+39
+09
+02
+03
+09
+06
+44
+09
+02
+04
+28
+01
+09
+02
+05
+09
+00
+02
+03
+11
+01
+00
+03
+01
+00
+00
+01
+00
+03
+36
+00
+4e
+09
+00
+00
+0a
+00
+01
+00
+03
+09
+00
+01
+35
+03
+19
+11
+01
+09
+00
+02
+0a
+00
+00
+00
+00
+09
+00
+04
+35
+0c
+35
+03
+19
+01
+00
+35
+05
+19
+00
+03
+08
+01
+09
+00
+05
+35
+03
+19
+10
+02
+09
+00
+06
+35
+09
+09
+65
+6e
+09
+00
+6a
+09
+01
+00
+09
+01
+00
+25
+0a
+53
+50
+50
+20
+73
+6c
+61
+76
+65
+00
+00
+00
+01
Index: sched/test.dat
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/test.dat	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/test.dat	(working copy)
@@ -0,0 +1,139 @@
+mem_device_option:ff
+mem_le_lap:11 22 33
+mem_le_adv_enable:01
+mem_le_adv_interval:00 02 
+mem_le_adv_channel_map:07
+mem_le_adv_data_len:03
+mem_le_adv_data:
+02 01 0e
+
+mem_le_scan_data_len:0a
+mem_le_scan_data:
+'\09test1305
+
+mem_ui_le_uuid_table:mem_module_le_att_list
+
+#attribute list: handle 2bytes, uuid 2bytes, length 1bytes, attribute Nbytes
+mem_module_le_att_list:
+#Primary service GAP ------
+01 00 02 00 28 02 00 18
+
+
+#Appearance
+02 00 02 03 28 01 02
+03 00 02 01 2a 02 c8 00 #3c2=hid mouse
+
+#Device name
+04 00 02 03 28 01 0a
+05 00 02 00 2a 14 41 73 74 20 4c 45 20 4d 6f 75 73 65 20 20 20 20 20 20 20 20
+
+
+#Peripheral Preferred Connection Parameters
+06 00 02 03 28 01 02
+07 00 02 04 2a 08 06 00 06 00 64 00 2c 01 # interval 6ms, latency 100, timeout 300
+
+
+#privcy flag
+08 00 02 03 28 01 02
+09 00 02 02 2a 01 01
+
+#reconnecting addr 
+0a 00 02 03 28 01 08
+0b 00 02 03 2a 06 00 00 00 00 00 00
+
+#Primary service GATT ------
+0c 00 02 00 28 02 01 18
+
+#Service changed
+0d 00 02 03 28 01 20
+0e 00 02 05 2a 00
+#Client Characteristic Configuration
+0f 00 02 02 29 02 00 00
+
+#Primary service TX power ------
+10 00 02 00 28 02 04 18
+#Characteristic Tx power level
+11 00 02 03 28 01 16
+12 00 02 07 2a 01 00
+13 00 02 02 29 02 00 00
+
+#Primary service Battery ------
+14 00 02 00 28 02 0f 18
+#Characteristic Battery level
+15 00 02 03 28 01 12
+16 00 02 19 2a 01 38
+
+#Primary service device infomation
+17 00 02 00 28 02 0a 18
+#Characteristic system id
+18 00 02 03 28 01 02
+19 00 02 23 2a 03 00 00 00
+
+#Characteristic manufactor name
+1a 00 02 03 28 01 02
+1b 00 02 29 2a 08 46 6c 61 67 74 72 69 70
+
+#Characteristic module number
+1c 00 02 03 28 01 02
+1d 00 02 24 2a 06 79 69 63 68 69 70
+
+#Characteristic serial number
+1e 00 02 03 28 01 02
+1f 00 02 25 2a 04 63 6f 6d 33
+
+#Characteristic firmware version
+20 00 02 03 28 01 02
+21 00 02 26 2a 03 31 2e 30
+
+#Characteristic software version
+22 00 02 03 28 01 02
+23 00 02 28 2a 03 31 2e 30
+
+#Characteristic hardware version
+24 00 02 03 28 01 02
+25 00 02 2a 2a 03 31 2e 30
+
+#Characteristic regulatory version
+26 00 02 03 28 01 02
+27 00 02 25 2a 04 63 6f 6d 33
+
+#Primary service yichip transmit ------
+28 00 02 00 28 10 55 e4 05 d2 af 9f a9 8f e5 4a 7d fe 43 53 53 49
+#Characteristic tx--notify read
+29 00 02 03 28 01 12
+2a 00 10 16 96 24 47 C6 23 61 BA D9 4B 4D 1E 43 53 53 49 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+#Client Characteristic Configuration
+2b 00 02 02 29 02 00 00
+
+#Characteristic rx--write
+2c 00 02 03 28 01 08
+2d 00 10 b3 9b 72 34 be ec d4 a8 f4 43 41 88 43 53 53 49 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+#Characteristic rx-- write without Response
+2e 00 02 03 28 01 04
+2f 00 10 fe 69 ca 9a 56 19 f6 ab 02 4d aa 6d 43 53 53 49 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+#Characteristic rx tx --read write notify
+30 00 02 03 28 01 2a
+31 0010 18 03 A6 28 5E D8 EC 91 1C 48 A3 AC 43 53 53 49 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+#Client Characteristic Configuration
+32 00 02 02 29 02 00 00
+
+#Primary service yichip transmit ------
+33 00 02 00 28 02 e7 fe 
+#Characteristic tx--indicate
+34 00 02 03 28 01 20
+35 00 02 c8 fe 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+#Client Characteristic Configuration
+36 00 02 02 29 02 00 00
+
+#Characteristic rx--write,read
+37 00 02 03 28 01 0a
+38 00 02 c7 fe 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+#Characteristic - read
+39 00 02 03 28 01 02
+3a 00 02 c9 fe 06 11 22 33 44 55 66
+
+#End of Attribute list
+00 00
Index: sched/usb_confdata.dat
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/usb_confdata.dat	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/usb_confdata.dat	(working copy)
@@ -0,0 +1,60 @@
+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
\ No newline at end of file
Index: sched/usb_devicedata.dat
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/usb_devicedata.dat	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/usb_devicedata.dat	(working copy)
@@ -0,0 +1,19 @@
+12
+12
+01
+00
+02
+00
+00
+00
+40
+51
+31
+20
+10
+02
+00
+01
+02
+00
+01
\ No newline at end of file
Index: sched/usb_kbdata.dat
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/usb_kbdata.dat	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/usb_kbdata.dat	(working copy)
@@ -0,0 +1,64 @@
+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
Index: sched/usb_kbdata_vendor_define.dat
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/usb_kbdata_vendor_define.dat	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/usb_kbdata_vendor_define.dat	(working copy)
@@ -0,0 +1,27 @@
+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
\ No newline at end of file
Index: sched/usb_msdata.dat
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/usb_msdata.dat	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/sched/usb_msdata.dat	(working copy)
@@ -0,0 +1,164 @@
+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
\ 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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/util/eeprom2fulleeprom.pl	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/util/eeprom2otp.pl	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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/mergepatch.pl
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/util/mergepatch.pl	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/util/mergepatch.pl	(working copy)
@@ -0,0 +1,351 @@
+#!/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 authrom {
+	$addr = 0x9000;
+	foreach $s (@ARGV) {
+		open f, "../sched/" . $s . ".dat" or die "cannot open dat file $s";
+		@ff = <f>;
+		close f;
+		foreach (@ff) { $_ =~ s/\s//g;push @auth, $_ . "\n"; }
+	#	printf "0x%x %s_ADDR\n", $addr, uc($s);
+		$addr += $#ff + 1;
+	}
+	open f,">auth.rom";
+	print f @auth;
+	close f;
+	open f,"romcode.rom" or return;
+	@rom = <f>;
+	close f;
+	for($i = 0, $j = $#rom - 0x1ff;$i < 0x200;$i++,$j++) {
+		for($k = 0, $l = "";$k < 4;$k++) {
+			$_ = $auth[$i*4 + $k];
+			s/\s//g;
+			$_ = "00" if(/^$/);
+			$l =  $_ . $l;
+		}
+		$rom[$j] = $l . "\n";
+	}
+	open f,">romcode.rom";
+	print f @rom;
+	close f;
+}
+
+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) {
+	authrom();
+	exit;
+}
+
+parseif("output/bt_program23.meta");
+parseif("output/bt_format.meta");
+genpatch() if($defs !~ / SIM /);
+malloc();
+zcode();
Index: util/romcrc.pl
===================================================================
--- /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/util/romcrc.pl	(nonexistent)
+++ /1121s/branch/shutter/branch/shutter/jxy_project/yc1089s_jxy_JM140/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;
